CVE and update status of the FreeBSD ports tree3,864 unaddressed CVEs in 671 portsAll times are CET
Port details

math/gh-bc 7.1.0

GNU compatible bc/dc calculator

Port info

Maintainer
se@FreeBSD.org
Packages
latest: 7.1.0
Upstream
up to date
Last update
to 7.1.0 · 08f30a889b
Quarterly
2026Q4: 7.1.0
WWW
https://github.com/gavinhoward/bc
Links
cgit · VuXML

Install

Package
# pkg install gh-bc
installs 7.1.0 from latest; from quarterly (2026Q4) 7.1.0
Port
# cd /usr/ports/math/gh-bc && make install clean
# make -C /usr/ports/math/gh-bc config  # change options first
Size
131 KiB download · 290 KiB installed
Depends on
devel/libedit 3.1.20260512,1
License
BSD2CLAUSE and MIT
Options
1 of 3 on in the package: LIBEDIT
Show the 2 options that are off
INTERNAL READLINE

Packages by version and architecture

latest

FreeBSD versionamd64aarch64i386
FreeBSD 167.1.07.1.0–
FreeBSD 157.1.07.1.0–
FreeBSD 147.1.07.1.07.1.0

quarterly (2026Q4)

FreeBSD versionamd64aarch64i386
FreeBSD 157.1.07.1.0–
FreeBSD 147.1.07.1.07.1.0

version as in the ports tree (latest) or the most common one (quarterly) · different version · ✗ not built · – no packages for this platform. Package sets that have not been rebuilt for 60 days are left out.

Unaddressed and VuXML only (0)

No unaddressed CVE and nothing reported by pkg audit for the packaged version 7.1.0.

Fixed (0)

No VuXML entries for this package.

Problem reports (0) · open in Bugzilla, most recently changed first

None.

Commits (84)

Stefan Eßer (se) · 7.1.0
math/gh-bc: update to version 7.1.0

This 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.

It also has a performance increase in the band() function and others
in the math library.
08f30a889b
Stefan Eßer (se) · 7.0.3
math/gh-bc: update to version 7.0.3

This version fixes build warnings when using musl libc.
There is no fucntional change.
2f566b1df9
Stefan Eßer (se) · 7.0.2
vendor/bc: upgrade to version 7.0.2

This update fixes exiting from an interactive bc session with ^D on
FreeBSD and Linux when using editline.

This bug was caused by the macOS fix for editline in version 7.0.0,
which has been reverted in this version.
6c57eab5c8
Stefan Eßer (se) · 7.0.1
math/gh-bc: upgrade to version 7.0.1

This update fixes a potential build issue that did not affect the port.
1eafe3bb74
Stefan Eßer (se) · 7.0.0
math/gh-bc: upgrade to version 7.0.0

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.
128febd64f
Stefan Eßer (se) · 6.7.6
math/gh-bc: upgrade to version 6.7.6

This update fixes a bug with flushing stdout on exit.
8795a7f1d0
Muhammad Moinur Rahman (bofh) · 6.7.5_1
math/gh-bc: Sanitize MANPREFIX

Approved by:    portmgr (blanket)
7b4ba28e7e
Stefan Eßer (se) · 6.7.5
math/gh-bc: update to version 6.7.5

This update fixes a bug that line breaks in printed numbers may not
match the line length set by the user. The value is printed correctly,
just not split as specified in some situations.
85da8c39b9
Stefan Eßer (se) · 6.7.4
math/gh-bc: updat eto version 6.7.4

This version contains updated man pages - no functional chanages.
86e7ec5beb
Stefan Eßer (se) · 6.7.2
math/gh-bc: upgrade to version 5.7.2

This update fixes an issue with signal handling in interactive use.
fe33f33d23
Stefan Eßer (se) · 6.7.0
math/gh-bc: update to version 6.7.0

This version offers 3 new functions in the extended math library:
min(), max(), and i2rand().
920a2f503d
Stefan Eßer (se) · 6.6.1
math/gh-bc: upgrade to version 6.6.1

This version provides an optimized implementation of the library
function p(x,y) for calculating the y-th power of x.
186080b50f
Stefan Eßer (se) · 6.6.0
math/gh-bc: upgrade to version 6.6.0

This update removes printing of a leading zero in scientific or
engineering output modes (which are an extended feature of this
implementation).
0de1e5e09a
Stefan Eßer (se) · 6.5.0
math/gh-bc: update to version 6.5.0

