Lines Matching +full:built +full:- +full:in

3 ***WARNING: This project has moved back to GitHub temporarily; self-hosted Git
15 This `bc` also includes an implementation of `dc` in the same binary, accessible
30 2-clause License. Full license text may be found in the [`LICENSE.md`][4] file.
37 2. A C99-compatible compiler and a (mostly) POSIX 2008-compatible system with
41 POSIX and XSI-compatible system will have everything needed.
43 POSIX-compatible systems that are known to work:
52 * HP-UX* (except for history)
54 In addition, there is compatibility code to make this `bc` work on Windows.
61 This `bc` should build unmodified on any POSIX-compliant system or on Windows
76 **Note**: Unlike the POSIX-compatible platforms, only one build configuration is
78 disabled, with both calculators built.
82 To build `bc`, you can open the `vs/bc.sln` file in Visual Studio, select the
88 msbuild -property:Configuration=<config> vs/bc.sln
93 On Windows, the calculators are built as `vs/bin/<platform>/<config>/bc.exe` and
102 To build the library, you can open the `vs/bcl.sln` file in Visual Studio,
108 msbuild -property:Configuration=<config> vs/bcl.sln
113 On Windows, the library is built as `vs/lib/<platform>/<config>/bcl.lib`, where
117 ### POSIX-Compatible Systems
119 On POSIX-compatible systems, `bc` is built as `bin/bc` and `dc` is built as
124 For the default build with optimization, use the following commands in the root
128 ./configure.sh -O3
137 ./configure.sh --disable-dc
144 ./configure.sh --disable-bc
150 For debug builds, use the following commands in the root directory:
153 ./configure.sh -g
165 By default, `bc` and `dc` will be installed in `/usr/local`. For installing in
167 `configure.sh` or pass the `--prefix=<prefix>` option to `configure.sh`. See the
168 [build manual][5], or run `./configure.sh --help`, for more details.
172 To build the math library, pass the `-a` or `--library` options to
176 ./configure.sh -a
179 When building the library, the executables are not built. For more information,
182 The library API can be found in [`manuals/bcl.3.md`][26] or `man bcl` once the
189 ##### Out-of-Source Builds
191 Out-of-source builds are supported; just call `configure.sh` from the directory
194 For example, if the source is in `bc`, the build should happen in `build`, then
221 Thus, because of the way this `bc` is built, it will automatically be slower
223 math is *much* faster, so any non-trivial script should run faster in my `bc`.)
228 1. `-O3`
229 2. `-flto` (link-time optimization)
231 in that order.
233 Link-time optimization, in particular, speeds up the `bc` a lot. This is because
234 when link-time optimization is turned on, the optimizer can look across files
237 However, I recommend ***NOT*** using `-march=native`. Doing so will reduce this
238 `bc`'s performance, at least when building with link-time optimization. See the
243 By default, non-debug binaries are stripped, but stripping can be disabled with
244 the `-T` option to `configure.sh`.
249 it is possible to rename it in the build to prevent name collision. To prepend
266 `bc-gh`.
271 `bc` in the optimal configuration: `scripts/karatsuba.py`.
273 This script is not a compile-time or runtime prerequisite; it is for package and
285 The test suite will print a warning in normal usage. The warning is about a
293 It is well-tested, fuzzed, and fully standards-compliant (though not certified)
297 This `bc` can be used as a drop-in replacement for any existing `bc`. This `bc`
300 In addition, this `bc` is considered complete; i.e., there will be no more
302 any bugs are found, they will be fixed in new releases. Also, additional
334 it on the file `tests/bc/power.txt` in this repo, GNU `bc` gets all the right
351 Below is a non-comprehensive list of extensions that this `bc` and `dc` have
354 * **The `!` operator has higher precedence than the `!` operator in other `bc`
357 * A command-line prompt.
361 * A pseudo-random number generator. This includes the ability to set the seed
364 instead of needing to restore them in *every* function.
365 * The ability to *not* use non-standard keywords. For example, `abs` is a
366 keyword (a built-in function), but if some script actually defines a function
370 `-1` and less than `1`.
371 * Outputting in scientific and engineering notation.
372 * Accepting input in scientific and engineering notation.
373 * Passing strings and arrays to the `length()` built-in function. (In `dc`, the
376 * The `abs()` built-in function. (This is the `b` command in `dc`.)
377 * The `is_number()` and `is_string()` built-in functions. (These tell whether a
379 commands are `u` and `t` in `dc`.)
380 * For `bc` only, the `divmod()` built-in function for computing a quotient and
382 * For `bc` only, the `asciify()` built-in function for converting an array to a
384 * The `$` truncation operator. (It's the same in `bc` and `dc`.)
385 * The `@` "set scale" operator. (It's the same in `bc` and `dc`.)
386 * The decimal shift operators. (`<<` and `>>` in `bc`, `H` and `h` in `dc`.)
387 * Built-in functions or commands to get the max of `scale`, `ibase`, and
389 * The ability to put strings into variables in `bc`. (This always existed in
391 * The `'` command in `dc` for the depth of the execution stack.
392 * The `y` command in `dc` for the depth of register stacks.
393 * Built-in functions or commands to get the value of certain environment
395 * The `stream` keyword to do the same thing as the `P` command in `dc`.
413 Patches are welcome for translations; use the existing `*.msg` files in
416 In addition, patches for improvements are welcome; the last two messages in
430 bugs in the busybox `bc` should be reported to them.
431 * [toybox `bc`][9]. The maintainer has also made his own changes, so bugs in the
433 * [FreeBSD `bc`][23]. While the `bc` in FreeBSD is kept up-to-date, it is better
436 * [macOS `bc`][35]. Any bugs in that `bc` should be reported to me, but do
438 * [Android Open Source `bc`][32]. Any bugs in that `bc` can be reported here.
442 This is a non-comprehensive list of Linux distros that use this `bc` as the
445 * [Gentoo][33]; it is a first-class alternative to GNU `bc`, but not exclusive.
448 Other Linux distros package it as a second-class alternative, usually as `bc-gh`
449 or `howard-bc`.
453 This `bc` is written in pure ISO C99, using POSIX 2008 APIs with custom Windows
458 This `bc` uses the commit message guidelines laid out in [this blog post][10].
464 ## AI-Free
466 This repository is 100% AI-Free code.
470 Items labeled with `(maintainer use only)` are not included in release source
477 bcl.pc.in A template pkg-config file for bcl.
483 LICENSE.md A Markdown form of the BSD 2-clause License.
484 Makefile.in The Makefile template.
494 locales Locale files, in .msg format. Patches welcome for translations.
507 [10]: http://tbaggery.com/2008/04/19/a-note-about-git-commit-messages.html
510 [17]: https://git.gavinhoward.com/gavin/vim-bc
514 [21]: https://gavinhoward.com/2020/04/i-am-moving-away-from-github/
523 [30]: ./manuals/bc/A.1.md#extended-library
526 [33]: https://github.com/gentoo/gentoo/blob/master/app-alternatives/bc/bc-0.ebuild#L8
528 [35]: https://github.com/apple-oss-distributions/bc/tree/main/bc
529 [36]: https://copr.fedorainfracloud.org/coprs/tkbcopr/bc-gh/