aboutsummaryrefslogtreecommitdiff
path: root/doc/manual/rl-next/boost-regex.md
diff options
context:
space:
mode:
Diffstat (limited to 'doc/manual/rl-next/boost-regex.md')
-rw-r--r--doc/manual/rl-next/boost-regex.md37
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
+ )
+ )
+ [ ]