Releases: gavinhoward/bc
Release 3.2.6
This is a production release that fixes the build on FreeBSD.
There was a syntax error in configure.sh
that the Linux shell did not catch, and FreeBSD depends on the existence of tests/all.sh
.
All users that already upgraded to 3.2.5
should update to this release, with my apologies for the poor release of 3.2.5
. Other users should skip 3.2.5
in favor of this version.
$ sha512sum bc-3.2.6.tar.xz
4b1f43bb0bcd720d2140d41e089aa78fe8d07903fb745ed1a641ffe25fe46f439e480a1e11b687b7555881bd1ee4044c071c50e4bacd579b8909c704db7a6ede bc-3.2.6.tar.xz
$ sha256sum bc-3.2.6.tar.xz
4e664b3f4441fe79e5b0474ca019d23dfd5562e8c6a5efcc3ca08762fb7a1821 bc-3.2.6.tar.xz
$ stat -c '%s %n'
234964 bc-3.2.6.tar.xz
$ sha512sum bc-3.2.6.tar.xz.sig
031ceb082537bea132f7a6544987f94a815eb1f63d1dbf1732f987cb8caee8763c2d1137298c5b4ca4d822c3220d147db2e92a1e5406fa33f3d13943a6827948 bc-3.2.6.tar.xz.sig
$ sha256sum bc-3.2.6.tar.xz.sig
38d87ce3fcaf0867f0507f74a1e79ec7978ff18c521984a71581e4b8b68cafc3 bc-3.2.6.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.6.tar.xz.sig
Release 3.2.5
This is a production release that fixes several bugs and adds a couple small things.
The two most important bugs were bugs that causes dc
to access memory out-of-bounds (crash in debug builds). This was found by upgrading to afl++
from afl
. Both were caused by a failure to distinguish between the same two cases.
Another bug was the failure to put all of the licenses in the LICENSE.md
file.
Third, some warnings by scan-build
were found and eliminated. This needed one big change: bc
and dc
now bail out as fast as possible on fatal errors instead of unwinding the stack.
Fourth, the pseudo-random number now attempts to seed itself with /dev/random
if /dev/urandom
fails.
Finally, this release has a few quality-of-life changes to the build system. The usage should not change at all; the only thing that changed was making sure the Makefile.in
was written to rebuild properly when headers changed and to not rebuild when not necessary.
$ sha512sum bc-3.2.5.tar.xz
6e03d6549376b4350fe1d079d7f1cc3cf430a893af8bae004c752fabb7acdb7802f9039a9227f3439e1d73925bfc8f9b973339cebc8fa851ae8a45658eb65c74 bc-3.2.5.tar.xz
$ sha256sum bc-3.2.5.tar.xz
9b6b8be28bf617312f49309163477272822e9f8537436d81741340b083d11ca7 bc-3.2.5.tar.xz
$ stat -c '%s %n'
234252 bc-3.2.5.tar.xz
$ sha512sum bc-3.2.5.tar.xz.sig
8fd65f6d8fb83563bcfde3d56d6a48201205c33f746e623a298185b433be1b6af7d7d90cf7dbce397c011d7046fe293907ff8305e7ac8609dccf96e4195ec690 bc-3.2.5.tar.xz.sig
$ sha256sum bc-3.2.5.tar.xz.sig
cb88aa2b9b29dc963cbe1e0c61f7c029bd88090e453c2920b8116a885cf3c48c bc-3.2.5.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.5.tar.xz.sig
Release 3.2.4
This is a production release that fixes a warning on gcc
6 or older, which does not have an attribute that is used.
Users do NOT need to upgrade if they don't use gcc
6 or older.
$ sha512sum bc-3.2.4.tar.xz
9a22d829b7346d08ad0066dd65dfeb832b5eb7c77b52798d05da9450d77590d264ecfe9318955f7335ddcfb11bb48f44854c760c0b4c173e128378ccf297d443 bc-3.2.4.tar.xz
$ sha256sum bc-3.2.4.tar.xz
b4aba186094999a78ee9d76419f71c9b02c73bc4ace4069802199cccc0a0e41a bc-3.2.4.tar.xz
$ stat -c '%s %n'
225344 bc-3.2.4.tar.xz
$ sha512sum bc-3.2.4.tar.xz.sig
307419689c906f09af79d7479a38de410f8b77f1d8e36cff42685877b4f5cf6e5723e95f062a574a40613149ccf1a6adcc50feb02ac8abe074b3b8f3282effde bc-3.2.4.tar.xz.sig
$ sha256sum bc-3.2.4.tar.xz.sig
adc0739334632b6461194d2564b5680d7a8e6351627fab36564df08a076c8b88 bc-3.2.4.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.4.tar.xz.sig
Release 3.2.3
This is a production release that fixes a bug in gen/strgen.sh
. I recently changed gen/strgen.c
, but I did not change gen/strgen.sh
.
Users that do not use gen/strgen.sh
do not need to upgrade.
$ sha512sum bc-3.2.3.tar.xz
efd040d46f2ed1eff5a2eb336e55fd465176c23c728935ee488a474b2f0c8dddd275805ee3be79f20afc523a183adb3d88a0e7bee095047912cf70741e2c0b32 bc-3.2.3.tar.xz
$ sha256sum bc-3.2.3.tar.xz
e9610eca329e3346c0d5b76f675f90be36d5c019378ea98f10931daba1c98314 bc-3.2.3.tar.xz
$ stat -c '%s %n'
225420 bc-3.2.3.tar.xz
$ sha512sum bc-3.2.3.tar.xz.sig
4c62f9183fb0ec8f6273108e5f4dd143615db5b1ab428463f0cb859d5f5f4f32cee3ba7c4f6d7278953e8a25466e68de7aab24eca7f607f998129a61ecce2ff5 bc-3.2.3.tar.xz.sig
$ sha256sum bc-3.2.3.tar.xz.sig
dbbe92c8c1eef8bfab5792d03d325c4de5fa7bf46faf55eeb1134ba755847a12 bc-3.2.3.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.3.tar.xz.sig
Release 3.2.2
This is a production release that fixes a portability bug in configure.sh
. The bug was using the GNU find
extension -wholename
.
$ sha512sum bc-3.2.2.tar.xz
2e8f121c751e987569a0acdfbf648c3ef120d4c808de1a1a0c9f2421f4ef3e45e5031ccd7c3e144a4502cc36ed433ca8e56c943b87f26193dcf4c745adf12ddc bc-3.2.2.tar.xz
$ sha256sum bc-3.2.2.tar.xz
d38fb0e846576d010afb86abc19d810ad9ac29904a47a50b4f7e5459f0f924d2 bc-3.2.2.tar.xz
$ stat -c '%s %n'
225228 bc-3.2.2.tar.xz
$ sha512sum bc-3.2.2.tar.xz.sig
bbfa6926e2f58e2c8e77dc35ba48b2383872d73e59f81f8bc2f6279cbe8948a9e8b41c7f4ac1698d8c40c3a5335a6ea1648d536a18281aec9e861e2c7a1a39a8 bc-3.2.2.tar.xz.sig
$ sha256sum bc-3.2.2.tar.xz.sig
3f00d425bdeba03f938e910bedbbd689fd2d7920549eb890f4613faf6809343c bc-3.2.2.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.2.tar.xz.sig
Release 3.2.1
This is a production release that has one fix for bcl(3)
. It is technically not a bug fix since the behavior is undefined, but the BclNumber
s that bcl_divmod()
returns will be set to BCL_ERROR_INVALID_NUM
if there is an error. Previously, they were not set.
$ sha512sum bc-3.2.1.tar.xz
1f861d9571523a5f1bb75d69aa21b470ae833fd748edb2dc78e02dee9925aea1ccff5b8a52ca74ea1945cfdca64eb8bc58919c90c39040749cb550a6372077c9 bc-3.2.1.tar.xz
$ sha256sum bc-3.2.1.tar.xz
b7bb88c8207338aa65246e7065823f6f415822b196b9a49126fe89d4b357e546 bc-3.2.1.tar.xz
$ stat -c '%s %n'
225116 bc-3.2.1.tar.xz
$ sha512sum bc-3.2.1.tar.xz.sig
d1ece61e43ad1c05dc82b9dff4886846ed63f0f46e77cd098f237d97ca53dbd0c60b1d32d7c4e04bac74593315b217b64503bc7b264f78061c18cdb696b6a9c5 bc-3.2.1.tar.xz.sig
$ sha256sum bc-3.2.1.tar.xz.sig
61061fbbe6a3660621bfc04b600297c1cb167934cec4dc2d14aa5ef4115e9271 bc-3.2.1.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.1.tar.xz.sig
Release 3.2.0
This is a production release that has one bug fix and a major addition.
The bug fix was a missing auto
variable in the bessel j()
function in the math library.
The major addition is a way to build a version of bc
's math code as a library. This is done with the -a
option to configure.sh
. The API for the library can be read in ./manuals/bcl.3.md
or man bcl
once the library is installed with make install
.
This library was requested by developers before I even finished version 1.0, but I could not figure out how to do it until now.
If the library has API breaking changes, the major version of bc
will be incremented.
$ sha512sum bc-3.2.0.tar.xz
b6e3ab2d4599f8e0c9ba0bcbe8d45e8b62453720063a9cb893bcf55995005f9d09ab803df19cc73920a1f4e4868ba069b110e2ac22f21bb8c8dfcee01a419d6a bc-3.2.0.tar.xz
$ sha256sum bc-3.2.0.tar.xz
0f536d65dbdcd3d6a419b071aa66ba6c80172c1c705106054b859cc8e6df1c96 bc-3.2.0.tar.xz
$ stat -c '%s %n'
225012 bc-3.2.0.tar.xz
$ sha512sum bc-3.2.0.tar.xz.sig
f49d0d8587afe80c904a5389819515c58b6177a2d09c3f5754dc4ec1ed50e698ad4c1268f32467848ece89045ba3b6ce7113e3130d47a009d7d36677c74dcfd7 bc-3.2.0.tar.xz.sig
$ sha256sum bc-3.2.0.tar.xz.sig
7c4f0dcb5b57be000681a72ae7b97f52612dd86f6e3ec04370286ba6bc64933b bc-3.2.0.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.2.0.tar.xz.sig
Release 3.1.6
This is a production release that fixes a new warning from Clang 12 for FreeBSD and also removes some possible undefined behavior found by UBSan that compilers did not seem to take advantage of.
Users do NOT need to upgrade, if they do not want to.
$ sha512sum bc-3.1.6.tar.xz
1219a074845b8c66a431ddb78bab643793f5275c26404e92e360e655418d70d1aafa02be2fc4dec25d99a85ae2da1aab7d615de893f85913ca8834448dcade53 bc-3.1.6.tar.xz
$ sha256sum bc-3.1.6.tar.xz
e523296e59f6ca82210d10baa12bd97de02cab0fd62be554bc6f0772869ad445 bc-3.1.6.tar.xz
$ stat -c '%s %n'
210976 bc-3.1.6.tar.xz
$ sha512sum bc-3.1.6.tar.xz.sig
117aef03b8ffbf95c5f480130b5553f72ce8872a2677d2712f10de80b29a4643be60f9cd463b1df026e99e97fc38fc486ff0a2ac4725761dd47fcf04d05c128d bc-3.1.6.tar.xz.sig
$ sha256sum bc-3.1.6.tar.xz.sig
dcbb5291f594718fbc8109aa451847770361d7ff7457954c1c34d4aeef6e5880 bc-3.1.6.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.1.6.tar.xz.sig
Release 3.1.5
This is a production release that fixes the Chinese locales (which caused bc
to crash) and a crash caused by bc
executing code when it should not have been able to.
ALL USERS SHOULD UPGRADE.
$ sha512sum bc-3.1.5.tar.xz
34be1c186df5906ab7a966739220a20afd7e3b227a5c7ba32a77256a36e097bbcc39b99ce6d6855de3e6e2296612f8fbe63dc0983ad91d4eb4c1e630dbb587a0 bc-3.1.5.tar.xz
$ sha256sum bc-3.1.5.tar.xz
0493c1eb76e94ace7a00532824121ab901ac1bd3580a340ea5de92a7d9c1a19e bc-3.1.5.tar.xz
$ stat -c '%s %n'
211632 bc-3.1.5.tar.xz
$ sha512sum bc-3.1.5.tar.xz.sig
92d05d9d55729c3a62bb452bc389edc9a23f1bf3c2f59ef43b2a86e429777a68121bfb195ed7f59171c17fb944bda16a1848ad224b316114cf707b2dd45a71fe bc-3.1.5.tar.xz.sig
$ sha256sum bc-3.1.5.tar.xz.sig
18450efb04ffb9111290ae65f8e899e2966cf3dd1f74292203c6f0d96a441c3c bc-3.1.5.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.1.5.tar.xz.sig
Release 3.1.4
This is a production release that fixes one bug, changes two behaviors, and removes one environment variable.
The bug is like the one in the last release except it applies if files are being executed. I also made the fix more general.
The behavior that was changed is that bc
now exits when given -e
, -f
, --expression
or --file
. However, if the last one of those is -f-
(using stdin
as the file), bc
does not exit. If -f-
exists and is not the last of the -e
and -f
options (and equivalents), bc
gives a fatal error and exits.
Next, I removed the BC_EXPR_EXIT
and DC_EXPR_EXIT
environment variables since their use is not needed with the behavior change.
Finally, I made it so bc
does not print the header, though the -q
and --quiet
options were kept for compatibility with GNU bc
.
$ sha512sum bc-3.1.4.tar.xz
3f8cf5f0d130b75370a1b077f437a4f8c6b38b65378027be6035e8a9417cce83d1618b09ff4e1d8bb6132af35bafc673a8372d854e8cbbed847040aadc234a3a bc-3.1.4.tar.xz
$ sha256sum bc-3.1.4.tar.xz
0dda6686e76907157f4b4844268b302a319a2756dc974caf2a3e246a7b02c523 bc-3.1.4.tar.xz
$ stat -c '%s %n'
210976 bc-3.1.4.tar.xz
$ sha512sum bc-3.1.4.tar.xz.sig
1c89676a064c59ae4207a9d7806741e9dce4d59c324751064aac1087ac51693c4c3bb3c34bc9aaa2520c7c2a302876e81943b697a496703e1f31ec037a3dfdb8 bc-3.1.4.tar.xz.sig
$ sha256sum bc-3.1.4.tar.xz.sig
c2ca215539d3fcc7980ac7ab8386ad4faade8208d5e600c1172e943b8bf47333 bc-3.1.4.tar.xz.sig
$ stat -c '%s %n'
662 bc-3.1.4.tar.xz.sig