This is a production release that fixes an infinite loop bug in root()
and cbrt(), fixes a bug with BC_LINE_LENGTH=0, and adds the fib()
function to the extended math library to calculate Fibonacci numbers.
d084843ca9
Stefan Eßer (se) · 6.4.0
math/gh-bc: update to version 6.4.0

This version contains a fix for an issue that can affect complex
bc scripts that use multiple read() functions that receive input from
an interactive user. The same value could be returned multiple times.
22f9505182
Stefan Eßer (se) · 6.3.1
math/gh-bc: upgrase to version 6.3.1

This version adds a command to dc to query whether extended registers
are enabled or not.
83e69e40b3
Stefan Eßer (se) · 6.2.4
math/gh-bc: update to version 6.2.4

This update changes the URL of the upstream repository in the
documentation to:

	       https://git.gavinhoward.com/gavin/bc
002fa656dc
Stefan Eßer (se) · 6.2.2
math/gh-bc: update to version 6.2.2

This update fixes a few issues and adds new features:

 - There was a discrepancy from the bc standard 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.

 - A memory bug was caused 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.

 - Another 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.

 - 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.

 - If an array element was used as a parameter, and then a later
   parameter had the same name as the array whose element was used,
   bc would grab the element from the new array parameter, not the
   actual element from before the function call.

 - A new built-in function is_number() ("u" in dc) returns 1 if the
   runtime argument is a number and 0 otherwise.

 - A new is_string() built-in function ("t" in dc) returns 1 if the
   runtime argument is a string and 0 otherwise.

 - The new asciify() built-in function in bc converts 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.

 - Stack traces are now given for runtime errors. In debug mode, the
   C source file and line of errors are given as well.
ec98f1089a
Stefan Eßer (se) · 6.0.2
Remove WWW entries moved into port Makefiles

Commit b7f05445c00f has added WWW entries to port Makefiles based on
WWW: lines in pkg-descr files.

This commit removes the WWW: lines of moved-over URLs from these
pkg-descr files.

Approved by:		portmgr (tcberner)
fb16dfecae
Stefan Eßer (se) · 6.0.2
Add WWW entries to port Makefiles

It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
b7f05445c0
Stefan Eßer (se) · 6.0.2
math/gh-bc: upgrade to version 6.0.2

Fix combination of -l and -S option: -l could set a scale value set
with -S back to the default scale value.
09efc344fa
Stefan Eßer (se) · 6.0.1
math/gh-bc: upgrade to version 6.0.1

This update adds the -c/-C options to control the clamping behavior
(the parsing of digits not allowed by the current value of ibase).
f94f9b43cd
Stefan Eßer (se) · 5.3.3
math/gh-bc: update to version 5.3.3

This update restores suppression of the prompt with option -P, which
had been missing if linked with libedit or libreadline.

Since building the version tagged as 5.3.3 leaves temporary files in
/tmp, this commit includes a post-release update that fixes this build
issue.
f63c70ee23
Stefan Eßer (se) · 5.3.2
math/gh-bc: update to version 5.3.2

This update Restores support for suppression of the prompt with -P
when using the libedit or libreadline libraries for command line
editing and history.
0cb86cf928
Stefan Eßer (se) · 5.3.1
math/gh-bc: update to version 5.3.1

This version supports multiple command line editing and history
implementations:

- editline (default)
- readline
- private implementation (as in prior versions)

The private implementation has been modified to treat ^D on an empty
input line as an EOF signal.
6c986da5a7
Stefan Eßer (se) · 5.2.5
math/gh-bc: updat eto version 5.2.5

This update adds ^D to delete the character under the cursor.
bbe9080b6d
Stefan Eßer (se) · 5.2.4
math/gh-bc: update to version 5.2.4

This update fixes an issue in input line editing: when going left to
the start of the line, the cursor would jump to the end of the line
instead.
8b701e757d
Stefan Eßer (se) · 5.2.3
math/gh-bc: update to version 5.2.3

This update fixes a parse error when passing a file to bc using -f
if that file has a multiline comment or string in it.
5ac49dcc76
Stefan Eßer (se) · 5.2.2
math/gh-bc: update to version 5.2.2

The only change relative to the previous version is that a default
value for the program name is used if the program is invoked with
argv[0] == NULL.
8a186f3121
Stefan Eßer (se) · 5.2.1
math/gh-bc: update to version 5.2.1

