<feed xmlns='http://www.w3.org/2005/Atom'>
<title>src/include/parse.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 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.3.1</title>
<updated>2023-02-24T22:14:58+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2023-02-24T22:14:58+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=61e1a12bb6c3bfdb0a4e499c88e8eaa2b548e427'/>
<id>61e1a12bb6c3bfdb0a4e499c88e8eaa2b548e427</id>
<content type='text'>
This version adds a command to dc to query whether extended registers
are enabled or not.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This version adds a command to dc to query whether extended registers
are enabled or not.
</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 version 6.1.0</title>
<updated>2023-01-28T19:59:18+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2023-01-28T19:59:18+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=0b671e8cf134e605567a6b8091958c1f1dfc5140'/>
<id>0b671e8cf134e605567a6b8091958c1f1dfc5140</id>
<content type='text'>
This is a production release that fixes a discrepancy from the bc
standard, a couple of memory bugs, and adds new features.

The discrepancy from the bc standard was with regards to the behavior
of the quit command. This bc used to quit whenever it encountered quit
during parsing, even if it was parsing a full file. Now, bc only quits
when encountering quit after it has executed all executable statements
up to that point.

This behavior is slightly different from GNU bc, but users will only
notice the difference if they put quit on the same line as other
statements.

The first memory bug could be reproduced by assigning a string to a
non-local variable in a function, then redefining the function with
use of the same non-local variable, which would still refer to a
string in the previous version of the function.

The second memory bug was caused by passing an array argument to the
asciify() built-in function. In certain cases, that was wrongly
allowed, and the interpreter just assumed everything was correct and
accessed memory. Now that arrays are allowed as arguments (see below),
this is not an issue.

The first feature was the addition of the is_number() built-in
function (u in dc) that returns 1 if the runtime argument is a number
and 0 otherwise.

The second feature was the addition of the is_string() built-in
function (t in dc) that returns 1 if the runtime argument is a string
and 0 otherwise.

These features were added because I realized that type-checking is
necessary now that strings can be assigned to variables in bc and
because they've always been assignable to variables in dc.

The last added feature is the ability of the asciify() built-in
function in bc to convert a full array of numbers into a string. This
means that character-by-character printing will not be necessary, and
more strings than just single-character ones will be able to be
created.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is a production release that fixes a discrepancy from the bc
standard, a couple of memory bugs, and adds new features.

The discrepancy from the bc standard was with regards to the behavior
of the quit command. This bc used to quit whenever it encountered quit
during parsing, even if it was parsing a full file. Now, bc only quits
when encountering quit after it has executed all executable statements
up to that point.

This behavior is slightly different from GNU bc, but users will only
notice the difference if they put quit on the same line as other
statements.

The first memory bug could be reproduced by assigning a string to a
non-local variable in a function, then redefining the function with
use of the same non-local variable, which would still refer to a
string in the previous version of the function.

The second memory bug was caused by passing an array argument to the
asciify() built-in function. In certain cases, that was wrongly
allowed, and the interpreter just assumed everything was correct and
accessed memory. Now that arrays are allowed as arguments (see below),
this is not an issue.

The first feature was the addition of the is_number() built-in
function (u in dc) that returns 1 if the runtime argument is a number
and 0 otherwise.

The second feature was the addition of the is_string() built-in
function (t in dc) that returns 1 if the runtime argument is a string
and 0 otherwise.

These features were added because I realized that type-checking is
necessary now that strings can be assigned to variables in bc and
because they've always been assignable to variables in dc.

The last added feature is the ability of the asciify() built-in
function in bc to convert a full array of numbers into a string. This
means that character-by-character printing will not be necessary, and
more strings than just single-character ones will be able to be
created.
</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: import version 5.2.3</title>
<updated>2022-03-07T22:08:20+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2022-03-07T22:08:20+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=3673adf1ee311d6f83176d3e43cf0efb314764e4'/>
<id>3673adf1ee311d6f83176d3e43cf0efb314764e4</id>
<content type='text'>
This version fixes a parse error when passing a file to bc using -f
if that file has a multiline comment or string in it.

MFC after:	3 days
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This version fixes a parse error when passing a file to bc using -f
if that file has a multiline comment or string in it.

MFC after:	3 days
</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>Import version 3.2.0</title>
<updated>2020-11-26T17:27:07+00:00</updated>
<author>
<name>Stefan Eßer</name>
<email>se@FreeBSD.org</email>
</author>
<published>2020-11-26T17:27:07+00:00</published>
<link rel='alternate' type='text/html' href='http://cgit.freebsd.org/src/commit/?id=2e4772e82335c32e07d0605e5edefb0ac6ea857b'/>
<id>2e4772e82335c32e07d0605e5edefb0ac6ea857b</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
