lix/tests/unit
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
..
libcmd util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
libexpr libexpr: Replace regex engine with boost::regex 2024-08-22 03:17:55 +02:00
libexpr-support/tests libexpr: Introduce Deprecated features 2024-08-17 19:47:51 +02:00
libmain tree-wide: unify progress bar inactive and paused states 2024-07-01 18:19:34 +02:00
libstore tree-wide: fix a pile of lints 2024-08-08 14:53:17 -07:00
libstore-support/tests util.hh: Delete remaining file and clean up headers 2024-05-29 12:38:51 +02:00
libutil tree-wide: fix a pile of lints 2024-08-08 14:53:17 -07:00
libutil-support/tests refactor: make HashType and Base enum classes for type safety 2024-08-08 14:53:17 -07:00
meson.build tree-wide: add support for asan! 2024-07-31 14:13:39 -07:00