Re: [PATCH v3] replace timeconst bc script with an sh script

From: Ethan Sommer
Date: Sun Nov 03 2019 - 16:57:27 EST


> Please let me point out, again, that bc *is* part of the basic POSIX toolset, and the only tool in that toolset that allows for arbitrary-precision arithmetic. That being said, GNU as, which we also depends on, also contains bigint arithmetic, so it might be possible to coax as into outputting ASCII output without manually implementing bigints manually.
>
> Another option would be to use a C program linked with gmp. Binutils requires gmp, so it doesn't inherently add dependencies, but running it though as would probably be easier at least for the LLVM guys.
>
> I also have written a small, portable C bigint library, but that is a lot of code to add to the tree.
I don't know what the requirement is for the level of precision this
would need to support is, so I don't know if this meets them, but I made
a C program that doesn't use gmp, so while it probably doesn't
theoretically have the same level of precision as bc, it does match it
for output on anything up to 15000 (it doesn't stop matching
timeconst.bc above 15000 I just didn't test any higher). The program is
here: http://ix.io/20Ka
If this is considered precise enough to be an acceptable replacement
I will make a new patch to use it in place of timeconst.bc.