Skip to content

Releases: gavinhoward/bc

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

Release 3.1.3

10 Jul 03:20
Compare
Choose a tag to compare

This is a production release that fixes one minor bug: if bc was invoked like the following, it would error:

echo "if (1 < 3) 1" | bc

Unless users run into this bug, they do not need to upgrade, but it is suggested that they do.

$ sha512sum bc-3.1.3.tar.xz
fb702e45fb994d4f1be55c2b05c4c4b4c67ae838f4f46864ba944890c1810b871fbafaa323d432f0f600f8182b4370757b75de756ae2795b595776e3fe03ba7b  bc-3.1.3.tar.xz

$ sha256sum bc-3.1.3.tar.xz
5e4a2fac5ac9a49bdec7dc3fa06547fdb83629dc7b854fb0ce63d484521f9684  bc-3.1.3.tar.xz

$ stat -c '%s  %n'
210924  bc-3.1.3.tar.xz

$ sha512sum bc-3.1.3.tar.xz.sig
cb6c2d0784c85483c174392ff9bfd148f2a837074d4cd44c25b17e8d0c3d78612bc00c58aea0e7b2b61239cadf68cf0ac68c698e79befc05a1a8614c71753124  bc-3.1.3.tar.xz.sig

$ sha256sum bc-3.1.3.tar.xz.sig
fb63237b8aa0e7f63ce96540531ea2fda7b30250625a6d08cda597d753a3b1e7  bc-3.1.3.tar.xz.sig

$ stat -c '%s  %n'
662  bc-3.1.3.tar.xz.sig

Release 3.1.2

09 Jul 14:29
Compare
Choose a tag to compare

This is a production release that adds a way to install all locales. Users do NOT need to upgrade.

For package maintainers wishing to make use of the change, just pass -l to configure.sh.

$ sha512sum bc-3.1.2.tar.xz
c123a322578e7b2213317db8fd95c5596b45f59f8890ce05d0d25bac983d3038c1bda65c8998b760e15efc0ee3a10241f3ca712442b4f444f691dd6c5065e53d  bc-3.1.2.tar.xz

$ sha256sum bc-3.1.2.tar.xz
61d4833ffddd33b87b528e35a438c1fec4c1ecbb2fe339924fb0947b13663e65  bc-3.1.2.tar.xz

$ stat -c '%s  %n'
209820  bc-3.1.2.tar.xz

$ sha512sum bc-3.1.2.tar.xz.sig
f82933bbfc5cbe595d8e752e7bf92b5d841b2c90aee596b06346eb6fb7279cf6f21489744ea8493c1f76b225a7f295245978802a6c6175d67164b16181c42722  bc-3.1.2.tar.xz.sig

$ sha256sum bc-3.1.2.tar.xz.sig
010af7ba46d133d6d94547f6c885bec549ed39abc8c9c0168154b5182838ebfc  bc-3.1.2.tar.xz.sig

$ stat -c '%s  %n'
662  bc-3.1.2.tar.xz.sig

Release 3.1.1

06 Jul 23:27
Compare
Choose a tag to compare

This is a production release that adds two Spanish locales. Users do NOT need to upgrade, unless they want those locales.

$ sha512sum bc-3.1.1.tar.xz
1f770edf619ade8780d0a494934071bfa82d1298043459cab6e3db6a5617e6aad0d7193635c868ef0d0312b808027ad3734cb92b0c8eff826cd5a860eb3fe6d2  bc-3.1.1.tar.xz

$ sha256sum bc-3.1.1.tar.xz
7401c68baef31622251eac47cabe0e35c973baec6b938b20741f777cf58d2dce  bc-3.1.1.tar.xz

$ stat -c '%s  %n'
209328  bc-3.1.1.tar.xz

$ sha512sum bc-3.1.1.tar.xz.sig
ee6f0d7e3b2120b59373b2d35316da43350c397e7005efa90da181805307d475057ea846f76a2751e57803918381dee08e5e3e1c12df66daedc83ba72b90bcf5  bc-3.1.1.tar.xz.sig

$ sha256sum bc-3.1.1.tar.xz.sig
0067d965d94ff87f8f9cbf8a95ae76f72b72f60607231b4437313e4ae435d13a  bc-3.1.1.tar.xz.sig

