Release 3.1.0
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