Path to this page:
Subject: CVS commit: pkgsrc/math/bc-gh
From: Greg Troxel
Date: 2020-05-17 00:54:21
Message id: 20200516225421.EDB91FB27@cvs.NetBSD.org
Log Message:
math/bc-gh: Update to 2.7.2
Upstream NEWS highlights:
(translations and bugfixes omitted)
## 2.7.2
This is a production release with one major bug fix.
The `length()` built-in function can take either a number or an array. If it
takes an array, it returns the length of the array. Arrays can be passed by
reference. The bug is that the `length()` function would not properly
dereference arrays that were references. This is a bug that affects all users.
**ALL USERS SHOULD UPDATE `bc`**.
## 2.7.0
There is only one new feature: **`bc` now has a built-in pseudo-random number
generator** (PRNG).
The PRNG is seeded, making it useful for applications where
`/dev/urandom` does not work because output needs to be reproducible. However,
it also uses `/dev/urandom` to seed itself by default, so it will start with a
good seed by default.
On top of that, four functions were added to `bc`'s [extended math library][16]
to make using the PRNG easier:
* `frand(p)`: Generates a number between `[0,1)` to `p` decimal places.
* `ifrand(i, p)`: Generates an integer with bound `i` and adds it to `frand(p)`.
* `srand(x)`: Randomizes the sign of `x`. In other words, it flips the sign of
`x` with probability `0.5`.
* `brand()`: Returns a random boolean value (either `0` or `1`).
## 2.4.0
* The `bc` `&&` and `||` operators were made available to `dc` through \
the `M`
and `m` commands, respectively.
* `dc` macros were changed to be tail call-optimized.
The last item, tail call optimization, means that if the last thing in a macro
is a call to another macro, then the old macro is popped before executing the
new macro. This change was made to stop `dc` from consuming more and more memory
as macros are executed in a loop.
The `q` and `Q` commands still respect the "hidden" macros by way of \
recording
how many macros were removed by tail call optimization.
Files: