Releases: gavinhoward/bc
Releases · gavinhoward/bc
Version 1.1 Release Candidate 2
$ sha512sum bc-1.1rc2.tar.xz
804700f64e701dd6e327023a571762b3a8dd334f207eed3fee117d943039b464b01a54eb0843436a7d912a00dd75dce659449cc334ae03ae5fbc301427ecf529 bc-1.1rc2.tar.xz
$ sha256sum bc-1.1rc2.tar.xz
be77ae2503746378955bfb670037edb72bb0f6de94e24933e2ae36294f834264 bc-1.1rc2.tar.xz
Version 1.1 FreeBSD Beta 5
$ sha512sum bc-1.1b5.tar.xz
0787947d5ba5ea873933c6615250887f19ce5cf4ea2ee009f4563769ca0f9e9fc3a700a9bbf68790803e563bd57810495560207cd039d8456d6ba463d0aa256f bc-1.1b5.tar.xz
$ sha256sum bc-1.1b5.tar.xz
5c946065c45b4218f95d90030edb6fff1f641637754b3addb2ea25598f2343ff bc-1.1b5.tar.xz
Version 1.1 FreeBSD Beta 4
$ sha512sum bc-1.1b4.tar.xz
54157f33d829d713dfce87c259d7bc40a29d59528087c49899301dd056d95a52493b570f79993711125096fdfa50af6e842966691564a8899dd319c78af2b3c6 bc-1.1b4.tar.xz
$ sha256sum bc-1.1b4.tar.xz
fd48d86c2d2876fe1e4597b19153d79738a0c551f214aaa096dd1782c8cf29a4 bc-1.1b4.tar.xz
Version 1.1 FreeBSD Beta 3
$ sha512sum bc-1.1b3.tar.xz
5f46e836a43b9238ed06fe433fcdbaa8204a49b075d35aa991556c9ddb951c3fc0039b3bc94e0f34902001f630163efbd846959277122c2a51bc2ddad5e7f48f bc-1.1b3.tar.xz
$ sha256sum bc-1.1b3.tar.xz
a5cd82d9dd16b9bf530ce8c133e9da6f3f1abdb5a1e9c4d83b5228ab054c55ee bc-1.1b3.tar.xz
Version 1.1 FreeBSD Beta 2
$ sha512sum bc-1.1b2.tar.xz
7e723e63059a87d700dfd553709f09f0d905e9b487d164d25ba72959199e9c18651d0099c1256ab4bb5d13974199412a95655e207843a6733d5d3dff37a4a1e8 bc-1.1b2.tar.xz
$ sha256sum bc-1.1b2.tar.xz
3f2ad7c03fe12e2d8c3dc9ff9154e1aedcb8032b5939325894c61937805c1099 bc-1.1b2.tar.xz
Version 1.1 FreeBSD Beta 1
$ sha512sum bc-1.1b1.tar.xz
365dd032d176d9a0b4a824c4e995ad80ecf37ee582ad3505b35dd109c4e6dc2051f6fac9b8a247e7d0da59df22e19cb8bcb9de5afbae485aedffe48f6f5d42b2 bc-1.1b1.tar.xz
$ sha256sum bc-1.1b1.tar.xz
f674590874215ff76e4db72785e9e8cc9c9b767b8cfa7113ff98613ef551307e bc-1.1b1.tar.xz
Version 1.1 Release Candidate 1
$ sha512sum bc-1.1-rc1.tar.xz
d53a40cc02fea5bd55640780ec970e93253606914bfadfbb87365443be60cf83f68009b110bb75e34c1ffe90b9529e0721285f459f1b494e08f03d0088d92f77 bc-1.1-rc1.tar.xz
$ sha256sum bc-1.1-rc1.tar.xz
5902f0d81a0918cf0d673b636e691c8910d04a80c3a42d96e7581fd696ebad92 bc-1.1-rc1.tar.xz
Version 1.0
This is the first non-beta release. bc
is ready for production use.
As such, a lot has changed since 0.5.
dc
has been added. It has been tested even more thoroughly thanbc
was for 0.5. It does not have the!
command, and for security reasons, it never will, so it is complete.bc
has been more thoroughly tested. An entire section of the test suite (for both programs) has been added to test for errors.- A prompt (
>>>
) has been added for interactive mode, making it easier to see inputs and outputs. - Interrupt handling has been improved, including elimination of race conditions (as much as possible).
- MinGW and Windows Subsystem for Linux support has been added (see xstatic for binaries).
- Memory leaks and errors have been eliminated (as far as ASan and Valgrind can tell).
- Crashes have been eliminated (as far as afl can tell).
- Karatsuba multiplication was added (and thoroughly) tested, speeding up multiplication and power by orders of magnitude.
- Performance was further enhanced by using a "divmod" function to reduce redundant divisions and by removing superfluous
memset()
calls. - To switch between Karatsuba and
O(n^2)
multiplication, the config variableBC_NUM_KARATSUBA_LEN
was added. It is set to a sane default, but the optimal number can be found with$ROOT/karatsuba.py
(requires Python 3) and then configured throughmake
. - The random math test generator script was changed to Python 3 and improved.
bc
anddc
have together been run through 30+ million random tests. - All math bugs have been fixed, including out of control memory allocations in sine (that was actually a parse bug), certain cases of infinite loop on square root, and slight inaccuracies (as much as possible; see the README) in transcendental functions.
- Parsing has been fixed as much as possible.
- Test coverage was improved to 94.8%. The only paths not covered are ones that happen when
malloc()
orrealloc()
fails. - An extension to get the length of an array was added.
- The boolean not (
!
) had its precedence change to match negation. - Data input was hardened.
bc
was made fully compliant with POSIX when the-s
flag is used orPOSIXLY_CORRECT
is defined.- Error handling was improved.
bc
now checks that files it is given are not directories.
Checksums:
$ sha512sum bc-1.0.tar.xz
3741a3dd31ea1623788c2396a7b2a8293d19eb5b11b4e0a3eee6d04e10017babec78a1f1e830462b1f6210add4bd1528332eb63988dc6947a7a2e0e085d380c7 bc-1.0.tar.xz
$ sha256sum bc-1.0.tar.xz
39d0e924993e7e2ffef5fe3b5083640cc8466de3f3b1d0c5ba49663b97ff9c2d bc-1.0.tar.xz
1.0 Release Candidate 7
Release Candidate 7 for 1.0
$ sha512sum bc-1.0-rc7.tar.xz
58d50f6a369dd5aded16d9c9384f896a5a683bd1923c116fefe2dd8af24221c55a728d006c9cac9c9992ad6e04031173ce456fca61151b8b5d568ad0a3b39333 bc-1.0-rc7.tar.xz
$ sha256sum bc-1.0-rc7.tar.xz
ff1e06d49c23e64563ec02114347d06318104755eafdae9f394ade4c4c065b7f bc-1.0-rc7.tar.xz
1.0 Release Candidate 6
Release Candidate 6 for 1.0.
$ sha512sum bc-1.0-rc6.tar.xz
8aed5127661f0cd6c6f92ec8a230cd9149d84b86db744d3a44a80bd3da6f4b183819a676b1c75684ae3b674d794059057ebdc635f4f8a852c01c0c990bd8aec9 bc-1.0-rc6.tar.xz
$ sha256sum bc-1.0-rc6.tar.xz
0081bb15f84d9e038bb0f4bfa3efa6c98b9e78f8c76f6e100aa69da4b52689e7 bc-1.0-rc6.tar.xz