git: fdc4a7c8012b - main - contrib/bc upgrade to version 7.1.0
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Thu, 11 Sep 2025 14:26:27 UTC
The branch main has been updated by se: URL: https://cgit.FreeBSD.org/src/commit/?id=fdc4a7c8012b214986cfa2e2fb6d99731f004b1b commit fdc4a7c8012b214986cfa2e2fb6d99731f004b1b Merge: 1d6b6ea2d0e6 682da5a0fdb2 Author: Stefan Eßer <se@FreeBSD.org> AuthorDate: 2025-09-11 14:16:39 +0000 Commit: Stefan Eßer <se@FreeBSD.org> CommitDate: 2025-09-11 14:16:39 +0000 contrib/bc upgrade to version 7.1.0 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. Merge commit '682da5a0fdb2c38ecc3951047a882471d62aa1d1' contrib/bc/LICENSE.md | 4 +- contrib/bc/MAINTENANCE-TERMS.md | 80 + contrib/bc/Makefile.in | 285 +- contrib/bc/NEWS.md | 23 + contrib/bc/NOTICE.md | 2 +- contrib/bc/README.md | 21 +- contrib/bc/VERSION.txt | 1 + contrib/bc/build.gaml | 402 + contrib/bc/build.pkg.rig | 2345 ++++++ contrib/bc/build.rig | 575 ++ contrib/bc/compile_flags.txt | 3 + contrib/bc/configure.sh | 477 +- contrib/bc/gen/bc_help.txt | 4 +- contrib/bc/gen/dc_help.txt | 4 +- contrib/bc/gen/lib.bc | 2 +- contrib/bc/gen/lib2.bc | 115 +- contrib/bc/gen/strgen.c | 4 +- contrib/bc/gen/strgen.sh | 4 +- contrib/bc/include/args.h | 2 +- contrib/bc/include/bc.h | 8 +- contrib/bc/include/bcl.h | 2 +- contrib/bc/include/dc.h | 2 +- contrib/bc/include/file.h | 2 +- contrib/bc/include/history.h | 26 +- contrib/bc/include/lang.h | 6 +- contrib/bc/include/lex.h | 2 +- contrib/bc/include/library.h | 2 +- contrib/bc/include/num.h | 2 +- contrib/bc/include/opt.h | 2 +- contrib/bc/include/ossfuzz.h | 2 +- contrib/bc/include/parse.h | 2 +- contrib/bc/include/program.h | 16 +- contrib/bc/include/rand.h | 2 +- contrib/bc/include/read.h | 2 +- contrib/bc/include/status.h | 7 +- contrib/bc/include/vector.h | 2 +- contrib/bc/include/version.h | 42 - contrib/bc/include/vm.h | 3 +- contrib/bc/locales/de_DE.ISO8859-1.msg | 2 +- contrib/bc/locales/de_DE.UTF-8.msg | 2 +- contrib/bc/locales/en_US.msg | 2 +- contrib/bc/locales/es_ES.ISO8859-1.msg | 2 +- contrib/bc/locales/es_ES.UTF-8.msg | 2 +- contrib/bc/locales/fr_FR.ISO8859-1.msg | 2 +- contrib/bc/locales/fr_FR.UTF-8.msg | 2 +- contrib/bc/locales/ja_JP.UTF-8.msg | 2 +- contrib/bc/locales/ja_JP.eucJP.msg | 2 +- contrib/bc/locales/nl_NL.ISO8859-1.msg | 2 +- contrib/bc/locales/nl_NL.UTF-8.msg | 2 +- contrib/bc/locales/pl_PL.ISO8859-2.msg | 2 +- contrib/bc/locales/pl_PL.UTF-8.msg | 2 +- contrib/bc/locales/pt_PT.ISO8859-1.msg | 2 +- contrib/bc/locales/pt_PT.UTF-8.msg | 2 +- contrib/bc/locales/ru_RU.CP1251.msg | 2 +- contrib/bc/locales/ru_RU.CP866.msg | 2 +- contrib/bc/locales/ru_RU.ISO8859-5.msg | 2 +- contrib/bc/locales/ru_RU.KOI8-R.msg | 2 +- contrib/bc/locales/ru_RU.UTF-8.msg | 2 +- contrib/bc/locales/zh_CN.GB18030.msg | 2 +- contrib/bc/locales/zh_CN.GB2312.msg | 2 +- contrib/bc/locales/zh_CN.GBK.msg | 2 +- contrib/bc/locales/zh_CN.UTF-8.msg | 2 +- contrib/bc/locales/zh_CN.eucCN.msg | 2 +- contrib/bc/manuals/bc/A.1 | 15 +- contrib/bc/manuals/bc/A.1.md | 14 +- contrib/bc/manuals/bc/E.1 | 4 +- contrib/bc/manuals/bc/E.1.md | 4 +- contrib/bc/manuals/bc/EH.1 | 4 +- contrib/bc/manuals/bc/EH.1.md | 4 +- contrib/bc/manuals/bc/EHN.1 | 4 +- contrib/bc/manuals/bc/EHN.1.md | 4 +- contrib/bc/manuals/bc/EN.1 | 4 +- contrib/bc/manuals/bc/EN.1.md | 4 +- contrib/bc/manuals/bc/H.1 | 15 +- contrib/bc/manuals/bc/H.1.md | 14 +- contrib/bc/manuals/bc/HN.1 | 15 +- contrib/bc/manuals/bc/HN.1.md | 14 +- contrib/bc/manuals/bc/N.1 | 15 +- contrib/bc/manuals/bc/N.1.md | 14 +- contrib/bc/manuals/bcl.3 | 4 +- contrib/bc/manuals/bcl.3.md | 4 +- contrib/bc/manuals/build.md | 6 +- contrib/bc/manuals/dc/A.1 | 4 +- contrib/bc/manuals/dc/A.1.md | 4 +- contrib/bc/manuals/dc/E.1 | 4 +- contrib/bc/manuals/dc/E.1.md | 4 +- contrib/bc/manuals/dc/EH.1 | 4 +- contrib/bc/manuals/dc/EH.1.md | 4 +- contrib/bc/manuals/dc/EHN.1 | 4 +- contrib/bc/manuals/dc/EHN.1.md | 4 +- contrib/bc/manuals/dc/EN.1 | 4 +- contrib/bc/manuals/dc/EN.1.md | 4 +- contrib/bc/manuals/dc/H.1 | 4 +- contrib/bc/manuals/dc/H.1.md | 4 +- contrib/bc/manuals/dc/HN.1 | 4 +- contrib/bc/manuals/dc/HN.1.md | 4 +- contrib/bc/manuals/dc/N.1 | 4 +- contrib/bc/manuals/dc/N.1.md | 4 +- contrib/bc/project/README.md | 32 + contrib/bc/project/gitea.db | Bin 0 -> 86016 bytes contrib/bc/project/github_issues.json | 3667 ++++++++++ contrib/bc/project/github_prs.json | 7729 ++++++++++++++++++++ contrib/bc/project/issue10.md | 104 + contrib/bc/scripts/exec-install.sh | 2 +- contrib/bc/scripts/format.sh | 2 +- contrib/bc/scripts/functions.sh | 2 +- contrib/bc/scripts/karatsuba.py | 2 +- contrib/bc/scripts/link.sh | 2 +- contrib/bc/scripts/lint.sh | 2 +- contrib/bc/scripts/locale_install.sh | 2 +- contrib/bc/scripts/locale_uninstall.sh | 2 +- contrib/bc/scripts/os.c | 2 +- contrib/bc/scripts/release.pkg.yao | 1410 ++++ contrib/bc/scripts/sqrt_frac_guess.bc | 2 +- contrib/bc/scripts/sqrt_int_guess.bc | 2 +- contrib/bc/scripts/sqrt_random.bc | 2 +- contrib/bc/scripts/sqrt_random.sh | 2 +- contrib/bc/src/args.c | 2 +- contrib/bc/src/bc.c | 2 +- contrib/bc/src/bc_fuzzer.c | 3 +- contrib/bc/src/bc_lex.c | 2 +- contrib/bc/src/bc_parse.c | 2 +- contrib/bc/src/data.c | 142 +- contrib/bc/src/dc.c | 2 +- contrib/bc/src/dc_fuzzer.c | 3 +- contrib/bc/src/dc_lex.c | 2 +- contrib/bc/src/dc_parse.c | 2 +- contrib/bc/src/file.c | 5 +- contrib/bc/src/history.c | 16 +- contrib/bc/src/lang.c | 7 +- contrib/bc/src/lex.c | 2 +- contrib/bc/src/library.c | 2 +- contrib/bc/src/main.c | 3 +- contrib/bc/src/num.c | 3 +- contrib/bc/src/opt.c | 2 +- contrib/bc/src/parse.c | 2 +- contrib/bc/src/program.c | 67 +- contrib/bc/src/rand.c | 2 +- contrib/bc/src/read.c | 23 +- contrib/bc/src/vector.c | 2 +- contrib/bc/src/vm.c | 35 +- contrib/bc/tests/all.sh | 42 +- contrib/bc/tests/bc/all.txt | 131 +- contrib/bc/tests/bc/errors/39.txt | 1 + contrib/bc/tests/bc/lib2.txt | 477 -- contrib/bc/tests/bc/lib2_a2.txt | 18 + contrib/bc/tests/bc/lib2_a2_results.txt | 18 + contrib/bc/tests/bc/lib2_bytes.txt | 46 + contrib/bc/tests/bc/lib2_bytes_results.txt | 46 + contrib/bc/tests/bc/lib2_ceil.txt | 24 + contrib/bc/tests/bc/lib2_ceil_results.txt | 24 + contrib/bc/tests/bc/lib2_d2r.txt | 16 + contrib/bc/tests/bc/lib2_d2r_results.txt | 16 + contrib/bc/tests/bc/lib2_fac.txt | 6 + contrib/bc/tests/bc/lib2_fac_results.txt | 6 + contrib/bc/tests/bc/lib2_gcd.txt | 7 + contrib/bc/tests/bc/lib2_gcd_results.txt | 7 + contrib/bc/tests/bc/lib2_log.txt | 32 + contrib/bc/tests/bc/lib2_log_results.txt | 32 + contrib/bc/tests/bc/lib2_p.txt | 4 + contrib/bc/tests/bc/lib2_p_results.txt | 5 + contrib/bc/tests/bc/lib2_perm.txt | 9 + contrib/bc/tests/bc/lib2_perm_results.txt | 8 + contrib/bc/tests/bc/lib2_pi.txt | 5 + contrib/bc/tests/bc/lib2_pi_results.txt | 6 + contrib/bc/tests/bc/lib2_r.txt | 23 + contrib/bc/tests/bc/lib2_r2d.txt | 17 + contrib/bc/tests/bc/lib2_r2d_results.txt | 16 + contrib/bc/tests/bc/lib2_r_results.txt | 23 + contrib/bc/tests/bc/lib2_rand.txt | 11 + contrib/bc/tests/bc/lib2_rand_results.txt | 7 + contrib/bc/tests/bc/lib2_root.txt | 13 + contrib/bc/tests/bc/lib2_root_results.txt | 13 + contrib/bc/tests/bc/lib2_tan.txt | 30 + contrib/bc/tests/bc/lib2_tan_results.txt | 29 + contrib/bc/tests/bc/lib2_uint.txt | 218 + .../bc/{lib2_results.txt => lib2_uint_results.txt} | 256 - .../bc/tests/bc/scripts/{add.bc => add_00100.bc} | 2 +- contrib/bc/tests/bc/scripts/add_00200.bc | 17 + contrib/bc/tests/bc/scripts/add_00300.bc | 17 + contrib/bc/tests/bc/scripts/add_00400.bc | 17 + contrib/bc/tests/bc/scripts/add_00500.bc | 17 + contrib/bc/tests/bc/scripts/add_00600.bc | 17 + contrib/bc/tests/bc/scripts/add_00700.bc | 17 + contrib/bc/tests/bc/scripts/add_00800.bc | 17 + contrib/bc/tests/bc/scripts/add_00900.bc | 17 + contrib/bc/tests/bc/scripts/add_01000.bc | 17 + contrib/bc/tests/bc/scripts/add_01100.bc | 17 + contrib/bc/tests/bc/scripts/add_01200.bc | 17 + contrib/bc/tests/bc/scripts/add_01300.bc | 17 + contrib/bc/tests/bc/scripts/add_01400.bc | 17 + contrib/bc/tests/bc/scripts/add_01500.bc | 17 + contrib/bc/tests/bc/scripts/add_01600.bc | 17 + contrib/bc/tests/bc/scripts/add_01700.bc | 17 + contrib/bc/tests/bc/scripts/add_01800.bc | 17 + contrib/bc/tests/bc/scripts/add_01900.bc | 17 + contrib/bc/tests/bc/scripts/add_02000.bc | 17 + contrib/bc/tests/bc/scripts/add_02100.bc | 17 + contrib/bc/tests/bc/scripts/add_02200.bc | 17 + contrib/bc/tests/bc/scripts/add_02300.bc | 17 + contrib/bc/tests/bc/scripts/add_02400.bc | 17 + contrib/bc/tests/bc/scripts/add_02500.bc | 17 + contrib/bc/tests/bc/scripts/add_02600.bc | 17 + contrib/bc/tests/bc/scripts/add_02700.bc | 17 + contrib/bc/tests/bc/scripts/add_02800.bc | 17 + contrib/bc/tests/bc/scripts/add_02900.bc | 17 + contrib/bc/tests/bc/scripts/add_03000.bc | 17 + contrib/bc/tests/bc/scripts/add_03100.bc | 17 + contrib/bc/tests/bc/scripts/add_03200.bc | 17 + contrib/bc/tests/bc/scripts/add_03300.bc | 17 + contrib/bc/tests/bc/scripts/add_03400.bc | 17 + contrib/bc/tests/bc/scripts/add_03500.bc | 17 + contrib/bc/tests/bc/scripts/add_03600.bc | 17 + contrib/bc/tests/bc/scripts/add_03700.bc | 17 + contrib/bc/tests/bc/scripts/add_03800.bc | 17 + contrib/bc/tests/bc/scripts/add_03900.bc | 17 + contrib/bc/tests/bc/scripts/add_04000.bc | 17 + contrib/bc/tests/bc/scripts/add_04100.bc | 17 + contrib/bc/tests/bc/scripts/add_04200.bc | 17 + contrib/bc/tests/bc/scripts/add_04300.bc | 17 + contrib/bc/tests/bc/scripts/add_04400.bc | 17 + contrib/bc/tests/bc/scripts/add_04500.bc | 17 + contrib/bc/tests/bc/scripts/add_04600.bc | 17 + contrib/bc/tests/bc/scripts/add_04700.bc | 17 + contrib/bc/tests/bc/scripts/add_04800.bc | 17 + contrib/bc/tests/bc/scripts/add_04900.bc | 17 + contrib/bc/tests/bc/scripts/add_05000.bc | 17 + contrib/bc/tests/bc/scripts/add_05100.bc | 17 + contrib/bc/tests/bc/scripts/add_05200.bc | 17 + contrib/bc/tests/bc/scripts/add_05300.bc | 17 + contrib/bc/tests/bc/scripts/add_05400.bc | 17 + contrib/bc/tests/bc/scripts/add_05500.bc | 17 + contrib/bc/tests/bc/scripts/add_05600.bc | 17 + contrib/bc/tests/bc/scripts/add_05700.bc | 17 + contrib/bc/tests/bc/scripts/add_05800.bc | 17 + contrib/bc/tests/bc/scripts/add_05900.bc | 17 + contrib/bc/tests/bc/scripts/add_06000.bc | 17 + contrib/bc/tests/bc/scripts/add_06100.bc | 17 + contrib/bc/tests/bc/scripts/add_06200.bc | 17 + contrib/bc/tests/bc/scripts/add_06300.bc | 17 + contrib/bc/tests/bc/scripts/add_06400.bc | 17 + contrib/bc/tests/bc/scripts/add_06500.bc | 17 + contrib/bc/tests/bc/scripts/add_06600.bc | 17 + contrib/bc/tests/bc/scripts/add_06700.bc | 17 + contrib/bc/tests/bc/scripts/add_06800.bc | 17 + contrib/bc/tests/bc/scripts/add_06900.bc | 17 + contrib/bc/tests/bc/scripts/add_07000.bc | 17 + contrib/bc/tests/bc/scripts/add_07100.bc | 17 + contrib/bc/tests/bc/scripts/add_07200.bc | 17 + contrib/bc/tests/bc/scripts/add_07300.bc | 17 + contrib/bc/tests/bc/scripts/add_07400.bc | 17 + contrib/bc/tests/bc/scripts/add_07500.bc | 17 + contrib/bc/tests/bc/scripts/add_07600.bc | 17 + contrib/bc/tests/bc/scripts/add_07700.bc | 17 + contrib/bc/tests/bc/scripts/add_07800.bc | 17 + contrib/bc/tests/bc/scripts/add_07900.bc | 17 + contrib/bc/tests/bc/scripts/add_08000.bc | 17 + contrib/bc/tests/bc/scripts/add_08100.bc | 17 + contrib/bc/tests/bc/scripts/add_08200.bc | 17 + contrib/bc/tests/bc/scripts/add_08300.bc | 17 + contrib/bc/tests/bc/scripts/add_08400.bc | 17 + contrib/bc/tests/bc/scripts/add_08500.bc | 17 + contrib/bc/tests/bc/scripts/add_08600.bc | 17 + contrib/bc/tests/bc/scripts/add_08700.bc | 17 + contrib/bc/tests/bc/scripts/add_08800.bc | 17 + contrib/bc/tests/bc/scripts/add_08900.bc | 17 + contrib/bc/tests/bc/scripts/add_09000.bc | 17 + contrib/bc/tests/bc/scripts/add_09100.bc | 17 + contrib/bc/tests/bc/scripts/add_09200.bc | 17 + contrib/bc/tests/bc/scripts/add_09300.bc | 17 + contrib/bc/tests/bc/scripts/add_09400.bc | 17 + contrib/bc/tests/bc/scripts/add_09500.bc | 17 + contrib/bc/tests/bc/scripts/add_09600.bc | 17 + contrib/bc/tests/bc/scripts/add_09700.bc | 17 + contrib/bc/tests/bc/scripts/add_09800.bc | 17 + contrib/bc/tests/bc/scripts/add_09900.bc | 17 + contrib/bc/tests/bc/scripts/add_10000.bc | 17 + contrib/bc/tests/bc/scripts/all.txt | 406 +- .../bc/scripts/{divide.bc => divide_00100.bc} | 2 +- contrib/bc/tests/bc/scripts/divide_00200.bc | 23 + contrib/bc/tests/bc/scripts/divide_00300.bc | 23 + contrib/bc/tests/bc/scripts/divide_00400.bc | 23 + contrib/bc/tests/bc/scripts/divide_00500.bc | 23 + contrib/bc/tests/bc/scripts/divide_00600.bc | 23 + contrib/bc/tests/bc/scripts/divide_00700.bc | 23 + contrib/bc/tests/bc/scripts/divide_00800.bc | 23 + contrib/bc/tests/bc/scripts/divide_00900.bc | 23 + contrib/bc/tests/bc/scripts/divide_01000.bc | 23 + contrib/bc/tests/bc/scripts/divide_01100.bc | 23 + contrib/bc/tests/bc/scripts/divide_01200.bc | 23 + contrib/bc/tests/bc/scripts/divide_01300.bc | 23 + contrib/bc/tests/bc/scripts/divide_01400.bc | 23 + contrib/bc/tests/bc/scripts/divide_01500.bc | 23 + contrib/bc/tests/bc/scripts/divide_01600.bc | 23 + contrib/bc/tests/bc/scripts/divide_01700.bc | 23 + contrib/bc/tests/bc/scripts/divide_01800.bc | 23 + contrib/bc/tests/bc/scripts/divide_01900.bc | 23 + contrib/bc/tests/bc/scripts/divide_02000.bc | 23 + contrib/bc/tests/bc/scripts/divide_02100.bc | 23 + contrib/bc/tests/bc/scripts/divide_02200.bc | 23 + contrib/bc/tests/bc/scripts/divide_02300.bc | 23 + contrib/bc/tests/bc/scripts/divide_02400.bc | 23 + contrib/bc/tests/bc/scripts/divide_02500.bc | 23 + contrib/bc/tests/bc/scripts/divide_02600.bc | 23 + contrib/bc/tests/bc/scripts/divide_02700.bc | 23 + contrib/bc/tests/bc/scripts/divide_02800.bc | 23 + contrib/bc/tests/bc/scripts/divide_02900.bc | 23 + contrib/bc/tests/bc/scripts/divide_03000.bc | 23 + contrib/bc/tests/bc/scripts/divide_03100.bc | 23 + contrib/bc/tests/bc/scripts/divide_03200.bc | 23 + contrib/bc/tests/bc/scripts/divide_03300.bc | 23 + contrib/bc/tests/bc/scripts/divide_03400.bc | 23 + contrib/bc/tests/bc/scripts/divide_03500.bc | 23 + contrib/bc/tests/bc/scripts/divide_03600.bc | 23 + contrib/bc/tests/bc/scripts/divide_03700.bc | 23 + contrib/bc/tests/bc/scripts/divide_03800.bc | 23 + contrib/bc/tests/bc/scripts/divide_03900.bc | 23 + contrib/bc/tests/bc/scripts/divide_04000.bc | 23 + contrib/bc/tests/bc/scripts/divide_04100.bc | 23 + contrib/bc/tests/bc/scripts/divide_04200.bc | 23 + contrib/bc/tests/bc/scripts/divide_04300.bc | 23 + contrib/bc/tests/bc/scripts/divide_04400.bc | 23 + contrib/bc/tests/bc/scripts/divide_04500.bc | 23 + contrib/bc/tests/bc/scripts/divide_04600.bc | 23 + contrib/bc/tests/bc/scripts/divide_04700.bc | 23 + contrib/bc/tests/bc/scripts/divide_04800.bc | 23 + contrib/bc/tests/bc/scripts/divide_04900.bc | 23 + contrib/bc/tests/bc/scripts/divide_05000.bc | 23 + contrib/bc/tests/bc/scripts/divide_05100.bc | 23 + contrib/bc/tests/bc/scripts/divide_05200.bc | 23 + contrib/bc/tests/bc/scripts/divide_05300.bc | 23 + contrib/bc/tests/bc/scripts/divide_05400.bc | 23 + contrib/bc/tests/bc/scripts/divide_05500.bc | 23 + contrib/bc/tests/bc/scripts/divide_05600.bc | 23 + contrib/bc/tests/bc/scripts/divide_05700.bc | 23 + contrib/bc/tests/bc/scripts/divide_05800.bc | 23 + contrib/bc/tests/bc/scripts/divide_05900.bc | 23 + contrib/bc/tests/bc/scripts/divide_06000.bc | 23 + contrib/bc/tests/bc/scripts/divide_06100.bc | 23 + contrib/bc/tests/bc/scripts/divide_06200.bc | 23 + contrib/bc/tests/bc/scripts/divide_06300.bc | 23 + contrib/bc/tests/bc/scripts/divide_06400.bc | 23 + contrib/bc/tests/bc/scripts/divide_06500.bc | 23 + contrib/bc/tests/bc/scripts/divide_06600.bc | 23 + contrib/bc/tests/bc/scripts/divide_06700.bc | 23 + contrib/bc/tests/bc/scripts/divide_06800.bc | 23 + contrib/bc/tests/bc/scripts/divide_06900.bc | 23 + contrib/bc/tests/bc/scripts/divide_07000.bc | 23 + contrib/bc/tests/bc/scripts/divide_07100.bc | 23 + contrib/bc/tests/bc/scripts/divide_07200.bc | 23 + contrib/bc/tests/bc/scripts/divide_07300.bc | 23 + contrib/bc/tests/bc/scripts/divide_07400.bc | 23 + contrib/bc/tests/bc/scripts/divide_07500.bc | 23 + contrib/bc/tests/bc/scripts/divide_07600.bc | 23 + contrib/bc/tests/bc/scripts/divide_07700.bc | 23 + contrib/bc/tests/bc/scripts/divide_07800.bc | 23 + contrib/bc/tests/bc/scripts/divide_07900.bc | 23 + contrib/bc/tests/bc/scripts/divide_08000.bc | 23 + contrib/bc/tests/bc/scripts/divide_08100.bc | 23 + contrib/bc/tests/bc/scripts/divide_08200.bc | 23 + contrib/bc/tests/bc/scripts/divide_08300.bc | 23 + contrib/bc/tests/bc/scripts/divide_08400.bc | 23 + contrib/bc/tests/bc/scripts/divide_08500.bc | 23 + contrib/bc/tests/bc/scripts/divide_08600.bc | 23 + contrib/bc/tests/bc/scripts/divide_08700.bc | 23 + contrib/bc/tests/bc/scripts/divide_08800.bc | 23 + contrib/bc/tests/bc/scripts/divide_08900.bc | 23 + contrib/bc/tests/bc/scripts/divide_09000.bc | 23 + contrib/bc/tests/bc/scripts/divide_09100.bc | 23 + contrib/bc/tests/bc/scripts/divide_09200.bc | 23 + contrib/bc/tests/bc/scripts/divide_09300.bc | 23 + contrib/bc/tests/bc/scripts/divide_09400.bc | 23 + contrib/bc/tests/bc/scripts/divide_09500.bc | 23 + contrib/bc/tests/bc/scripts/divide_09600.bc | 23 + contrib/bc/tests/bc/scripts/divide_09700.bc | 23 + contrib/bc/tests/bc/scripts/divide_09800.bc | 23 + contrib/bc/tests/bc/scripts/divide_09900.bc | 23 + contrib/bc/tests/bc/scripts/divide_10000.bc | 23 + .../bc/scripts/{multiply.bc => multiply_00100.bc} | 2 +- contrib/bc/tests/bc/scripts/multiply_00200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_00900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_01900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_02900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_03900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_04900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_05900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_06900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_07900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_08900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09000.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09100.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09200.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09300.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09400.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09500.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09600.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09700.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09800.bc | 20 + contrib/bc/tests/bc/scripts/multiply_09900.bc | 20 + contrib/bc/tests/bc/scripts/multiply_10000.bc | 20 + contrib/bc/tests/bc/scripts/parse.bc | 20 - contrib/bc/tests/bc/scripts/parse_02.bc | 19 + contrib/bc/tests/bc/scripts/parse_03.bc | 19 + contrib/bc/tests/bc/scripts/parse_04.bc | 19 + contrib/bc/tests/bc/scripts/parse_05.bc | 19 + contrib/bc/tests/bc/scripts/parse_06.bc | 19 + contrib/bc/tests/bc/scripts/parse_07.bc | 19 + contrib/bc/tests/bc/scripts/parse_08.bc | 19 + contrib/bc/tests/bc/scripts/parse_09.bc | 19 + contrib/bc/tests/bc/scripts/parse_11.bc | 19 + contrib/bc/tests/bc/scripts/parse_12.bc | 19 + contrib/bc/tests/bc/scripts/parse_13.bc | 19 + contrib/bc/tests/bc/scripts/parse_14.bc | 19 + contrib/bc/tests/bc/scripts/parse_15.bc | 19 + contrib/bc/tests/bc/scripts/parse_16.bc | 19 + contrib/bc/tests/bc/scripts/print.bc | 25 - contrib/bc/tests/bc/scripts/print_002.bc | 22 + contrib/bc/tests/bc/scripts/print_003.bc | 22 + contrib/bc/tests/bc/scripts/print_004.bc | 22 + contrib/bc/tests/bc/scripts/print_005.bc | 22 + contrib/bc/tests/bc/scripts/print_006.bc | 22 + contrib/bc/tests/bc/scripts/print_007.bc | 22 + contrib/bc/tests/bc/scripts/print_008.bc | 22 + contrib/bc/tests/bc/scripts/print_009.bc | 22 + contrib/bc/tests/bc/scripts/print_011.bc | 22 + contrib/bc/tests/bc/scripts/print_012.bc | 22 + contrib/bc/tests/bc/scripts/print_013.bc | 22 + contrib/bc/tests/bc/scripts/print_014.bc | 22 + contrib/bc/tests/bc/scripts/print_015.bc | 22 + contrib/bc/tests/bc/scripts/print_016.bc | 22 + contrib/bc/tests/bc/scripts/print_017.bc | 22 + contrib/bc/tests/bc/scripts/print_018.bc | 22 + contrib/bc/tests/bc/scripts/print_019.bc | 22 + contrib/bc/tests/bc/scripts/print_020.bc | 22 + contrib/bc/tests/bc/scripts/print_021.bc | 22 + contrib/bc/tests/bc/scripts/print_022.bc | 22 + contrib/bc/tests/bc/scripts/print_023.bc | 22 + contrib/bc/tests/bc/scripts/print_024.bc | 22 + contrib/bc/tests/bc/scripts/print_025.bc | 22 + contrib/bc/tests/bc/scripts/print_026.bc | 22 + contrib/bc/tests/bc/scripts/print_027.bc | 22 + contrib/bc/tests/bc/scripts/print_028.bc | 22 + contrib/bc/tests/bc/scripts/print_029.bc | 22 + contrib/bc/tests/bc/scripts/print_030.bc | 22 + contrib/bc/tests/bc/scripts/print_031.bc | 22 + contrib/bc/tests/bc/scripts/print_032.bc | 22 + contrib/bc/tests/bc/scripts/print_033.bc | 22 + contrib/bc/tests/bc/scripts/print_034.bc | 22 + contrib/bc/tests/bc/scripts/print_035.bc | 22 + contrib/bc/tests/bc/scripts/print_036.bc | 22 + contrib/bc/tests/bc/scripts/print_037.bc | 22 + contrib/bc/tests/bc/scripts/print_038.bc | 22 + contrib/bc/tests/bc/scripts/print_039.bc | 22 + contrib/bc/tests/bc/scripts/print_040.bc | 22 + contrib/bc/tests/bc/scripts/print_041.bc | 22 + contrib/bc/tests/bc/scripts/print_042.bc | 22 + contrib/bc/tests/bc/scripts/print_043.bc | 22 + contrib/bc/tests/bc/scripts/print_044.bc | 22 + contrib/bc/tests/bc/scripts/print_045.bc | 22 + contrib/bc/tests/bc/scripts/print_046.bc | 22 + contrib/bc/tests/bc/scripts/print_047.bc | 22 + contrib/bc/tests/bc/scripts/print_048.bc | 22 + contrib/bc/tests/bc/scripts/print_049.bc | 22 + contrib/bc/tests/bc/scripts/print_050.bc | 22 + contrib/bc/tests/bc/scripts/print_051.bc | 22 + contrib/bc/tests/bc/scripts/print_052.bc | 22 + contrib/bc/tests/bc/scripts/print_053.bc | 22 + contrib/bc/tests/bc/scripts/print_054.bc | 22 + contrib/bc/tests/bc/scripts/print_055.bc | 22 + contrib/bc/tests/bc/scripts/print_056.bc | 22 + contrib/bc/tests/bc/scripts/print_057.bc | 22 + contrib/bc/tests/bc/scripts/print_058.bc | 22 + contrib/bc/tests/bc/scripts/print_059.bc | 22 + contrib/bc/tests/bc/scripts/print_060.bc | 22 + contrib/bc/tests/bc/scripts/print_061.bc | 22 + contrib/bc/tests/bc/scripts/print_062.bc | 22 + contrib/bc/tests/bc/scripts/print_063.bc | 22 + contrib/bc/tests/bc/scripts/print_064.bc | 22 + contrib/bc/tests/bc/scripts/print_065.bc | 22 + contrib/bc/tests/bc/scripts/print_066.bc | 22 + contrib/bc/tests/bc/scripts/print_067.bc | 22 + contrib/bc/tests/bc/scripts/print_068.bc | 22 + contrib/bc/tests/bc/scripts/print_069.bc | 22 + contrib/bc/tests/bc/scripts/print_070.bc | 22 + contrib/bc/tests/bc/scripts/print_071.bc | 22 + contrib/bc/tests/bc/scripts/print_072.bc | 22 + contrib/bc/tests/bc/scripts/print_073.bc | 22 + contrib/bc/tests/bc/scripts/print_074.bc | 22 + contrib/bc/tests/bc/scripts/print_075.bc | 22 + contrib/bc/tests/bc/scripts/print_076.bc | 22 + contrib/bc/tests/bc/scripts/print_077.bc | 22 + contrib/bc/tests/bc/scripts/print_078.bc | 22 + contrib/bc/tests/bc/scripts/print_079.bc | 22 + contrib/bc/tests/bc/scripts/print_080.bc | 22 + contrib/bc/tests/bc/scripts/print_081.bc | 22 + contrib/bc/tests/bc/scripts/print_082.bc | 22 + contrib/bc/tests/bc/scripts/print_083.bc | 22 + contrib/bc/tests/bc/scripts/print_084.bc | 22 + contrib/bc/tests/bc/scripts/print_085.bc | 22 + contrib/bc/tests/bc/scripts/print_086.bc | 22 + contrib/bc/tests/bc/scripts/print_087.bc | 22 + contrib/bc/tests/bc/scripts/print_088.bc | 22 + contrib/bc/tests/bc/scripts/print_089.bc | 22 + contrib/bc/tests/bc/scripts/print_090.bc | 22 + contrib/bc/tests/bc/scripts/print_091.bc | 22 + contrib/bc/tests/bc/scripts/print_092.bc | 22 + contrib/bc/tests/bc/scripts/print_093.bc | 22 + contrib/bc/tests/bc/scripts/print_094.bc | 22 + contrib/bc/tests/bc/scripts/print_095.bc | 22 + contrib/bc/tests/bc/scripts/print_096.bc | 22 + contrib/bc/tests/bc/scripts/print_097.bc | 22 + contrib/bc/tests/bc/scripts/print_098.bc | 22 + contrib/bc/tests/bc/scripts/print_099.bc | 22 + contrib/bc/tests/bc/scripts/print_100.bc | 22 + .../bc/scripts/{subtract.bc => subtract_00100.bc} | 2 +- contrib/bc/tests/bc/scripts/subtract_00200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_00900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_01900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_02900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_03900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_04900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_05900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_06900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_07900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_08900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09000.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09100.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09200.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09300.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09400.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09500.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09600.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09700.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09800.bc | 17 + contrib/bc/tests/bc/scripts/subtract_09900.bc | 17 + contrib/bc/tests/bc/scripts/subtract_10000.bc | 17 + contrib/bc/tests/bc/timeconst.sh | 5 +- contrib/bc/tests/bcl.c | 2 +- contrib/bc/tests/dc/scripts/easter.dc | 49 + contrib/bc/tests/dc/scripts/easter.sh | 93 - contrib/bc/tests/dc/scripts/easter.txt | 5 + contrib/bc/tests/dc/scripts/prime.dc | 2 +- contrib/bc/tests/error.sh | 4 +- contrib/bc/tests/errors.sh | 4 +- contrib/bc/tests/extra_required.txt | 17 +- contrib/bc/tests/history.py | 4 +- contrib/bc/tests/history.sh | 2 +- contrib/bc/tests/other.sh | 593 -- contrib/bc/tests/read.sh | 166 - contrib/bc/tests/script.sh | 25 +- contrib/bc/tests/scripts.sh | 17 +- contrib/bc/tests/stdin.sh | 2 +- contrib/bc/tests/test.sh | 24 +- contrib/bc/vs/bc.vcxproj | 1 - contrib/bc/vs/bc.vcxproj.filters | 3 - contrib/bc/vs/bcl.vcxproj | 1 - contrib/bc/vs/bcl.vcxproj.filters | 3 - 713 files changed, 28218 insertions(+), 3012 deletions(-) diff --cc contrib/bc/MAINTENANCE-TERMS.md index 000000000000,ef24202cc6c2..ef24202cc6c2 mode 000000,100644..100644 --- a/contrib/bc/MAINTENANCE-TERMS.md +++ b/contrib/bc/MAINTENANCE-TERMS.md diff --cc contrib/bc/README.md index 696e6186b8bd,000000000000..a203386f3b65 mode 100644,000000..100644 --- a/contrib/bc/README.md +++ b/contrib/bc/README.md @@@ -1,518 -1,0 +1,531 @@@ +# `bc` + - ***WARNING: New user registration for <https://git.gavinhoward.com/> is disabled - because of spam. If you need to report a bug with `bc`, email gavin at this site - minus the `git.` part for an account, and I will create one for you. Or you can - report an issue at [GitHub][29].*** ++***WARNING: This project has moved back to GitHub temporarily; self-hosted Git ++forges are not working for me, so I am trying to replace them.*** + +***WARNING: This project has moved to [https://git.gavinhoward.com/][20] for +[these reasons][21], though GitHub will remain a mirror.*** + +This is an implementation of the [POSIX `bc` calculator][12] that implements +[GNU `bc`][1] extensions, as well as the period (`.`) extension for the BSD +flavor of `bc`. + +For more information, see this `bc`'s full manual. + +This `bc` also includes an implementation of `dc` in the same binary, accessible +via a symbolic link, which implements all FreeBSD and GNU extensions. (If a +standalone `dc` binary is desired, `bc` can be copied and renamed to `dc`.) The +`!` command is omitted; I believe this poses security concerns and that such +functionality is unnecessary. + +For more information, see the `dc`'s full manual. + +This `bc` also provides `bc`'s math as a library with C bindings, called `bcl`. + +For more information, see the full manual for `bcl`. + +## License + +This `bc` is Free and Open Source Software (FOSS). It is offered under the BSD +2-clause License. Full license text may be found in the [`LICENSE.md`][4] file. + +## Prerequisites + +This `bc` only requires either: + +1. Windows 10 or later, or +2. A C99-compatible compiler and a (mostly) POSIX 2008-compatible system with + the XSI (X/Open System Interfaces) option group. + +Since POSIX 2008 with XSI requires the existence of a C99 compiler as `c99`, any +POSIX and XSI-compatible system will have everything needed. + +POSIX-compatible systems that are known to work: + +* Linux +* FreeBSD +* OpenBSD +* NetBSD +* macOS +* Solaris* (as long as the Solaris version supports POSIX 2008) +* AIX +* HP-UX* (except for history) + +In addition, there is compatibility code to make this `bc` work on Windows. + +Please submit bug reports if this `bc` does not build out of the box on any +system. + +## Build + +This `bc` should build unmodified on any POSIX-compliant system or on Windows +starting with Windows 10 (though earlier versions may work). + +For more complex build requirements than the ones below, see the [build +manual][5]. + +### Windows + +There is no guarantee that this `bc` will work on any version of Windows earlier +than Windows 10 (I cannot test on earlier versions), but it is guaranteed to +work on Windows 10 at least. + +Also, if building with MSBuild, the MSBuild bundled with Visual Studio is +required. + +**Note**: Unlike the POSIX-compatible platforms, only one build configuration is +supported on Windows: extra math and history enabled, NLS (locale support) +disabled, with both calculators built. + +#### `bc` + +To build `bc`, you can open the `vs/bc.sln` file in Visual Studio, select the +configuration, and build. + +You can also build using MSBuild with the following from the root directory: + +``` +msbuild -property:Configuration=<config> vs/bc.sln +``` + +where `<config>` is either one of `Debug` or `Release`. + +On Windows, the calculators are built as `vs/bin/<platform>/<config>/bc.exe` and +`vs/bin/<Platform>/<Config>/dc.exe`, where `<platform>` can be either `Win32` or +`x64`, and `<config>` can be `Debug` or `Release`. + +**Note**: On Windows, `dc.exe` is just copied from `bc.exe`; it is not linked. +Patches are welcome for a way to do that. + +#### `bcl` (Library) + +To build the library, you can open the `vs/bcl.sln` file in Visual Studio, +select the configuration, and build. + +You can also build using MSBuild with the following from the root directory: + +``` +msbuild -property:Configuration=<config> vs/bcl.sln +``` + +where `<config>` is either one of `Debug`, `ReleaseMD`, or `ReleaseMT`. + +On Windows, the library is built as `vs/lib/<platform>/<config>/bcl.lib`, where +`<platform>` can be either `Win32` or `x64`, and `<config>` can be `Debug`, +`ReleaseMD`, or `ReleaseMT`. + +### POSIX-Compatible Systems + +On POSIX-compatible systems, `bc` is built as `bin/bc` and `dc` is built as +`bin/dc` by default. + +#### Default + +For the default build with optimization, use the following commands in the root +directory: + +``` +./configure.sh -O3 +make +``` + +#### One Calculator + +To only build `bc`, use the following commands: + +``` +./configure.sh --disable-dc +make +``` + +To only build `dc`, use the following commands: + +``` +./configure.sh --disable-bc +make +``` + +#### Debug + +For debug builds, use the following commands in the root directory: + +``` +./configure.sh -g +make +``` + +#### Install + +To install, use the following command: + +``` +make install +``` + +By default, `bc` and `dc` will be installed in `/usr/local`. For installing in +other locations, use the `PREFIX` environment variable when running +`configure.sh` or pass the `--prefix=<prefix>` option to `configure.sh`. See the +[build manual][5], or run `./configure.sh --help`, for more details. + +#### Library + +To build the math library, pass the `-a` or `--library` options to +`configure.sh`: + +``` +./configure.sh -a +``` + +When building the library, the executables are not built. For more information, +see the [build manual][5]. + +The library API can be found in [`manuals/bcl.3.md`][26] or `man bcl` once the +library is installed. + +#### Package and Distro Maintainers + +This section is for package and distro maintainers. + +##### Out-of-Source Builds + +Out-of-source builds are supported; just call `configure.sh` from the directory +where the actual build will happen. + +For example, if the source is in `bc`, the build should happen in `build`, then +call `configure.sh` and `make` like so: + +``` +../bc/configure.sh +make +``` + +***WARNING***: The path to `configure.sh` from the build directory must not have +spaces because `make` does not support target names with spaces. + +##### Recommended Compiler + +When I ran benchmarks with my `bc` compiled under `clang`, it performed much +better than when compiled under `gcc`. I recommend compiling this `bc` with +`clang`. + +I also recommend building this `bc` with C11 if you can because `bc` will detect +a C11 compiler and add `_Noreturn` to any relevant function(s). + +##### Recommended Optimizations + +I wrote this `bc` with Separation of Concerns, which means that there are many +small functions that could be inlined. However, they are often called across +file boundaries, and the default optimizer can only look at the current file, +which means that they are not inlined. + +Thus, because of the way this `bc` is built, it will automatically be slower +than other `bc` implementations when running scripts with no math. (My `bc`'s +math is *much* faster, so any non-trivial script should run faster in my `bc`.) + +Some, or all, of the difference can be made up with the right optimizations. The +optimizations I recommend are: + +1. `-O3` +2. `-flto` (link-time optimization) + +in that order. + +Link-time optimization, in particular, speeds up the `bc` a lot. This is because +when link-time optimization is turned on, the optimizer can look across files *** 3142 LINES SKIPPED ***