diff options
author | sugar🍬🍭🏳️⚧️ <sugar@sylveon.social> | 2024-08-22 07:20:00 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@localhost> | 2024-08-22 07:20:00 +0000 |
commit | f2e7f8bab875809e8b489e1e5a7aa8572bb4bc13 (patch) | |
tree | 2a0539e75bd9f0b04db83a4ee743db8beeb2d2d8 /doc/manual/rl-next | |
parent | 651cc0e5b4ed4c70ed212b999d8cfa40ca7318e0 (diff) | |
parent | 447212fa65a80180150b265411924cc638a2c52c (diff) |
Merge "libexpr: Replace regex engine with boost::regex" into main
Diffstat (limited to 'doc/manual/rl-next')
-rw-r--r-- | doc/manual/rl-next/boost-regex.md | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/doc/manual/rl-next/boost-regex.md b/doc/manual/rl-next/boost-regex.md new file mode 100644 index 000000000..c541434d0 --- /dev/null +++ b/doc/manual/rl-next/boost-regex.md @@ -0,0 +1,37 @@ +--- +synopsis: Replace regex engine with boost::regex +issues: [fj#34, fj#476] +cls: [1821] +category: Fixes +credits: [sugar] +--- + +Previously, the C++ standard regex expression library was used, the +behaviour of which varied depending on the platform. This has been +replaced with the Boost regex library, which works identically across +platforms. + +The visible behaviour of the regex functions doesn't change. While +the new library has more features, Lix will reject regular expressions +using them. + +This also fixes regex matching reporting stack overflow when matching +on too much data. + +Before: + + nix-repl> builtins.match ".*" ( + builtins.concatStringsSep "" ( + builtins.genList (_: "a") 1000000 + ) + ) + error: stack overflow (possible infinite recursion) + +After: + + nix-repl> builtins.match ".*" ( + builtins.concatStringsSep "" ( + builtins.genList (_: "a") 1000000 + ) + ) + [ ] |