<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/include/dc.h, branch vendor/bc</title>
<subtitle>FreeBSD source tree</subtitle>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/'/>
<entry>
<title>vendor/bc: upgrade to version 7.1.0</title>
<updated>2025-09-11T14:07:46+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2025-09-11T14:07:46+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=682da5a0fdb2c38ecc3951047a882471d62aa1d1'/>
<id>682da5a0fdb2c38ecc3951047a882471d62aa1d1</id>
<content type='text'>
This update fixes a few bugs:
- Improper response to double SIGINT with editline.
- Not letting libedit handle terminal size changes.
- A dc crash from improperly handling an error.
- A duplicate check for reference arrays.
- Build failures with GCC 15.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This update fixes a few bugs:
- Improper response to double SIGINT with editline.
- Not letting libedit handle terminal size changes.
- A dc crash from improperly handling an error.
- A duplicate check for reference arrays.
- Build failures with GCC 15.
</pre>
</div>
</content>
</entry>
<entry>
<title>vendor/bc: upgrade to version 7.0.0</title>
<updated>2024-08-23T16:45:58+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2024-08-23T16:45:58+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=54d20d67e2af28d948ce2df13feb039fa10900fc'/>
<id>54d20d67e2af28d948ce2df13feb039fa10900fc</id>
<content type='text'>
This is a production release to fix three bugs, none of which
affects well formed scripts on FreeBSD:

The first bug is that bc/dc will exit on macOS when the terminal
is resized.

The second bug is that an array, which should only be a function
parameter, was accepted as part of larger expressions.

The third bug is that the value stack for dc was cleared on any error.
However, this is not how other dc behave. To bring dc more in line
with other implementations, this behavior was changed. This change is
why this version is a new major version.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a production release to fix three bugs, none of which
affects well formed scripts on FreeBSD:

The first bug is that bc/dc will exit on macOS when the terminal
is resized.

The second bug is that an array, which should only be a function
parameter, was accepted as part of larger expressions.

The third bug is that the value stack for dc was cleared on any error.
However, this is not how other dc behave. To bring dc more in line
with other implementations, this behavior was changed. This change is
why this version is a new major version.
</pre>
</div>
</content>
</entry>
<entry>
<title>vendor/bc: upgrade to version 6.7.6</title>
<updated>2024-07-08T17:49:39+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2024-07-08T17:39:17+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=898b46e930119f988aa96b8946e4937edbdc1982'/>
<id>898b46e930119f988aa96b8946e4937edbdc1982</id>
<content type='text'>
This update fixes a potential issue when flushing stdout on exit
fails: longjmp could use an uninitialized target address variable.

Most files are included in this commit due to a changed date in
the copyright note.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This update fixes a potential issue when flushing stdout on exit
fails: longjmp could use an uninitialized target address variable.

Most files are included in this commit due to a changed date in
the copyright note.
</pre>
</div>
</content>
</entry>
<entry>
<title>vendor/bc: import version 6.2.0</title>
<updated>2023-01-28T20:02:27+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2023-01-28T20:02:27+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=e7017237c9d842b4cebdcfb13526cd71a2b2836a'/>
<id>e7017237c9d842b4cebdcfb13526cd71a2b2836a</id>
<content type='text'>
This is a production release with a new feature and a few bug fixes.

The bug fixes include:

 - A crash when bc and dc are built using editline, but history is not
   activated.
 - A missing local in the uint*() family of functions in the extended
   math library.
 - A failure to clear the tail call list in dc on error.
 - A crash when attempting to swap characters in command-line history
   when no characters exist.
 - SIGWINCH was activated even when history was not.

The new feature is that stack traces are now given for runtime errors.
In debug mode, the C source file and line of errors are given as well.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a production release with a new feature and a few bug fixes.

The bug fixes include:

 - A crash when bc and dc are built using editline, but history is not
   activated.
 - A missing local in the uint*() family of functions in the extended
   math library.
 - A failure to clear the tail call list in dc on error.
 - A crash when attempting to swap characters in command-line history
   when no characters exist.
 - SIGWINCH was activated even when history was not.

