Skip to content

Releases: gavinhoward/bc

Release 3.2.6

31 Jan 18:52
Compare
Choose a tag to compare

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

31 Jan 00:39
Compare
Choose a tag to compare

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

11 Dec 04:56
Compare
Choose a tag to compare

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

30 Nov 13:50
Compare
Choose a tag to compare

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

28 Nov 18:55
Compare
Choose a tag to compare

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

26 Nov 19:02
Compare
Choose a tag to compare

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 BclNumbers 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

26 Nov 16:05
Compare
Choose a tag to compare

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

01 Oct 14:40
Compare
Choose a tag to compare

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

05 Aug 04:36
Compare
Choose a tag to compare

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

03 Aug 14:33
Compare
Choose a tag to compare

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