• Stable 5.2.1 23799b7747

    Release 5.2.1

    gavin released this 4 days ago | 0 commits to master since this release

    This is a production release that fixes two parse bugs when in POSIX standard mode. One of these bugs was due to a quirk of the POSIX grammar, and the other was because bc was too strict.

    $ sha512sum bc-5.2.1.tar.xz
    8f5cfdfc0b2e1866d8fc1477d7bfc2882cf4d2e4844fcf41ded5f8b52b4d8124c073e845d86b355977f815a5a8a2f22fd98495ec4b5dd41737b808a3a4f4bb56  bc-5.2.1.tar.xz
    $ sha256sum bc-5.2.1.tar.xz
    bc031b68e5eafef37305697b76f6261abac4a94286e260fa339771f2484f1ecd  bc-5.2.1.tar.xz
    $ stat -c '%s  %n'
    437096  bc-5.2.1.tar.xz
    $ sha512sum bc-5.2.1.tar.xz.sig
    b904b8d946df9e6ff5305540aecaa40ac9cc805243bf0b0844895b87eba1845009b4efdebdb912ddcbc010329df556d7d49390916065e6d7a9043a039ac249f6  bc-5.2.1.tar.xz.sig
    $ sha256sum bc-5.2.1.tar.xz.sig
    8bce8396497d47ace1dd5a2938ce7bdffa88355fb040e5051782474b0801c950  bc-5.2.1.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.2.1.tar.xz.sig
    $ sha512sum bc-5.2.1-windows.zip
    a6ef0651e4d5220641190db58b695ba4cb662618bde65ec2c725c711d37e067252e1d69569f2036a2129e741e9c6f9c0b68e2a4bc466b6016df8e2558ecff663  bc-5.2.1-windows.zip
    $ sha256sum bc-5.2.1-windows.zip
    7058df70b01e45430a81e00d048eb043f18df47af1578b13f4b181238e486862  bc-5.2.1-windows.zip
    $ stat -c '%s  %n'
    3530679  bc-5.2.1-windows.zip
    $ sha512sum bc-5.2.1-windows.zip.sig
    63dde71efa271fb53e90d12d9a225dae7162b9b8d7bdca59d0159c358e0406854f7ef971d411575892045f90b01b3982353adecdb326f03b0dabf6a1ac9d88ab  bc-5.2.1-windows.zip.sig
    $ sha256sum bc-5.2.1-windows.zip.sig
    c001e4c2c3d115498ee68593f2848e2ae4ab7ad22d1651ec097ada4066df59ff  bc-5.2.1-windows.zip.sig
    $ stat -c '%s  %n'
    662  bc-5.2.1-windows.zip.sig
  • Stable 5.2.0 ddd6bb9daf

    Release 5.2.0

    gavin released this 3 weeks ago | 5 commits to master since this release

    This is a production release that adds a new feature, fixes some bugs, and adds out-of-source builds and a pkg-config file for bcl.

    The new feature is the ability to turn off exiting on expressions. It is also possible to set the default using configure.sh. This behavior used to exist with the BC_EXPR_EXIT environment variable, which is now used again.

    Bugs fixed include:

    • Some possible race conditions with error handling.
    • Install and uninstall targets for bcl did not work.
    $ sha512sum bc-5.2.0.tar.xz
    f5fcaef5a963baa344972432e20c9747cba7b08b2dd7beac5c783da250abcde37cf85c23bfb3273432c31b292c9c470c836daf990c69f83bd6c7e565a46859e2  bc-5.2.0.tar.xz
    $ sha256sum bc-5.2.0.tar.xz
    bb918d67b4fc6fc27634de343069a26c9ad05cf0c1c18cf05add5c821717741e  bc-5.2.0.tar.xz
    $ stat -c '%s  %n'
    435820  bc-5.2.0.tar.xz
    $ sha512sum bc-5.2.0.tar.xz.sig
    b0703fb555c254bc6098fbb452f13ea176994f9718baf361b71f0324f50658f6c08bff4d58154710c7cfa14622cb6a8dc1a010842c728b0bb55c755606b02c22  bc-5.2.0.tar.xz.sig
    $ sha256sum bc-5.2.0.tar.xz.sig
    dc2b49c7a97c3e05f033ff63be9d964bef2a935e1ef0a6210d7304286acf3972  bc-5.2.0.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.2.0.tar.xz.sig
    $ sha512sum bc-5.2.0-windows.zip
    d5adb1104f09d12c240e98e6eb43a0a384957fea79e9fc2ccf65b2c1dc554cd3a644109a3c1472e599a9206a0494dcd25f2e4796c8bd3d8a442c8be0ea539c2b  bc-5.2.0-windows.zip
    $ sha256sum bc-5.2.0-windows.zip
    c4d5897752f89df414c2cdfa4299c8e08bfc41ded59362662f66785daf2b5835  bc-5.2.0-windows.zip
    $ stat -c '%s  %n'
    3530035  bc-5.2.0-windows.zip
    $ sha512sum bc-5.2.0-windows.zip.sig
    a687930e2cebc2aba5eb9503ea0663224f34d04c7630ac2a89cda72031b336929d721a184ad612839a00e63d5d195d718a3d927bf986bf429eb8b4abc96cf99e  bc-5.2.0-windows.zip.sig
    $ sha256sum bc-5.2.0-windows.zip.sig
    12d6a3b48502eb0524dab6a107844ce538d476c94dd08f6b68220f3b0627c29b  bc-5.2.0-windows.zip.sig
    $ stat -c '%s  %n'
    662  bc-5.2.0-windows.zip.sig
  • Stable 5.1.1 9305c6b1af

    Release 5.1.1

    gavin released this 2 months ago | 30 commits to master since this release

    This is a production release that completes a bug fix from 5.1.0. The bug exists in all versions of bc.

    The bug was that if statements without else statements would not be handled correctly at the end of files or right before a function definition.

    $ sha512sum bc-5.1.1.tar.xz
    d8774fb1e654520abdf7d790783d4a3c04fa8f4982fc1cd0d92331e7e4b5889efa022cafb5e1286b6c82a74c9388f47657c7b9d78888b5d8056fa40d3d5e5c69  bc-5.1.1.tar.xz
    $ sha256sum bc-5.1.1.tar.xz
    cfec5571216693537f9565073334be691717bfb762610cf1a06050e0f25aa94d  bc-5.1.1.tar.xz
    $ stat -c '%s  %n'
    433944  bc-5.1.1.tar.xz
    $ sha512sum bc-5.1.1.tar.xz.sig
    82b19bb3172a2f510ec56ace55c2d7e2eb0032239e2b837e0671fadfc880369eea7d6549e1de8f9844ca3a2b87c15fb83d53b22af90fd23902cb5244c6127d36  bc-5.1.1.tar.xz.sig
    $ sha256sum bc-5.1.1.tar.xz.sig
    fb29f8871f6049f4f84fc40971462bbba389c555a3bf19b3ad037ea0fe1d162f  bc-5.1.1.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.1.1.tar.xz.sig
    $ sha512sum bc-5.1.1-windows.zip
    77c0cb5b5dafea0582372e7de6e4d3f70b378ead370e5802ca179dccb41b3857c48d5b59174d740edb893fca600a8c593db272f94f9095242da551bc55d336a3  bc-5.1.1-windows.zip
    $ sha256sum bc-5.1.1-windows.zip
    10242f1a9ee7fbdbb59b0377341130d2dcf8b29f58973518ba8831fef961905d  bc-5.1.1-windows.zip
    $ stat -c '%s  %n'
    3521155  bc-5.1.1-windows.zip
    $ sha512sum bc-5.1.1-windows.zip.sig
    486b4ca7445d30c507b19e117a8acf9885d5c9c0896d97dae3f296361a3a69e70a70583001a0df50bc806006ffa4b53c60c02cb0e90eeeb3c9285f5b15545eb3  bc-5.1.1-windows.zip.sig
    $ sha256sum bc-5.1.1-windows.zip.sig
    67d9d1845f16495c6ebfeaa0ba6dc1450c05df2ee6065474d6336c269fe40b2c  bc-5.1.1-windows.zip.sig
    $ stat -c '%s  %n'
    662  bc-5.1.1-windows.zip.sig
  • Stable 5.1.0 2b8d00952f

    Release 5.1.0

    gavin released this 2 months ago | 41 commits to master since this release

    This is a production release with some fixes and new features.

    • Fixed a bug where an if statement without an else before defining a function caused an error.
    • Fixed a bug with the bc banner and -q.
    • Fixed a bug on Windows where files were not read correctly.
    • Added a command-line flag (-z) to make bc and dc print leading zeroes on numbers -1 < x < 1.
    • Added four functions to lib2.bc (plz(), plznl(), pnlz(), and pnlznl()) to allow printing numbers with or without leading zeros, despite the use of -z or not.
    • Added builtin functions to query global state like line length, global stacks, and leading zeroes.
    • Added a command-line flag (-L) to disable wrapping when printing numbers.
    • Improved builds on Windows.
    $ sha512sum bc-5.1.0.tar.xz
    026e1ba5a8223b80cb8dc6b3a5827d4e1bd0f1708431bbbef43fda2f33c7626785b9ea662f166ea7a2ad0fe56e33918b09565b741d1085613676099ac3291a06  bc-5.1.0.tar.xz
    $ sha256sum bc-5.1.0.tar.xz
    c2783a17ebe1ece88b1fce6f6d51d501a8ce1b6a24f11857503fd500f31397e0  bc-5.1.0.tar.xz
    $ stat -c '%s  %n'
    433872  bc-5.1.0.tar.xz
    $ sha512sum bc-5.1.0.tar.xz.sig
    90d5ef3ce0c902a68f3db64c7f44fc670d1ff39e1a429ab90240f54d285315aeb5569bba20223be5b5b423941f19c328d87730e20124ae0046bf1ef9ecb8011e  bc-5.1.0.tar.xz.sig
    $ sha256sum bc-5.1.0.tar.xz.sig
    dea566ac55e096d913e094ff07e62932b69c230d81d3cdc4dec27ef9b96a0dd1  bc-5.1.0.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.1.0.tar.xz.sig
    $ sha512sum windows.zip
    b25d61dc7c9c95f5ba58d21bca48f673f15f3f271eeacfab100448a09f8a013a08b8498f6d6621d85b5bea815f11ab85f410d3c8da3afc2c24ffc466a2c811a2  windows.zip
    $ sha256sum windows.zip
    f8ba58d39c9c2ff280f04e9ad586b16d5bb3a3ef09d175802ce3f9ef37f58190  windows.zip
    $ stat -c '%s  %n'
    3530115  windows.zip
    $ sha512sum windows.zip.sig
    0bbefbd0ebe3cf01ecd15bd9eedab0f7c372dd6f0a5f8cdde452d8f2d66d82d0c5980ed19a6e4ebf3967a206306ab39876ecdd3d5af3fe7a273d7e41e0a3041f  windows.zip.sig
    $ sha256sum windows.zip.sig
    d31b47de069575b4549945ab7acb62a5199bc0ea9937220c9be7cf64fae97a9e  windows.zip.sig
    $ stat -c '%s  %n'
    662  windows.zip.sig
  • Stable 5.0.2 1e7a2a11a8

    Release 5.0.2

    gavin released this 3 months ago | 127 commits to master since this release

    This is a production release with one fix for a flaky test. If you have not experienced problems with the test suite, you do NOT need to upgrade.

    The test was one that tested whether bc fails gracefully when it can't allocate memory. Unfortunately, there are cases when Linux and FreeBSD lie and pretend to allocate the memory.

    The reason they do this is because a lot of programs don't use all of the memory they allocate, so those OS's usually get away with it.

    However, this bc uses all of the memory it allocates (at least at page granularity), so when it tries to use the memory, FreeBSD and Linux kill it.

    This only happens sometimes, however. Other times (on my machine), they do, in fact, refuse the request.

    So I changed the test to not test for that because I think the graceful failure code won't really change much.

    $ sha512sum bc-5.0.2.tar.xz
    8184a86708f3d301252e11c9a5015f69a04fa3f809951963235438d95c9accc81631f6fb8502a18f585672f1e04aa569af34f7662c015d33dd7a6794d116d03f  bc-5.0.2.tar.xz
    $ sha256sum bc-5.0.2.tar.xz
    3f23e5a8b11c2f9c668cfd7987c9c4e9f065f0aa193fe875e2a785e1f3283efe  bc-5.0.2.tar.xz
    $ stat -c '%s  %n'
    429648  bc-5.0.2.tar.xz
    $ sha512sum bc-5.0.2.tar.xz.sig
    2611524fb45a929089a397ad52c05add1ef731ca3fb89e52c695a193fbee575b5f4c8763c71dd0c43acc4c2cfa83b4bf26de7acbf5ef0eeb3f35f7e31ab56664  bc-5.0.2.tar.xz.sig
    $ sha256sum bc-5.0.2.tar.xz.sig
    a45eee23f3d8052a1a50d0c879c25a7fb396438855b05e4e6387ccab8fc2e070  bc-5.0.2.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.0.2.tar.xz.sig
    $ sha512sum Win32_Debug.zip
    bf4c76f9cf6e64753b8959b0fa9ff649742fdba7d4a74d6ce8594323dd3e68ed3c453ba1d691d4cd335966ccec0937050720b1c9ae63de3c80a7fc05de583c64  Win32_Debug.zip
    $ sha256sum Win32_Debug.zip
    7b9a8b72f6bdd5cfafa92599734de87ee3a89aea71c4d1b1db2b0ab4902ed974  Win32_Debug.zip
    $ stat -c '%s  %n'
    340353  Win32_Debug.zip
    $ sha512sum Win32_Debug.zip.sig
    c25bd765bd04dff78441fb0c32cf4806a96b2bd76f9e3a5719402f173fbdb0d7981d3418ea93ee17868ea2a2c8845490ebbe0e51c599d59fcb9ac5160a437889  Win32_Debug.zip.sig
    $ sha256sum Win32_Debug.zip.sig
    b38936843d0b38d7b9766d50536b7ef01cc03fae5e219baf6b0ca95575a6bf31  Win32_Debug.zip.sig
    $ stat -c '%s  %n'
    662  Win32_Debug.zip.sig
    $ sha512sum Win32_Release.zip
    47ab0e886c51fdca535c0940ce4122913cede1e3fc191be93bfa0bbe953fc92d4d7a91ba27895e4c9800bd354b77b2f40cb77dbc798964d124fd3368618d6cfb  Win32_Release.zip
    $ sha256sum Win32_Release.zip
    2b60eca2257dd107965047697647df216dab7025c713ea019180904a61dc89bf  Win32_Release.zip
    $ stat -c '%s  %n'
    347941  Win32_Release.zip
    $ sha512sum Win32_Release.zip.sig
    6698b91e35a7e034d9bda0d3023377facaa2470e81fd7aff77269c6609abf91564d84694dd0c0850efef876ca61d33bfcdc8f3e12b79cb9e9524e7ea405e80ce  Win32_Release.zip.sig
    $ sha256sum Win32_Release.zip.sig
    295d4a616b7a8fe977bddb9e34f5e7c45aaebd44873f85546668a9ebfbaef669  Win32_Release.zip.sig
    $ stat -c '%s  %n'
    662  Win32_Release.zip.sig
    $ sha512sum Win64_Debug.zip
    8e4dbade1165aa696f6ec10da35627ac53d60fb4423c7cf8dc1f73aaf4632052ea19b275eaf27481ba86e9400de7e58b0c4fe32d842b36a6f3c7eb6b7bdc4794  Win64_Debug.zip
    $ sha256sum Win64_Debug.zip
    1763107cfb45cfed5e5fc7512277685194b745fcd47ba6355e29354559cc494f  Win64_Debug.zip
    $ stat -c '%s  %n'
    396718  Win64_Debug.zip
    $ sha512sum Win64_Debug.zip.sig
    0eb60acf75295020126cc991beca245212f54908fb8e051319f875ed773cd9707687faa55e9cd290257b2ae79ffc11675f4f34a470568f69cb988497db936bba  Win64_Debug.zip.sig
    $ sha256sum Win64_Debug.zip.sig
    fcc43feeb618d29bdd50c9c0bd370e5365ba93322e9c03ecf2fc7d86d86a05e1  Win64_Debug.zip.sig
    $ stat -c '%s  %n'
    662  Win64_Debug.zip.sig
    $ sha512sum Win64_Release.zip
    4fc54757ef834230c61c1cfe6b3648ab7dd8bfca5968db41fd163ec974d0d27c2feab8aac59c9c20be9a2d66ee7c452167a973fac2ec4b6fa74c230a835e5cc3  Win64_Release.zip
    $ sha256sum Win64_Release.zip
    003824f9a0329043dbe1796f9ba396c888dd277ad4656af47d2a4fb3abb85534  Win64_Release.zip
    $ stat -c '%s  %n'
    400583  Win64_Release.zip
    $ sha512sum Win64_Release.zip.sig
    91b2e296edbe7f29cbad05992712ee9d2d177fb5614380ee80405fa8c991d7ab1bdb8851bcf8e3b0de5d25d972adb58eca5721354a39e72de32a8c78cee267bd  Win64_Release.zip.sig
    $ sha256sum Win64_Release.zip.sig
    435662619395857f1f8b463cdf4c8cfa484939771c86074794c44c5d849aacd0  Win64_Release.zip.sig
    $ stat -c '%s  %n'
    662  Win64_Release.zip.sig
  • Stable 5.0.1 5e98c6229b

    Release 5.0.1

    gavin released this 4 months ago | 132 commits to master since this release

    This is a production release with two fixes:

    • Fix for the build on Mac OSX.
    • Fix for the build on Android.

    Users that do not use those platforms do NOT need to update.

    $ sha512sum bc-5.0.1.tar.xz
    8143e24babffd6f50cee6308ac47a0b8d2c5f78abd00ada53fc2e31c778545f5cee32587a18a2d721fe0ac7ea32520b5854f6874bf762555b5718dbc136ebfe1  bc-5.0.1.tar.xz
    $ sha256sum bc-5.0.1.tar.xz
    d19839302e4c35821e7d7eed012f5eff928173782c62b56b705d905c1c4cd272  bc-5.0.1.tar.xz
    $ stat -c '%s  %n'
    429608  bc-5.0.1.tar.xz
    $ sha512sum bc-5.0.1.tar.xz.sig
    2e3a86f0b59c3efed046c3c1c23798750d571013be398eac39ad993ad7878dd61d00a623cb76fa41bb9aad27409ff84d2256e694b429bc66725b73d9b1d82219  bc-5.0.1.tar.xz.sig
    $ sha256sum bc-5.0.1.tar.xz.sig
    801adea61e052e34bdb7a91d43cecf06765402bcb85574e024a83c7b051bb6d2  bc-5.0.1.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.0.1.tar.xz.sig
    $ sha512sum Win32_Debug.zip
    27dac4fc2f9cf7ddce0f9d5bb504b4f91b7adaf039ac94af06be68951a290f37e70e9f593d574054bd2a28317aa253e27fb9e9dffb1f75fdb785dac68be18cc1  Win32_Debug.zip
    $ sha256sum Win32_Debug.zip
    315bdc91c67f97af55636cddec5e83900ff1291ba0863609297e475fa1330775  Win32_Debug.zip
    $ stat -c '%s  %n'
    340353  Win32_Debug.zip
    $ sha512sum Win32_Debug.zip.sig
    b20ee9fabe89e15ef2ea515d22fe1711be2976d0e239a8bb3c64070c916a823d1841b0e4ba10fc45acc37361b675f125bee09a1161e25e10904724dbe61efb29  Win32_Debug.zip.sig
    $ sha256sum Win32_Debug.zip.sig
    ffd9bdf2f2815a9464fa2bd020921e000cf88a30922c6826d8c769c9b4a23c5a  Win32_Debug.zip.sig
    $ stat -c '%s  %n'
    662  Win32_Debug.zip.sig
    $ sha512sum Win32_Release.zip
    a147195eb8acd17a6a6771c8eaf9baee613ee6adaea64116c065548356f0e431ea059bd4809f955b1e5903fc5c594630d92c390c87ed3f34d79f7e5308f62cbe  Win32_Release.zip
    $ sha256sum Win32_Release.zip
    0ff867cc88af9b9d1dd6f3483de0f754a5e7e1dd7a0285b9c681b13793f088ec  Win32_Release.zip
    $ stat -c '%s  %n'
    347941  Win32_Release.zip
    $ sha512sum Win32_Release.zip.sig
    d1545009c583afbb4f96b6a27cf471f92a9144b0382990fb700e87a88914e3e91f2ad2ba5fdc381f92052d5cda90239955f03e86315dbd8bc472a3ddc4b508fd  Win32_Release.zip.sig
    $ sha256sum Win32_Release.zip.sig
    b926139704e2cf5f76a7013869cb4147ced14ae5ca5cfeac8bc31d419804dfbd  Win32_Release.zip.sig
    $ stat -c '%s  %n'
    662  Win32_Release.zip.sig
    $ sha512sum Win64_Debug.zip
    59492bba68362bb912f95be896a8aea17127a7fe20437a742589afffeda39b16469a3cd5b86945cb7be8d0d9bd9a3d7b4910d43794211dffa1f4f889722a9a4e  Win64_Debug.zip
    $ sha256sum Win64_Debug.zip
    5b71e530ff1b955702d302e2c1b2cb16d3dbd9d940f96b0549dabac96e9ba7c8  Win64_Debug.zip
    $ stat -c '%s  %n'
    396718  Win64_Debug.zip
    $ sha512sum Win64_Debug.zip.sig
    7ce60ce0146a7dc88f7257206ffdd51f205f0de13aead32ab9f08ccb3a1a6d94a2968d8213ec35e315fd204c6b17ac3103a998e24be19771708d64c426ef7208  Win64_Debug.zip.sig
    $ sha256sum Win64_Debug.zip.sig
    0ffc168c7b61e811315cba64f7d6798ec37e24f408373332c5c063d0c7078af4  Win64_Debug.zip.sig
    $ stat -c '%s  %n'
    662  Win64_Debug.zip.sig
    $ sha512sum Win64_Release.zip
    24fd10e86539e9432f8d061446f4c85d8f996284c77eb4bfc46dbd368311353cbcd281fc6fa873f3745856f20fbf245c6d47e932a5e8817f98833aedee5d31d0  Win64_Release.zip
    $ sha256sum Win64_Release.zip
    26b45c776279063ad1ec68c075528a3fc202f31cc5539953e6562c8abf81b7ef  Win64_Release.zip
    $ stat -c '%s  %n'
    400583  Win64_Release.zip
    $ sha512sum Win64_Release.zip.sig
    7c62bf3477936d6731dd6b25ec7e604c64dad312cebe94368f6fa2f6ed5e2c70fda6285ea9d118ec201ba8e3522cc4e690708829ec51bfe59acff659e8efe97f  Win64_Release.zip.sig
    $ sha256sum Win64_Release.zip.sig
    14610da1a8e69447bbb1a96393a225c341e91b6f0d3b00887c856b4fa8104634  Win64_Release.zip.sig
    $ stat -c '%s  %n'
    662  Win64_Release.zip.sig
  • Stable 5.0.0 433e8d533e

    Release 5.0.0

    gavin released this 4 months ago | 135 commits to master since this release

    This is a major production release with several changes:

    • Added support for OpenBSD's pledge() and unveil().
    • Fixed print bug where a backslash newline combo was printed even if only one digit was left, something I blindly copied from GNU bc, like a fool.
    • Fixed bugs in the manuals.
    • Fixed a possible multiplication overflow in power.
    • Temporary numbers are garbage collected if allocation fails, and the allocation is retried. This is to make bc and dc more resilient to running out of memory.
    • Limited the number of temporary numbers and made the space for them static so that allocating more space for them cannot fail.
    • Allowed integers with non-zero scale to be used with power, places, and shift operators.
    • Added greatest common divisor and least common multiple to lib2.bc.
    • Added SIGQUIT handling to history.
    • Added a command to dc (y) to get the length of register stacks.
    • Fixed multi-digit bugs in lib2.bc.
    • Removed the no prompt build option.
    • Created settings that builders can set defaults for and users can set their preferences for. This includes the bc banner, resetting on SIGINT, TTY mode, and prompt.
    • Added history support to Windows.
    • Fixed bugs with the handling of register names in dc.
    • Fixed bugs with multi-line comments and strings in both calculators.
    • Added a new error type and message for dc when register stacks don't have enough items.
    • Optimized string allocation.
    • Made bc and dc UTF-8 capable.
    • Fixed a bug with void functions.
    • Fixed a misspelled symbol in bcl. This is technically a breaking change, which requires this to be 5.0.0.
    • Added the ability for users to get the copyright banner back.
    • Added the ability for users to have bc and dc quit on SIGINT.
    • Added the ability for users to disable prompt and TTY mode by environment variables.
    • Added the ability for users to redefine keywords. This is another reason this is 5.0.0.
    • Added dc's modular exponentiation and divmod to bc.
    • Added the ability to assign strings to variables and array elements and pass them to functions in bc.
    • Added dc's asciify command and stream printing to bc.
    • Added a command to dc (Y) to get the length of an array.
    • Added a command to dc (,) to get the depth of the execution stack.
    • Added bitwise and, or, xor, left shift, right shift, reverse, left rotate, right rotate, and mod functions to lib2.bc.
    • Added the functions s2u(x) and s2un(x,n), to lib2.bc.
    $ sha512sum bc-5.0.0.tar.xz
    3ac4639922398e633aae3c3679ee3e53f3688da3992c55c120165b5718860f9857b7f46c43a9e18da0dd67ac92c8855f7449dfdfdfd11c419dc4ab6683550740  bc-5.0.0.tar.xz
    $ sha256sum bc-5.0.0.tar.xz
    595e803214708d94860d93b53ec7b84eb7bdb0c5c38fa96f5434009f868fe038  bc-5.0.0.tar.xz
    $ stat -c '%s  %n'
    429376  bc-5.0.0.tar.xz
    $ sha512sum bc-5.0.0.tar.xz.sig
    256c04a059efb6bf41a1066ec588de852043ee50e08077f73e2a9f5a9f8369cd87470372acdcb6d8cfee4f5e07c9159145338595b0eee568ba11b2bbf1ce49ec  bc-5.0.0.tar.xz.sig
    $ sha256sum bc-5.0.0.tar.xz.sig
    dd23aa9931646b360a171187b4bc33dce3faf50395cc4ab7a4c3dffdd096af02  bc-5.0.0.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-5.0.0.tar.xz.sig
    $ sha512sum Win32_Debug.zip
    c48a88c964cccd8e9a6f4e7c3a4b390e364a18bb00ae68c750adbc7462baad1b75125da4418f0ff0a6901eadd39d6c21deb626319e5d71ea21f1a09833bd1a4d  Win32_Debug.zip
    $ sha256sum Win32_Debug.zip
    b8819f70e1fadecf3316949798ea8373b42c78e0f4651f54a93f65abc00d1737  Win32_Debug.zip
    $ stat -c '%s  %n'
    340347  Win32_Debug.zip
    $ sha512sum Win32_Debug.zip.sig
    aeae6de48bd82443e7c0511e75029127a1d11f51f029018b71ad57e74ddc546905a8be3d31b9ca267aa4d9d1109b5539f9244ce5b0d45e72f6da6c411fa31713  Win32_Debug.zip.sig
    $ sha256sum Win32_Debug.zip.sig
    3e07bd2b6305e62d49a03c90661f7c47e5187a4b51e51272a6946ef93c73984f  Win32_Debug.zip.sig
    $ stat -c '%s  %n'
    662  Win32_Debug.zip.sig
    $ sha512sum Win32_Release.zip
    927d48111ae17da782df4e900ada9f5fa97e6dc91dd9c46cac1f8c45d8abe95e893127851a2ce27968e8c489a81a164b2018c23d2bd06b7e73694519de029654  Win32_Release.zip
    $ sha256sum Win32_Release.zip
    571c0c3bb471ea9e8ba720f93444135133b7b7f18e2d5513cbcfa377cb835f50  Win32_Release.zip
    $ stat -c '%s  %n'
    347946  Win32_Release.zip
    $ sha512sum Win32_Release.zip.sig
    f85593c4f06df4dd05dd3afdb961935dba6f4b6f4f188f6f7d38788bff673520207efc7ef7e799c20d4155e7e413287782f2562c964b96468c460017bc399e46  Win32_Release.zip.sig
    $ sha256sum Win32_Release.zip.sig
    1bd4dc7f66529cc63909816a38a78ee3a182d6d8a7254201be744e47ab64aa6a  Win32_Release.zip.sig
    $ stat -c '%s  %n'
    662  Win32_Release.zip.sig
    $ sha512sum Win64_Debug.zip
    5ddff5339b65834ba805ce210012412f1bf59499b1d605bdc62675f7ab67a9d074846aeb8e0130581204245674bfa666d73af0956480ead26909a4d1dc16d387  Win64_Debug.zip
    $ sha256sum Win64_Debug.zip
    c6c94daee6dc5dadfb6f4012985e1f533b53912947d9a5c4b41c93ed7b387127  Win64_Debug.zip
    $ stat -c '%s  %n'
    396711  Win64_Debug.zip
    $ sha512sum Win64_Debug.zip.sig
    2cf9843d48155bd5ddd68f6f020f624e660366dd810e0315377d0fe1eab5ba9e14d172c250fdc782f6b81c59931b4cc7b2e9dcbc064aa54758be47c3a5a44dda  Win64_Debug.zip.sig
    $ sha256sum Win64_Debug.zip.sig
    5162ad874ecc4a30f7b9d819cce715ad541756defc5e5668cc0107b0014b3db8  Win64_Debug.zip.sig
    $ stat -c '%s  %n'
    662  Win64_Debug.zip.sig
    $ sha512sum Win64_Release.zip
    8df13d4d99829b0746b6c3c7b20447c5927a24bcc467b7b89d76fe8eb3eb9e43acee6a03543f9452733e6d43f6e3fdb0bbdfa25bc121568f8926d1799051777d  Win64_Release.zip
    $ sha256sum Win64_Release.zip
    ca983b8f8673f86890d26d674b69888c269fffc051ef7ba774718559e05c89a5  Win64_Release.zip
    $ stat -c '%s  %n'
    400591  Win64_Release.zip
    $ sha512sum Win64_Release.zip.sig
    86427373bb7a9b458be09ee7e34efe8efd657f03b0a936fdec4adfced9d746d660f23fc053eab43f9862c9b3299728fe70802de1e9e416020ad8d62584c06c74  Win64_Release.zip.sig
    $ sha256sum Win64_Release.zip.sig
    685caf14a04d078516db3de684d4a65d5a8cd4762307413ee7b26e1d5d2ac1bf  Win64_Release.zip.sig
    $ stat -c '%s  %n'
    662  Win64_Release.zip.sig
  • Stable 4.0.2 aa8e8aa94f

    Release 4.0.2

    gavin released this 7 months ago | 495 commits to master since this release

    This is a production release that fixes two bugs:

    1. If no files are used and the first statement on stdin is invalid, scale would not be set to 20 even if -l was used.
    2. When using history, bc failed to respond properly to SIGSTOP and SIGTSTP.
    $ sha512sum bc-4.0.2.tar.xz
    f3564cb953bca2003c9fd565b3114a2701de4437c6db3cace29edab186d3270cd98f66f3eb1a45fd074a44736fef39f78675959f400c1c23a4a2e930d469c059  bc-4.0.2.tar.xz
    $ sha256sum bc-4.0.2.tar.xz
    b4a7046325557a44d02165874f957c3abf49e2ba4491c8275326cb7c55ef2290  bc-4.0.2.tar.xz
    $ stat -c '%s  %n'
    235464  bc-4.0.2.tar.xz
    $ sha512sum bc-4.0.2.tar.xz.sig
    3cb05a0d3561acab6fbd6e473c2d8eb32daf825c9aa4840bfb9f2d850e5525661574644d01a4411ff2df099499d226d81bf1b226e975b07f059f2f3c38372a91  bc-4.0.2.tar.xz.sig
    $ sha256sum bc-4.0.2.tar.xz.sig
    1b8f8eeff862ddd4c8ed6f40a16f2608a029b86e5cb37a70ce6cf5730d8230a6  bc-4.0.2.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-4.0.2.tar.xz.sig
  • Stable 4.0.1 e9c191cdda

    Release 4.0.1

    gavin released this 7 months ago | 497 commits to master since this release

    This is a production release that only adds one thing: flushing output when it is printed with a print statement.

    $ sha512sum bc-4.0.1.tar.xz
    c12523ebca7a2419754b65e010d2c0bae15117ed06aa876d01cadc1b45334d4ea774cbb3e94ccf445d1175fe8d500b1d0b53576009b8ed676b6ac6493db98eba  bc-4.0.1.tar.xz
    $ sha256sum bc-4.0.1.tar.xz
    cbb20ac36e5250d65db78ff46acd85e4804b603145bb4479d80348552216de19  bc-4.0.1.tar.xz
    $ stat -c '%s  %n'
    235320  bc-4.0.1.tar.xz
    $ sha512sum bc-4.0.1.tar.xz.sig
    b124ad5795e96bf17146c0f9ba3e3b708b0bf2bc1f8a11fcb500f00cff8a6b3202a925aa0c195320e5dc47ded4f1196dac7e0a2818e7779cc473fef879100e4b  bc-4.0.1.tar.xz.sig
    $ sha256sum bc-4.0.1.tar.xz.sig
    6441addcadd1f87ba9e5689a7589486757b698baf3e1923b2b9063658f49f0d0  bc-4.0.1.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-4.0.1.tar.xz.sig
  • Stable 4.0.0 e9c191cdda

    Release 4.0.0

    gavin released this 7 months ago | 497 commits to master since this release

    This is a production release with many fixes, a new command-line option, and a big surprise:

    • A bug was fixed in dc's P command where the item on the stack was not popped.
    • Various bugs in the manuals have been fixed.
    • A known bug was fixed where history did not interact well with prompts printed by user code without newlines.
    • A new command-line option, -R and --no-read-prompt was added to disable just the prompt when using read() (bc) or ? (dc).
    • And finally, official support for Windows was added.

    The last item is why this is a major version bump.

    Currently, only one set of build options (extra math and prompt enabled, history and NLS/locale support disabled, both calculators enabled) is supported on Windows. However, both debug and release builds are supported.

    In addition, Windows builds are supported for the the library (bcl).

    For more details about how to build on Windows, see the README or the build manual.

    $ sha512sum bc-4.0.0.tar.xz
    e25f4377df81c14f7036fdcbcd503a10ebb4e2663b182da78928aad871b22940c503d54f9a7942798d4e1f38e0487047f492348041a229f18e0fd0e45aab33b3  bc-4.0.0.tar.xz
    $ sha256sum bc-4.0.0.tar.xz
    d3c3ea6c3a439d20eb57e4b84b10f16a41af1b069640a591f584d704054f0a48  bc-4.0.0.tar.xz
    $ stat -c '%s  %n'
    235496  bc-4.0.0.tar.xz
    $ sha512sum bc-4.0.0.tar.xz.sig
    cc511655b2cc68d6b4e5bd1e4228abf9a4ff12d96a7f28dab3f418163e9013063acdc052906c94ce285ed94be7e0c8b957988b1842170adae3c7511f2a451bb9  bc-4.0.0.tar.xz.sig
    $ sha256sum bc-4.0.0.tar.xz.sig
    568c27c9bd7b0ac44244aadce2f76760fd5d5dc4f605cdb12a1568b826344be7  bc-4.0.0.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-4.0.0.tar.xz.sig
  • Stable 3.3.4 e9c191cdda

    Release 3.3.4

    gavin released this 7 months ago | 497 commits to master since this release

    This is a production release that fixes a small bug.

    The bug was that output was not flushed before a read() call, so prompts without a newline on the end were not flushed before the read() call.

    This is such a tiny bug that users only need to upgrade if they are affected.

    $ sha512sum bc-3.3.4.tar.xz
    212b36a3fafbda28c6416d29e2d9e49272c42d95dcdc3bbbb3691e4686ca3f0a9fec883a099d059c5bd21a9b08bf5b2eff01169de20df9777c2fce66a8cda783  bc-3.3.4.tar.xz
    $ sha256sum bc-3.3.4.tar.xz
    268dad63e5df73520ff03e54d445bcf4d5c46c4f77a01c3009df57b3e5bb4fa4  bc-3.3.4.tar.xz
    $ stat -c '%s  %n'
    230264  bc-3.3.4.tar.xz
    $ sha512sum bc-3.3.4.tar.xz.sig
    40425b7ead268b118c5ce85333c093696b843dce171bb98cef267044aae9d565d2a66cff91f66d10e4ead9b92482316e1bbac5824fe7c4a0ed7d877c07cc00ec  bc-3.3.4.tar.xz.sig
    $ sha256sum bc-3.3.4.tar.xz.sig
    29d06c17f6d403d074ae5a658f11dbade8a05653ea876b9f617fde17393d652c  bc-3.3.4.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-3.3.4.tar.xz.sig
  • Stable 3.3.3 c491550347

    Release 3.3.3

    gavin released this 9 months ago | 539 commits to master since this release

    This is a production release with one tweak and fixes for manuals.

    The tweak is that length(0) returns 1 instead of 0. In 3.3.1, I changed it so length(0.x), where x could be any number of digits, returned the scale, but length(0) still returned 0 because I believe that 0 has 0 significant digits.

    After request of FreeBSD and considering the arguments of a mathematician, compatibility with other bc's, and the expectations of users, I decided to make the change.

    The fixes for manuals fixed a bug where -- was rendered as -.

    $ sha512sum bc-3.3.3.tar.xz
    dfdd8023453406d9f681e04da7acaad4459e632fded0f2edb2b51607438a27074935af6db4b3580120daf56e6b52283275d0c2c809380caa164957f1901e9dde  bc-3.3.3.tar.xz
    $ sha256sum bc-3.3.3.tar.xz
    b9fde063b32d4f0c3bab9d069aa8ac4d7d804ce5bebb54d7a2e574e70309bc93  bc-3.3.3.tar.xz
    $ stat -c '%s  %n'
    229688  bc-3.3.3.tar.xz
    $ sha512sum bc-3.3.3.tar.xz.sig
    aeb0ac35e5b99f101fcf04e57659712a378c22da138ff405866baf4c41963af111b2128fc23aeb672ef0a928948ec9f4eeb9eea51781cb20a24cba7fd92af09a  bc-3.3.3.tar.xz.sig
    $ sha256sum bc-3.3.3.tar.xz.sig
    0fe5f256396f0e81d686a728ccf106094f577669877d05e1d82161f5de1d0ede  bc-3.3.3.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-3.3.3.tar.xz.sig
  • Stable 3.3.2 198d431d60

    Release 3.3.2

    gavin released this 9 months ago | 543 commits to master since this release

    This is a production release that fixes a divide-by-zero bug in root() in the extended math library. All previous versions with root() have the bug.

    $ sha512sum bc-3.3.2.tar.xz
    ae3e99c49137e1335c6c6c0f5a39a5488d174b98bdf85ce1c9311546ea093cd6ed2d8d0a3e6d401cdf093d509717ae01ec71e6e60d580e71101c673da5efc953  bc-3.3.2.tar.xz
    $ sha256sum bc-3.3.2.tar.xz
    d2f39937b1b20375e3cfd675562cd2e061408772298e7bb53668f725b94de8ed  bc-3.3.2.tar.xz
    $ stat -c '%s  %n'
    228892  bc-3.3.2.tar.xz
    $ sha512sum bc-3.3.2.tar.xz.sig
    5f3392a986e713f0714905e664c89251a8383751c9a52b37686f1063798cba495e61aa5e93069de5b07f0b156bbeebd32c2fb85f43f70b69ae41d1fd43ae9277  bc-3.3.2.tar.xz.sig
    $ sha256sum bc-3.3.2.tar.xz.sig
    ca68c4101cb56f6a90915ac28cc75da28853099063ce292b4e9602a6685bfb3e  bc-3.3.2.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-3.3.2.tar.xz.sig
  • Stable 3.3.1 986ff371d6

    Release 3.3.1

    gavin released this 9 months ago | 548 commits to master since this release

    This is a production release that fixes a bug.

    The bug was in the reporting of number length when the value was 0.

    $ sha512sum bc-3.3.1.tar.xz
    098bcbe0abc323b295bd46bcf8af00e69898ef560108b660964fb2dfdf6d114a17f051dde0fff06f06aa97f4cee086275eb5dc937166034d795d5cb3da999fca  bc-3.3.1.tar.xz
    $ sha256sum bc-3.3.1.tar.xz
    b6328ad691c71d1ae910dc3d45fe4b35faddd15f79b07b482e21b1766c89dda4  bc-3.3.1.tar.xz
    $ stat -c '%s  %n'
    229708  bc-3.3.1.tar.xz
    $ sha512sum bc-3.3.1.tar.xz.sig
    904a47bc565218d8243920f5c3c6b8a45a9f9914766fbba63730f926e7a08c3fbc28c2adcc23a3e08a4b1939375a5d766270415675afb7f9fe7b245ae498be1c  bc-3.3.1.tar.xz.sig
    $ sha256sum bc-3.3.1.tar.xz.sig
    585bf520d50bd6094573aef5ba223c642f5a77e8e643e9c015ca2b111e01d4e4  bc-3.3.1.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-3.3.1.tar.xz.sig
  • Stable 3.3.0 d0c044a11e

    Release 3.3.0

    gavin released this 9 months ago | 552 commits to master since this release

    This is a production release that changes one behavior and fixes documentation bugs.

    The changed behavior is the treatment of -e and -f when given through BC_ENV_ARGS or DC_ENV_ARGS. Now bc and dc do not exit when those options (or their equivalents) are given through those environment variables. However, bc and dc still exit when they or their equivalents are given on the command-line.

    $ sha512sum bc-3.3.0.tar.xz
    b8d0b6d6d9c5d4fc62df62d1b9b7e7006a8b430e063fe0d5f646cfaeb4c6fc9c7037b644e853b7ae7d5c5f42f079221e9cdc32564d70c9ddd6bb867ddc7056de  bc-3.3.0.tar.xz
    $ sha256sum bc-3.3.0.tar.xz
    d4c0da5a6be9652f55bf237dd44d68602f75c617b486356cb70fc4514f2fd360  bc-3.3.0.tar.xz
    $ stat -c '%s  %n'
    229580  bc-3.3.0.tar.xz
    $ sha512sum bc-3.3.0.tar.xz.sig
    935b381ce5a84a895fabcdfe87fbcb9c5c2f2af2a6ea12948a704447406932366261a105ce08b95dd9e4257b0f46ab98b6df4de61186c82b602dd81b334a0d4b  bc-3.3.0.tar.xz.sig
    $ sha256sum bc-3.3.0.tar.xz.sig
    14be11a9d60b06aed93f2a4cece039d78e49eb3aa4a7b92f9058b9e6e53afb8d  bc-3.3.0.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-3.3.0.tar.xz.sig
  • Stable 3.2.7 d7923c937a

    Release 3.2.7

    gavin released this 10 months ago | 558 commits to master since this release

    This is a production release that removes a small non-portable shell operation in configure.sh. This problem was only noticed on OpenBSD, not FreeBSD or Linux.

    Non-OpenBSD users do NOT need to upgrade, although NetBSD users may also need to upgrade.

    $ sha512sum bc-3.2.7.tar.xz
    b516c400625b54b68ed5c1d484d48d80a094495c1d96437129a835dcc5caf2c29d5524d4b67144d11215569bd6ec1ac90113b3fda0d621c8672313119da4f9fa  bc-3.2.7.tar.xz
    $ sha256sum bc-3.2.7.tar.xz
    ab3d925d14687e38d971b3f2ea9dff1f3338d0d151644f7fa503dbefe3d8f573  bc-3.2.7.tar.xz
    $ stat -c '%s  %n'
    228540  bc-3.2.7.tar.xz
    $ sha512sum bc-3.2.7.tar.xz.sig
    8ab7a3595e130e036acac8554a5107a11b5212d93d298e8a0370a402049026c702c6f6f06fcf6f46a7e36eb6b5a7d1b6b42f5987ea39995039e512226b6c6c26  bc-3.2.7.tar.xz.sig
    $ sha256sum bc-3.2.7.tar.xz.sig
    55851847a6ec3c20d1cae884f67c7adff712b45a2c1575420645b1228076d9a9  bc-3.2.7.tar.xz.sig
    $ stat -c '%s  %n'
    662  bc-3.2.7.tar.xz.sig
  • Stable 3.2.6 8b9f8084a0

    Release 3.2.6

    gavin released this 10 months ago | 566 commits to master since this release

    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
  • Pre-Release 3.2.5 8cc14cfdb1

    Release 3.2.5

    gavin released this 10 months ago | 571 commits to master since this release

    This is a (non)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
  • Stable 3.2.4 63583d3ac1

    Release 3.2.4

    gavin released this 12 months ago | 613 commits to master since this release

    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
  • Stable 3.2.3 c19bc989ed

    Release 3.2.3

    gavin released this 1 year ago | 616 commits to master since this release

    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
  • Stable 3.2.2 207abe80e8

    Release 3.2.2

    gavin released this 1 year ago | 618 commits to master since this release

    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
  • Stable 3.2.1 44d9a63ab2

    Release 3.2.1

    gavin released this 1 year ago | 620 commits to master since this release

    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
  • Stable 3.2.0 cb070f46cb

    Release 3.2.0

    gavin released this 1 year ago | 622 commits to master since this release

    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
  • Stable 3.1.6 2f91e8ee00

    Release 3.1.6

    gavin released this 1 year ago | 701 commits to master since this release

    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
  • Stable 3.1.5 9487714deb

    Release 3.1.5

    gavin released this 1 year ago | 709 commits to master since this release

    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.


    $ 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
  • Stable 3.1.4 ccad710baf

    Release 3.1.4

    gavin released this 1 year ago | 718 commits to master since this release

    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
  • Stable 3.1.3 5514bd7945

    Release 3.1.3

    gavin released this 1 year ago | 732 commits to master since this release

    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
  • Stable 3.1.2 248ca9cb42

    Release 3.1.2

    gavin released this 1 year ago | 741 commits to master since this release

    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
  • Stable 3.1.1 6354165652

    Release 3.1.1

    gavin released this 1 year ago | 747 commits to master since this release

    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
  • Stable 3.1.0 175921f774

    Release 3.1.0

    gavin released this 1 year ago | 750 commits to master since this release

    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