]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
Import new 2-clause BSD licenced implementation of the bc and dc commands
authorse <se@FreeBSD.org>
Sat, 27 Jun 2020 15:03:19 +0000 (15:03 +0000)
committerse <se@FreeBSD.org>
Sat, 27 Jun 2020 15:03:19 +0000 (15:03 +0000)
commit9972b1376c4519d3548b533f7531313767783e63
tree4bbff8044605fcfff11c9d322bb6f53495e4faa7
Import new 2-clause BSD licenced implementation of the bc and dc commands

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
406 files changed:
.gitignore [new file with mode: 0644]
.travis.yml [new file with mode: 0644]
LICENSE.md [new file with mode: 0644]
Makefile.in [new file with mode: 0644]
NEWS.md [new file with mode: 0644]
NOTICE.md [new file with mode: 0644]
README.md [new file with mode: 0644]
RELEASE.md [new file with mode: 0644]
TODO.md [new file with mode: 0644]
codecov.yml [new file with mode: 0644]
configure [new symlink]
configure.sh [new file with mode: 0755]
functions.sh [new file with mode: 0755]
gen/bc_help.txt [new file with mode: 0644]
gen/dc_help.txt [new file with mode: 0644]
gen/lib.bc [new file with mode: 0644]
gen/lib2.bc [new file with mode: 0644]
gen/strgen.c [new file with mode: 0644]
gen/strgen.sh [new file with mode: 0755]
include/args.h [new file with mode: 0644]
include/bc.h [new file with mode: 0644]
include/dc.h [new file with mode: 0644]
include/file.h [new file with mode: 0644]
include/history.h [new file with mode: 0644]
include/lang.h [new file with mode: 0644]
include/lex.h [new file with mode: 0644]
include/num.h [new file with mode: 0644]
include/opt.h [new file with mode: 0644]
include/parse.h [new file with mode: 0644]
include/program.h [new file with mode: 0644]
include/rand.h [new file with mode: 0644]
include/read.h [new file with mode: 0644]
include/status.h [new file with mode: 0644]
include/vector.h [new file with mode: 0644]
include/vm.h [new file with mode: 0644]
install.sh [new file with mode: 0755]
karatsuba.py [new file with mode: 0755]
link.sh [new file with mode: 0755]
locale_install.sh [new file with mode: 0755]
locale_uninstall.sh [new file with mode: 0755]
locales/de_AT.ISO8859-1.msg [new symlink]
locales/de_AT.ISO8859-15.msg [new symlink]
locales/de_AT.UTF-8.msg [new symlink]
locales/de_AT.utf8.msg [new symlink]
locales/de_CH.ISO8859-1.msg [new symlink]
locales/de_CH.ISO8859-15.msg [new symlink]
locales/de_CH.UTF-8.msg [new symlink]
locales/de_CH.utf8.msg [new symlink]
locales/de_DE.ISO8859-1.msg [new file with mode: 0644]
locales/de_DE.ISO8859-15.msg [new symlink]
locales/de_DE.UTF-8.msg [new file with mode: 0644]
locales/de_DE.utf8.msg [new symlink]
locales/en_AU.ISO8859-1.msg [new symlink]
locales/en_AU.ISO8859-15.msg [new symlink]
locales/en_AU.US-ASCII.msg [new symlink]
locales/en_AU.UTF-8.msg [new symlink]
locales/en_AU.utf8.msg [new symlink]
locales/en_CA.ISO8859-1.msg [new symlink]
locales/en_CA.ISO8859-15.msg [new symlink]
locales/en_CA.US-ASCII.msg [new symlink]
locales/en_CA.UTF-8.msg [new symlink]
locales/en_CA.utf8.msg [new symlink]
locales/en_GB.ISO8859-1.msg [new symlink]
locales/en_GB.ISO8859-15.msg [new symlink]
locales/en_GB.US-ASCII.msg [new symlink]
locales/en_GB.UTF-8.msg [new symlink]
locales/en_GB.utf8.msg [new symlink]
locales/en_IE.ISO8859-1.msg [new symlink]
locales/en_IE.ISO8859-15.msg [new symlink]
locales/en_IE.US_ASCII.msg [new symlink]
locales/en_IE.UTF-8.msg [new symlink]
locales/en_IE.utf8.msg [new symlink]
locales/en_NZ.ISO8859-1.msg [new symlink]
locales/en_NZ.ISO8859-15.msg [new symlink]
locales/en_NZ.US-ASCII.msg [new symlink]
locales/en_NZ.UTF-8.msg [new symlink]
locales/en_NZ.utf8.msg [new symlink]
locales/en_US.ISO8859-1.msg [new symlink]
locales/en_US.ISO8859-15.msg [new symlink]
locales/en_US.US-ASCII.msg [new symlink]
locales/en_US.US_ASCII.msg [new symlink]
locales/en_US.UTF-8.msg [new symlink]
locales/en_US.msg [new file with mode: 0644]
locales/en_US.utf8.msg [new symlink]
locales/es_ES.UTF-8.msg [new file with mode: 0644]
locales/es_ES.utf8.msg [new symlink]
locales/fr_BE.ISO8859-1.msg [new symlink]
locales/fr_BE.ISO8859-15.msg [new symlink]
locales/fr_BE.UTF-8.msg [new symlink]
locales/fr_BE.utf8.msg [new symlink]
locales/fr_CA.ISO8859-1.msg [new symlink]
locales/fr_CA.ISO8859-15.msg [new symlink]
locales/fr_CA.UTF-8.msg [new symlink]
locales/fr_CA.utf8.msg [new symlink]
locales/fr_CH.ISO8859-1.msg [new symlink]
locales/fr_CH.ISO8859-15.msg [new symlink]
locales/fr_CH.UTF-8.msg [new symlink]
locales/fr_CH.utf8.msg [new symlink]
locales/fr_FR.ISO8859-1.msg [new file with mode: 0644]
locales/fr_FR.ISO8859-15.msg [new symlink]
locales/fr_FR.UTF-8.msg [new file with mode: 0644]
locales/fr_FR.utf8.msg [new symlink]
locales/ja_JP.UTF-8.msg [new file with mode: 0644]
locales/ja_JP.eucJP.msg [new file with mode: 0644]
locales/ja_JP.utf8.msg [new symlink]
locales/nl_BE.ISO8859-1.msg [new symlink]
locales/nl_BE.ISO8859-15.msg [new symlink]
locales/nl_NL.ISO8859-1.msg [new file with mode: 0644]
locales/nl_NL.ISO8859-15.msg [new symlink]
locales/nl_NL.UTF-8.msg [new file with mode: 0644]
locales/nl_NL.utf8.msg [new symlink]
locales/pl_PL.ISO8859-2.msg [new file with mode: 0644]
locales/pl_PL.UTF-8.msg [new file with mode: 0644]
locales/pl_PL.utf8.msg [new symlink]
locales/pt_BR.ISO8859-1.msg [new symlink]
locales/pt_BR.ISO8859-15.msg [new symlink]
locales/pt_BR.UTF-8.msg [new symlink]
locales/pt_BR.utf8.msg [new symlink]
locales/pt_PT.ISO8859-1.msg [new file with mode: 0644]
locales/pt_PT.ISO8859-15.msg [new symlink]
locales/pt_PT.UTF-8.msg [new file with mode: 0644]
locales/pt_PT.utf8.msg [new symlink]
locales/ru_RU.CP1251.msg [new file with mode: 0644]
locales/ru_RU.CP866.msg [new file with mode: 0644]
locales/ru_RU.ISO8859-5.msg [new file with mode: 0644]
locales/ru_RU.KOI8-R.msg [new file with mode: 0644]
locales/ru_RU.UTF-8.msg [new file with mode: 0644]
locales/ru_RU.utf8.msg [new symlink]
locales/zh_CN.GB18030.msg [new file with mode: 0644]
locales/zh_CN.GB2312.msg [new file with mode: 0644]
locales/zh_CN.GBK.msg [new file with mode: 0644]
locales/zh_CN.UTF-8.msg [new file with mode: 0644]
locales/zh_CN.eucCN.msg [new file with mode: 0644]
locales/zh_CN.utf8.msg [new symlink]
manpage.sh [new file with mode: 0755]
manuals/algorithms.md [new file with mode: 0644]
manuals/bc.1 [new file with mode: 0644]
manuals/bc.1.ronn [new file with mode: 0644]
manuals/bc.md [new symlink]
manuals/benchmarks.md [new file with mode: 0644]
manuals/build.md [new file with mode: 0644]
manuals/dc.1 [new file with mode: 0644]
manuals/dc.1.ronn [new file with mode: 0644]
manuals/dc.md [new symlink]
release.sh [new file with mode: 0755]
safe-install.sh [new file with mode: 0755]
src/args.c [new file with mode: 0644]
src/bc/bc.c [new file with mode: 0644]
src/bc/lex.c [new file with mode: 0644]
src/bc/parse.c [new file with mode: 0644]
src/data.c [new file with mode: 0644]
src/dc/dc.c [new file with mode: 0644]
src/dc/lex.c [new file with mode: 0644]
src/dc/parse.c [new file with mode: 0644]
src/file.c [new file with mode: 0644]
src/history/history.c [new file with mode: 0644]
src/lang.c [new file with mode: 0644]
src/lex.c [new file with mode: 0644]
src/main.c [new file with mode: 0644]
src/num.c [new file with mode: 0644]
src/opt.c [new file with mode: 0644]
src/parse.c [new file with mode: 0644]
src/program.c [new file with mode: 0644]
src/rand/rand.c [new file with mode: 0644]
src/read.c [new file with mode: 0644]
src/vector.c [new file with mode: 0644]
src/vm.c [new file with mode: 0644]
tests/afl.py [new file with mode: 0755]
tests/all.sh [new file with mode: 0755]
tests/all.txt [new file with mode: 0644]
tests/bc/abs.txt [new file with mode: 0644]
tests/bc/abs_results.txt [new file with mode: 0644]
tests/bc/add.txt [new file with mode: 0644]
tests/bc/add_results.txt [new file with mode: 0644]
tests/bc/all.txt [new file with mode: 0644]
tests/bc/arctangent.txt [new file with mode: 0644]
tests/bc/arctangent_results.txt [new file with mode: 0644]
tests/bc/arrays.txt [new file with mode: 0644]
tests/bc/arrays_results.txt [new file with mode: 0644]
tests/bc/assignments.txt [new file with mode: 0644]
tests/bc/assignments_results.txt [new file with mode: 0644]
tests/bc/boolean.txt [new file with mode: 0644]
tests/bc/boolean_results.txt [new file with mode: 0644]
tests/bc/comp.txt [new file with mode: 0644]
tests/bc/comp_results.txt [new file with mode: 0644]
tests/bc/cosine.txt [new file with mode: 0644]
tests/bc/cosine_results.txt [new file with mode: 0644]
tests/bc/decimal.txt [new file with mode: 0644]
tests/bc/decimal_results.txt [new file with mode: 0644]
tests/bc/divide.txt [new file with mode: 0644]
tests/bc/divide_results.txt [new file with mode: 0644]
tests/bc/engineering.txt [new file with mode: 0644]
tests/bc/engineering_results.txt [new file with mode: 0644]
tests/bc/errors.txt [new file with mode: 0644]
tests/bc/errors/01.txt [new file with mode: 0644]
tests/bc/errors/02.txt [new file with mode: 0644]
tests/bc/errors/03.txt [new file with mode: 0644]
tests/bc/errors/04.txt [new file with mode: 0644]
tests/bc/errors/05.txt [new file with mode: 0644]
tests/bc/errors/06.txt [new file with mode: 0644]
tests/bc/errors/07.txt [new file with mode: 0644]
tests/bc/errors/08.txt [new file with mode: 0644]
tests/bc/errors/09.txt [new file with mode: 0644]
tests/bc/errors/10.txt [new file with mode: 0644]
tests/bc/errors/11.txt [new file with mode: 0644]
tests/bc/errors/12.txt [new file with mode: 0644]
tests/bc/errors/13.txt [new file with mode: 0644]
tests/bc/errors/14.txt [new file with mode: 0644]
tests/bc/errors/15.txt [new file with mode: 0644]
tests/bc/errors/16.txt [new file with mode: 0644]
tests/bc/errors/17.txt [new file with mode: 0644]
tests/bc/errors/18.txt [new file with mode: 0644]
tests/bc/errors/19.txt [new file with mode: 0644]
tests/bc/errors/20.txt [new file with mode: 0644]
tests/bc/errors/21.txt [new file with mode: 0644]
tests/bc/errors/22.txt [new file with mode: 0644]
tests/bc/exponent.txt [new file with mode: 0644]
tests/bc/exponent_results.txt [new file with mode: 0644]
tests/bc/functions.txt [new file with mode: 0644]
tests/bc/functions_results.txt [new file with mode: 0644]
tests/bc/globals.txt [new file with mode: 0644]
tests/bc/globals_results.txt [new file with mode: 0644]
tests/bc/length.txt [new file with mode: 0644]
tests/bc/length_results.txt [new file with mode: 0644]
tests/bc/letters.txt [new file with mode: 0644]
tests/bc/letters_results.txt [new file with mode: 0644]
tests/bc/lib2.txt [new file with mode: 0644]
tests/bc/lib2_results.txt [new file with mode: 0644]
tests/bc/log.txt [new file with mode: 0644]
tests/bc/log_results.txt [new file with mode: 0644]
tests/bc/misc.txt [new file with mode: 0644]
tests/bc/misc1.txt [new file with mode: 0644]
tests/bc/misc1_results.txt [new file with mode: 0644]
tests/bc/misc2.txt [new file with mode: 0644]
tests/bc/misc2_results.txt [new file with mode: 0644]
tests/bc/misc3.txt [new file with mode: 0644]
tests/bc/misc3_results.txt [new file with mode: 0644]
tests/bc/misc4.txt [new file with mode: 0644]
tests/bc/misc4_results.txt [new file with mode: 0644]
tests/bc/misc5.txt [new file with mode: 0644]
tests/bc/misc5_results.txt [new file with mode: 0644]
tests/bc/misc_results.txt [new file with mode: 0644]
tests/bc/modulus.txt [new file with mode: 0644]
tests/bc/modulus_results.txt [new file with mode: 0644]
tests/bc/multiply.txt [new file with mode: 0644]
tests/bc/multiply_results.txt [new file with mode: 0644]
tests/bc/pi.txt [new file with mode: 0644]
tests/bc/pi_results.txt [new file with mode: 0644]
tests/bc/places.txt [new file with mode: 0644]
tests/bc/places_results.txt [new file with mode: 0644]
tests/bc/posix_errors.txt [new file with mode: 0644]
tests/bc/power.txt [new file with mode: 0644]
tests/bc/power_results.txt [new file with mode: 0644]
tests/bc/print2.txt [new file with mode: 0644]
tests/bc/print2_results.txt [new file with mode: 0644]
tests/bc/rand.txt [new file with mode: 0644]
tests/bc/rand_results.txt [new file with mode: 0644]
tests/bc/read.txt [new file with mode: 0644]
tests/bc/read_errors.txt [new file with mode: 0644]
tests/bc/read_results.txt [new file with mode: 0644]
tests/bc/scale.txt [new file with mode: 0644]
tests/bc/scale_results.txt [new file with mode: 0644]
tests/bc/scientific.txt [new file with mode: 0644]
tests/bc/scientific_results.txt [new file with mode: 0644]
tests/bc/scripts/add.bc [new file with mode: 0644]
tests/bc/scripts/array.bc [new file with mode: 0755]
tests/bc/scripts/array.txt [new file with mode: 0644]
tests/bc/scripts/atan.bc [new file with mode: 0755]
tests/bc/scripts/atan.txt [new file with mode: 0644]
tests/bc/scripts/bessel.bc [new file with mode: 0755]
tests/bc/scripts/divide.bc [new file with mode: 0644]
tests/bc/scripts/functions.bc [new file with mode: 0644]
tests/bc/scripts/functions.txt [new file with mode: 0644]
tests/bc/scripts/globals.bc [new file with mode: 0755]
tests/bc/scripts/globals.txt [new file with mode: 0644]
tests/bc/scripts/len.bc [new file with mode: 0644]
tests/bc/scripts/len.txt [new file with mode: 0644]
tests/bc/scripts/multiply.bc [new file with mode: 0644]
tests/bc/scripts/parse.bc [new file with mode: 0755]
tests/bc/scripts/print.bc [new file with mode: 0755]
tests/bc/scripts/rand.bc [new file with mode: 0644]
tests/bc/scripts/rand.txt [new file with mode: 0644]
tests/bc/scripts/references.bc [new file with mode: 0755]
tests/bc/scripts/references.txt [new file with mode: 0644]
tests/bc/scripts/screen.bc [new file with mode: 0755]
tests/bc/scripts/screen.txt [new file with mode: 0644]
tests/bc/scripts/subtract.bc [new file with mode: 0644]
tests/bc/shift.txt [new file with mode: 0644]
tests/bc/shift_results.txt [new file with mode: 0644]
tests/bc/sine.txt [new file with mode: 0644]
tests/bc/sine_results.txt [new file with mode: 0644]
tests/bc/sqrt.txt [new file with mode: 0644]
tests/bc/sqrt_results.txt [new file with mode: 0644]
tests/bc/stdin.txt [new file with mode: 0644]
tests/bc/stdin_results.txt [new file with mode: 0644]
tests/bc/strings.txt [new file with mode: 0644]
tests/bc/strings_results.txt [new file with mode: 0644]
tests/bc/subtract.txt [new file with mode: 0644]
tests/bc/subtract_results.txt [new file with mode: 0644]
tests/bc/timeconst.sh [new file with mode: 0755]
tests/bc/trunc.txt [new file with mode: 0644]
tests/bc/trunc_results.txt [new file with mode: 0644]
tests/bc/vars.txt [new file with mode: 0644]
tests/bc/vars_results.txt [new file with mode: 0644]
tests/bc/void.txt [new file with mode: 0644]
tests/bc/void_results.txt [new file with mode: 0644]
tests/dc/abs.txt [new file with mode: 0644]
tests/dc/abs_results.txt [new file with mode: 0644]
tests/dc/add.txt [new file with mode: 0644]
tests/dc/add_results.txt [new file with mode: 0644]
tests/dc/all.txt [new file with mode: 0644]
tests/dc/boolean.txt [new file with mode: 0644]
tests/dc/boolean_results.txt [new file with mode: 0644]
tests/dc/decimal.txt [new file with mode: 0644]
tests/dc/decimal_results.txt [new file with mode: 0644]
tests/dc/divide.txt [new file with mode: 0644]
tests/dc/divide_results.txt [new file with mode: 0644]
tests/dc/divmod.txt [new file with mode: 0644]
tests/dc/divmod_results.txt [new file with mode: 0644]
tests/dc/engineering.txt [new file with mode: 0644]
tests/dc/engineering_results.txt [new file with mode: 0644]
tests/dc/errors.txt [new file with mode: 0644]
tests/dc/errors/01.txt [new file with mode: 0644]
tests/dc/errors/02.txt [new file with mode: 0644]
tests/dc/errors/03.txt [new file with mode: 0644]
tests/dc/errors/04.txt [new file with mode: 0644]
tests/dc/errors/05.txt [new file with mode: 0644]
tests/dc/errors/06.txt [new file with mode: 0644]
tests/dc/errors/07.txt [new file with mode: 0644]
tests/dc/errors/08.txt [new file with mode: 0644]
tests/dc/errors/09.txt [new file with mode: 0644]
tests/dc/errors/10.txt [new file with mode: 0644]
tests/dc/errors/11.txt [new file with mode: 0644]
tests/dc/errors/12.txt [new file with mode: 0644]
tests/dc/errors/13.txt [new file with mode: 0644]
tests/dc/errors/14.txt [new file with mode: 0644]
tests/dc/errors/15.txt [new file with mode: 0644]
tests/dc/errors/16.txt [new file with mode: 0644]
tests/dc/errors/17.txt [new file with mode: 0644]
tests/dc/errors/18.txt [new file with mode: 0644]
tests/dc/errors/19.txt [new file with mode: 0644]
tests/dc/errors/20.txt [new file with mode: 0644]
tests/dc/errors/21.txt [new file with mode: 0644]
tests/dc/errors/22.txt [new file with mode: 0644]
tests/dc/errors/23.txt [new file with mode: 0644]
tests/dc/errors/24.txt [new file with mode: 0644]
tests/dc/misc.txt [new file with mode: 0644]
tests/dc/misc_results.txt [new file with mode: 0644]
tests/dc/modexp.txt [new file with mode: 0644]
tests/dc/modexp_results.txt [new file with mode: 0644]
tests/dc/modulus.txt [new file with mode: 0644]
tests/dc/modulus_results.txt [new file with mode: 0644]
tests/dc/multiply.txt [new file with mode: 0644]
tests/dc/multiply_results.txt [new file with mode: 0644]
tests/dc/negate.txt [new file with mode: 0644]
tests/dc/negate_results.txt [new file with mode: 0644]
tests/dc/places.txt [new file with mode: 0644]
tests/dc/places_results.txt [new file with mode: 0644]
tests/dc/power.txt [new file with mode: 0644]
tests/dc/power_results.txt [new file with mode: 0644]
tests/dc/rand.txt [new file with mode: 0644]
tests/dc/rand_results.txt [new file with mode: 0644]
tests/dc/read.txt [new file with mode: 0644]
tests/dc/read_errors.txt [new file with mode: 0644]
tests/dc/read_results.txt [new file with mode: 0644]
tests/dc/scientific.txt [new file with mode: 0644]
tests/dc/scientific_results.txt [new file with mode: 0644]
tests/dc/scripts/array.dc [new file with mode: 0755]
tests/dc/scripts/array.txt [new file with mode: 0644]
tests/dc/scripts/asciify.dc [new file with mode: 0755]
tests/dc/scripts/asciify.txt [new file with mode: 0644]
tests/dc/scripts/else.dc [new file with mode: 0755]
tests/dc/scripts/else.txt [new file with mode: 0644]
tests/dc/scripts/factorial.dc [new file with mode: 0755]
tests/dc/scripts/factorial.txt [new file with mode: 0644]
tests/dc/scripts/loop.dc [new file with mode: 0755]
tests/dc/scripts/loop.txt [new file with mode: 0644]
tests/dc/scripts/prime.dc [new file with mode: 0755]
tests/dc/scripts/quit.dc [new file with mode: 0755]
tests/dc/scripts/quit.txt [new file with mode: 0644]
tests/dc/scripts/stream.dc [new file with mode: 0755]
tests/dc/scripts/weird.dc [new file with mode: 0755]
tests/dc/scripts/weird.txt [new file with mode: 0644]
tests/dc/shift.txt [new file with mode: 0644]
tests/dc/shift_results.txt [new file with mode: 0644]
tests/dc/sqrt.txt [new file with mode: 0644]
tests/dc/sqrt_results.txt [new file with mode: 0644]
tests/dc/stdin.txt [new file with mode: 0644]
tests/dc/stdin_results.txt [new file with mode: 0644]
tests/dc/strings.txt [new file with mode: 0644]
tests/dc/strings_results.txt [new file with mode: 0644]
tests/dc/subtract.txt [new file with mode: 0644]
tests/dc/subtract_results.txt [new file with mode: 0644]
tests/dc/trunc.txt [new file with mode: 0644]
tests/dc/trunc_results.txt [new file with mode: 0644]
tests/dc/vars.txt [new file with mode: 0644]
tests/dc/vars_results.txt [new file with mode: 0644]
tests/errors.sh [new file with mode: 0755]
tests/radamsa.sh [new file with mode: 0755]
tests/radamsa.txt [new file with mode: 0644]
tests/randmath.py [new file with mode: 0755]
tests/read.sh [new file with mode: 0755]
tests/script.sh [new file with mode: 0755]
tests/scripts.sh [new file with mode: 0755]
tests/stdin.sh [new file with mode: 0755]
tests/test.sh [new file with mode: 0755]