lix/doc/manual
sugar🍬🍭🏳️‍⚧️ 447212fa65 libexpr: Replace regex engine with boost::regex
This avoids C++'s standard library regexes, which aren't the same
across platforms, and have many other issues, like using stack
so much that they stack overflow when processing a lot of data.

To avoid backwards and forward compatibility issues, regexes are
processed using a function converting libstdc++ regexes into Boost
regexes, escaping characters that Boost needs to have escaped, and
rejecting features that Boost has and libstdc++ doesn't.

Related context:

- Original failed attempt to use `boost::regex` in CppNix, failed due to
  boost icu dependency being large (disabling ICU is no longer necessary
  because linking ICU requires using a different header file,
  `boost/regex/icu.hpp`): https://github.com/NixOS/nix/pull/3826

- An attempt to use PCRE, rejected due to providing less backwards
  compatibility with `std::regex` than `boost::regex`:
  https://github.com/NixOS/nix/pull/7336

- Second attempt to use `boost::regex`, failed due to `}` regex failing
  to compile (dealt with by writing a wrapper that parses a regular
  expression and escapes `}` characters):
  https://github.com/NixOS/nix/pull/7762

Closes #34. Closes #476.

Change-Id: Ieb0eb9e270a93e4c7eed412ba4f9f96cb00a5fa4
2024-08-22 03:17:55 +02:00
..
rl-next libexpr: Replace regex engine with boost::regex 2024-08-22 03:17:55 +02:00
src doc: fix broken meson deps for various manuals outputs 2024-08-18 15:19:15 -07:00
theme Add pre-commit checks 2024-03-29 22:57:40 -07:00
anchors.jq Add pre-commit checks 2024-03-29 22:57:40 -07:00
book.toml docs: enable non-default TOC folding 2024-05-30 00:23:01 +00:00
change-authors.yml libexpr: Replace regex engine with boost::regex 2024-08-22 03:17:55 +02:00
custom.css disallow selecting shell prompt in code samples 2022-12-05 11:01:46 +01:00
generate-builtin-constants.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
generate-builtins.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00
generate-deps.py docs: redo content generation for mdbook and manual 2024-04-11 13:32:06 +00:00
generate-features-shortlist.nix libexpr: Introduce Deprecated features 2024-08-17 19:47:51 +02:00
generate-features.nix libexpr: Introduce Deprecated features 2024-08-17 19:47:51 +02:00
generate-manpage.nix docs: don't compute SUMMARY.md during build 2024-04-09 02:09:36 +00:00
json-to-tree.py docs: generalize manpage generation script as json-to-tree.py 2024-04-10 15:04:34 +02:00
meson.build doc: fix broken meson deps for various manuals outputs 2024-08-18 15:19:15 -07:00
process-includes.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
quote-literals.xsl Generate release notes again 2014-03-12 14:24:29 +01:00
rclone.conf doc: add a script to upload the nightly manual manually 2024-05-14 14:28:01 -07:00
redirects.js manual: fix a syntax error in redirects.js that made it not do anything 2024-08-04 20:41:19 -07:00
render-manpage.sh change shebangs of all .sh scripts to bash 2024-06-24 14:00:43 -07:00
substitute.py docs: redo content generation for mdbook and manual 2024-04-11 13:32:06 +00:00
utils.nix Format Nix code with nixfmt 2024-04-08 13:00:00 -07:00