The new feature is that stack traces are now given for runtime errors.
In debug mode, the C source file and line of errors are given as well.
</pre>
</div>
</content>
</entry>
<entry>
<title>vendor/bc: import of version 5.3.0</title>
<updated>2022-06-11T09:50:28+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2022-06-11T09:50:28+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=5bdd626528a2bb3e341e283b2eb279235997b8f4'/>
<id>5bdd626528a2bb3e341e283b2eb279235997b8f4</id>
<content type='text'>
This version adds support for command line editing and history using
the editline or readline libraries in addition to the line editing
features available in previous versions.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This version adds support for command line editing and history using
the editline or readline libraries in addition to the line editing
features available in previous versions.
</pre>
</div>
</content>
</entry>
<entry>
<title>vendor/bc: imoport release 5.0.0</title>
<updated>2021-08-09T20:32:55+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2021-08-09T20:32:55+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2f57ecae4b98e76e5d675563785a7e6c59c868c4'/>
<id>2f57ecae4b98e76e5d675563785a7e6c59c868c4</id>
<content type='text'>
This is a new major release with a number of changes and extensions:

- 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.
- Made bc and dc UTF-8 capable.
- 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.
- 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 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.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a new major release with a number of changes and extensions:

- 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.
- Made bc and dc UTF-8 capable.
- 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.
- 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 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.
</pre>
</div>
</content>
</entry>
<entry>
<title>Vendor import of Gavin Howard's bc version 3.2.6</title>
<updated>2021-01-31T19:58:45+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2021-01-31T19:56:48+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=47a52dc4d48f259ab7d9f9ba6b65f4f2331a22dc'/>
<id>47a52dc4d48f259ab7d9f9ba6b65f4f2331a22dc</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Update to release 3.1.1</title>
<updated>2020-07-07T07:02:33+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2020-07-07T07:02:33+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3960d8924a1a0ba2f0f5e8510e73a10ee20d726b'/>
<id>3960d8924a1a0ba2f0f5e8510e73a10ee20d726b</id>
<content type='text'>
This release fixes a regression from traditional bc behavior in FreeBSD
with regard to "-e quit" being passed on the command line and add Spanish
message catalogs.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This release fixes a regression from traditional bc behavior in FreeBSD
with regard to "-e quit" being passed on the command line and add Spanish
message catalogs.
</pre>
</div>
</content>
</entry>
<entry>
<title>Import new 2-clause BSD licenced implementation of the bc and dc commands</title>
<updated>2020-06-27T15:03:19+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2020-06-27T15:03:19+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=1f958cfad78842ab9a1193471589231e25596cb3'/>
<id>1f958cfad78842ab9a1193471589231e25596cb3</id>
<content type='text'>
These implementations of the bc and dc programs offer a number of advantages
compared to the current implementations in the FreeBSD base system:

- They do not depend on external large number functions (i.e. no dependency
  on OpenSSL or any other large number library)

- They implements all features found in GNU bc/dc (with the exception of
  the forking of sub-processes, which the author of this version considers
  as a security issue).

- They are significantly faster than the current code in base (more than
  2 orders of magnitude in some of my tests, e.g. for 12345^100000).

- They should be fully compatible with all features and the behavior of the
  current implementations in FreeBSD (not formally verified).

- They support POSIX message catalogs and come with localized messages in
  Chinese, Dutch, English, French, German, Japanese, Polish, Portugueze,
  and Russian.

- They offer very detailed man-pages that provide far more information than
  the current ones.

Approved by:	imp
Obtained from:	https://git.yzena.com/gavin/bc
Differential Revision:	https://reviews.freebsd.org/D19982
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
These implementations of the bc and dc programs offer a number of advantages
compared to the current implementations in the FreeBSD base system:

- They do not depend on external large number functions (i.e. no dependency
  on OpenSSL or any other large number library)

- They implements all features found in GNU bc/dc (with the exception of
  the forking of sub-processes, which the author of this version considers
  as a security issue).

- They are significantly faster than the current code in base (more than
  2 orders of magnitude in some of my tests, e.g. for 12345^100000).

- They should be fully compatible with all features and the behavior of the
  current implementations in FreeBSD (not formally verified).

- They support POSIX message catalogs and come with localized messages in
  Chinese, Dutch, English, French, German, Japanese, Polish, Portugueze,
  and Russian.

- They offer very detailed man-pages that provide far more information than
  the current ones.

Approved by:	imp
Obtained from:	https://git.yzena.com/gavin/bc
Differential Revision:	https://reviews.freebsd.org/D19982
</pre>
</div>
</content>
</entry>
</feed>
