Lines Matching +full:in +full:- +full:built
17 This `bc` also includes an implementation of `dc` in the same binary, accessible
32 2-clause License. Full license text may be found in the [`LICENSE.md`][4] file.
39 2. A C99-compatible compiler and a (mostly) POSIX 2008-compatible system with
43 POSIX and XSI-compatible system will have everything needed.
45 POSIX-compatible systems that are known to work:
54 * HP-UX* (except for history)
56 In addition, there is compatibility code to make this `bc` work on Windows.
63 This `bc` should build unmodified on any POSIX-compliant system or on Windows
78 **Note**: Unlike the POSIX-compatible platforms, only one build configuration is
80 disabled, with both calculators built.
84 To build `bc`, you can open the `vs/bc.sln` file in Visual Studio, select the
90 msbuild -property:Configuration=<config> vs/bc.sln
95 On Windows, the calculators are built as `vs/bin/<platform>/<config>/bc.exe` and
104 To build the library, you can open the `vs/bcl.sln` file in Visual Studio,
110 msbuild -property:Configuration=<config> vs/bcl.sln
115 On Windows, the library is built as `vs/lib/<platform>/<config>/bcl.lib`, where
119 ### POSIX-Compatible Systems
121 On POSIX-compatible systems, `bc` is built as `bin/bc` and `dc` is built as
126 For the default build with optimization, use the following commands in the root
130 ./configure.sh -O3
139 ./configure.sh --disable-dc
146 ./configure.sh --disable-bc
152 For debug builds, use the following commands in the root directory:
155 ./configure.sh -g
167 By default, `bc` and `dc` will be installed in `/usr/local`. For installing in
169 `configure.sh` or pass the `--prefix=<prefix>` option to `configure.sh`. See the
170 [build manual][5], or run `./configure.sh --help`, for more details.
174 To build the math library, pass the `-a` or `--library` options to
178 ./configure.sh -a
181 When building the library, the executables are not built. For more information,
184 The library API can be found in [`manuals/bcl.3.md`][26] or `man bcl` once the
191 ##### Out-of-Source Builds
193 Out-of-source builds are supported; just call `configure.sh` from the directory
196 For example, if the source is in `bc`, the build should happen in `build`, then
223 Thus, because of the way this `bc` is built, it will automatically be slower
225 math is *much* faster, so any non-trivial script should run faster in my `bc`.)
230 1. `-O3`
231 2. `-flto` (link-time optimization)
233 in that order.
235 Link-time optimization, in particular, speeds up the `bc` a lot. This is because
236 when link-time optimization is turned on, the optimizer can look across files
239 However, I recommend ***NOT*** using `-march=native`. Doing so will reduce this
240 `bc`'s performance, at least when building with link-time optimization. See the
245 By default, non-debug binaries are stripped, but stripping can be disabled with
246 the `-T` option to `configure.sh`.
251 it is possible to rename it in the build to prevent name collision. To prepend
268 `bc-gh`.
273 `bc` in the optimal configuration: `scripts/karatsuba.py`.
275 This script is not a compile-time or runtime prerequisite; it is for package and
289 It is well-tested, fuzzed, and fully standards-compliant (though not certified)
293 This `bc` can be used as a drop-in replacement for any existing `bc`. This `bc`
296 In addition, this `bc` is considered complete; i.e., there will be no more
298 any bugs are found, they will be fixed in new releases. Also, additional
330 it on the file `tests/bc/power.txt` in this repo, GNU `bc` gets all the right
347 Below is a non-comprehensive list of extensions that this `bc` and `dc` have
350 * **The `!` operator has higher precedence than the `!` operator in other `bc`
353 * A command-line prompt.
357 * A pseudo-random number generator. This includes the ability to set the seed
360 instead of needing to restore them in *every* function.
361 * The ability to *not* use non-standard keywords. For example, `abs` is a
362 keyword (a built-in function), but if some script actually defines a function
366 `-1` and less than `1`.
367 * Outputting in scientific and engineering notation.
368 * Accepting input in scientific and engineering notation.
369 * Passing strings and arrays to the `length()` built-in function. (In `dc`, the
372 * The `abs()` built-in function. (This is the `b` command in `dc`.)
373 * The `is_number()` and `is_string()` built-in functions. (These tell whether a
375 commands are `u` and `t` in `dc`.)
376 * For `bc` only, the `divmod()` built-in function for computing a quotient and
378 * For `bc` only, the `asciify()` built-in function for converting an array to a
380 * The `$` truncation operator. (It's the same in `bc` and `dc`.)
381 * The `@` "set scale" operator. (It's the same in `bc` and `dc`.)
382 * The decimal shift operators. (`<<` and `>>` in `bc`, `H` and `h` in `dc`.)
383 * Built-in functions or commands to get the max of `scale`, `ibase`, and
385 * The ability to put strings into variables in `bc`. (This always existed in
387 * The `'` command in `dc` for the depth of the execution stack.
388 * The `y` command in `dc` for the depth of register stacks.
389 * Built-in functions or commands to get the value of certain environment
391 * The `stream` keyword to do the same thing as the `P` command in `dc`.
409 Patches are welcome for translations; use the existing `*.msg` files in
412 In addition, patches for improvements are welcome; the last two messages in
426 bugs in the busybox `bc` should be reported to them.
427 * [toybox `bc`][9]. The maintainer has also made his own changes, so bugs in the
429 * [FreeBSD `bc`][23]. While the `bc` in FreeBSD is kept up-to-date, it is better
432 * [macOS `bc`][35]. Any bugs in that `bc` should be reported to me, but do
434 * [Android Open Source `bc`][32]. Any bugs in that `bc` can be reported here.
436 This is a non-comprehensive list of Linux distros that use this `bc` as the
439 * [Gentoo][33]; it is a first-class alternative to GNU `bc`, but not exclusive.
442 Other Linux distros package it as a second-class alternative, usually as `bc-gh`
443 or `howard-bc`.
447 This `bc` is written in pure ISO C99, using POSIX 2008 APIs with custom Windows
452 This `bc` uses the commit message guidelines laid out in [this blog post][10].
458 ## AI-Free
460 This repository is 100% AI-Free code.
464 Items labeled with `(maintainer use only)` are not included in release source
471 bcl.pc.in A template pkg-config file for bcl.
474 LICENSE.md A Markdown form of the BSD 2-clause License.
475 Makefile.in The Makefile template.
484 locales Locale files, in .msg format. Patches welcome for translations.
497 [10]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
500 [17]: https://git.gavinhoward.com/gavin/vim-bc
504 [21]: https://gavinhoward.com/2020/04/i-am-moving-away-from-github/
513 [30]: ./manuals/bc/A.1.md#extended-library
516 [33]: https://github.com/gentoo/gentoo/blob/master/app-alternatives/bc/bc-0.ebuild#L8
518 [35]: https://github.com/apple-oss-distributions/bc/tree/main/bc