$ stat -c '%s  %n'
662  bc-3.1.1.tar.xz.sig

Release 3.1.0

06 Jul 17:55
Compare
Choose a tag to compare

This is a production release that adjusts one behavior, fixes eight bugs, and improves manpages for FreeBSD. Because this release fixes bugs, users and package maintainers should update to this version as soon as possible.

The behavior that was adjusted was how code from the -e and -f arguments (and equivalents) were executed. They used to be executed as one big chunk, but in this release, they are now executed line-by-line.

The first bug fix in how output to stdout was handled in SIGINT. If a SIGINT came in, the stdout buffer was not correctly flushed. In fact, a clean-up function was not getting called. This release fixes that bug.

The second bug is in how dc handled input from stdin. This affected bc as well since it was a mishandling of the stdin buffer.

The third fixed bug was that bc and dc could abort() (in debug mode) when receiving a SIGTERM. This one was a race condition with pushing and popping items onto and out of vectors.

The fourth bug fixed was that bc could leave extra items on the stack and thus, not properly clean up some memory. (The memory would still get free()'ed, but it would not be free()'ed when it could have been.)

The next two bugs were bugs in bc's parser that caused crashes when executing the resulting code.

The last two bugs were crashes in dc that resulted from mishandling of strings.

The manpage improvement was done by switching from ronn to Pandoc to generate manpages. Pandoc generates much cleaner manpages and doesn't leave blank lines where they shouldn't be.

$ sha512sum bc-3.1.0.tar.xz
1858afe0c15bd518637cc7a34d0905042ea424f8398c85d97024ee0a397b15f549c8dfc1b8fe46c6ee9cdd38949de18e927951463cbbde007188809d8acd33cb  bc-3.1.0.tar.xz

$ sha256sum bc-3.1.0.tar.xz
73966d9e8627584f3d3498e12c42a7d3bfa01bfc0b14395a0822205d5611fd27  bc-3.1.0.tar.xz

$ stat -c '%s  %n'
209392  bc-3.1.0.tar.xz

$ sha512sum bc-3.1.0.tar.xz.sig
d0114e0ce0d6fd5379bf9d76d73001ccdc148554351dcc7512c8cbbab504580e5c0316fd7a7110d1a656a9ed98758c48085f61c97830c6e4a251302830670f68  bc-3.1.0.tar.xz.sig

$ sha256sum bc-3.1.0.tar.xz.sig
1a881b897f8039a0f0edfc2732bcd34f3f90ae7c35cf9e28a2edb8280aa343c0  bc-3.1.0.tar.xz.sig

$ stat -c '%s  %n'
662  bc-3.1.0.tar.xz.sig

Release 3.0.3

28 Jun 21:08
Compare
Choose a tag to compare

This is a production release that adds one new feature: specific manpages.

Before this release, bc and dc only used one manpage each that referred to various build options. This release changes it so there is one manpage set per relevant build type. Each manual only has information about its particular build, and configure.sh selects the correct set for install.

$ sha512sum bc-3.0.3.tar.xz
a29ed390f33b9d19d4e5a06037a0c43c9289d7b46e52c5e01ccebbf0c7daf2a022acd35669c25e33492d0c83270bf0611f4959111fd4e5871ae064ae27416d88  bc-3.0.3.tar.xz

$ sha256sum bc-3.0.3.tar.xz
8cf87e994f9f74c19dacdb623c870cbfe7486a64119842add65222c12b48e006  bc-3.0.3.tar.xz

$ stat -c '%s  %n'
202448  bc-3.0.3.tar.xz

$ sha512sum bc-3.0.3.tar.xz.sig
b37d608bf3d8e5bbc594a3b8bf120a265f61d75f009b3806a6155107d4350efa1dfbc7a9e0143442ea7725efde6d07ec3a4687edcfd110448cb1f3c977d7e4ae  bc-3.0.3.tar.xz.sig

$ sha256sum bc-3.0.3.tar.xz.sig
985d208ecac1e7b680c64cfd4def891c747e51e80f4a0aef011d1fd897d6f69b  bc-3.0.3.tar.xz.sig

$ stat -c '%s  %n'
662  bc-3.0.3.tar.xz.sig