This version 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.
c6953e9f2a
Stefan Eßer (se) · 5.2.0
math/gh-bc: upgrade to version 5.2.0
097ccb73bc
Stefan Eßer (se) · 5.1.1
math/gh-bc: upgrade to version 5.1.1

This update fixes a parser issue: syntactically correct if statements
where not accepted in specific situations.
53496b5d77
Stefan Eßer (se) · 5.1.0
math/gh-bc: update to version 5.1.0

This version adds options and functions that allow to print numbers
in the open interval (-1 .. 1) with or without a leading 0 digit.

Additionally, an option has been added to prevent line wrap and
allows to print arbitrarily long results on a single line.
a71f654143
Stefan Eßer (se) · 5.0.2
math/gh-bc: update to version 5.0.2
0f5bfc3a78
Stefan Eßer (se) · 5.0.0
math/gh-bc: update to version 5.0.0

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.
94a34f976b
Stefan Eßer (se) · 4.0.2
math/bc: Update to version 4.0.2

This update fixes the initialization of "scale" to 20 if started with
-l and the initial statement leads to an error (e.g. contains a syntax
error). Scale was initialized to 0 in that case.

Another change is the support of job control in interactive mode with
line editing enabled. The control characters have been interpreted as
editing commands only, prior to this version.
cb28781185
Stefan Eßer (se) · 4.0.1
math/gh-bc: updat eto version 4.0.1

Always flush output after the excution of print statements.
0d2bb89b75
Mathieu Arnold (mat) · 4.0.0
One more small cleanup, forgotten yesterday. Reported by:	lwhsu
cf118ccf87
Mathieu Arnold (mat) · 4.0.0
Remove # $FreeBSD$ from Makefiles.
305f148f48
Stefan Eßer (se) · 4.0.0
Update to Version 4.0.0

This version fixes an issue in dc: the P command did not pop the value
being printed from the stack.

The major version bump is due to the addition of Windows compatibility
and does not correspond to a change of functionality on POSIX systems.
634a88402a
Stefan Eßer (se) · 3.3.4
Update to version 3.3.4

This update adds an implicit flush of the output if read() is called in a
bc script in order to display a prompt without \n in line buffered mode.
c3e6b5848a
Stefan Eßer (se) · 3.3.3
Update to version 3.3.3

This version fixes a potential division be 0 in the extended math library
(in the non-standard function "root") and makes length(0) return 1 to
restore the behavior of the traditional bc in FreeBSD and of GNU bc.
6ebae23787
Stefan Eßer (se) · 3.3.0
Upgrade to version 3.3.0

There is one functional change with regard to -e of -f in BC_ENV_ARGS resp.
DC_ENV_ARGS: these do no longer make the program exit after processing the
commands passed that way (which prevented to use the environment variables
to set parameters for interactive sessions, unless -f- was passed as the
last argument on the command line).
87b3de29e6
Stefan Eßer (se) · 3.2.6
Update to version 3.2.6
519ea061f3
Stefan Eßer (se) · 3.2.4
Upgrade to version 3.2.4

Test for support of __has_attribute(fallthrough) to allow compilation with
gcc-6 and lower. No functional change.
c8d6626c6c
Stefan Eßer (se) · 3.2.3
Update to version 3.2.3

A port patch has been merged into the upstream sources.
eac84e728f
Stefan Eßer (se) · 3.2.0
Upgrade to version 3.2.0

This update fixes an issue in the bessel function
58bc9c9abf
Stefan Eßer (se) · 3.1.6
Update to version 3.1.6

This update fixes one (benign) warning generated when compiling with
LLVM-12.

Differential Revision:	https://reviews.freebsd.org/D26593
9c89dada66
Stefan Eßer (se) · 3.1.5
Upgrade to version 3.1.5

This version fixes a bug that occurs when running under a chinese locale.

Approved by:	antoine (implicit)
aad0442955
Stefan Eßer (se) · 3.1.4
Upgrade to version 3.1.4

This version improves the compatibility with the bc and dc in base under
two aspects:

1) Remove printing of the version and copyright message for interactive
   invocations of bc an dc.

2) Make dc exit after execution of commands passed via -e or -f. To get
   the behavior of version 3.1.3 back, "-f -" can be appended to the
   command line to read from STDIN until EOF.

Approved by:	antoine (implicit)
d037e99975