lix/tests/lang
polykernel a382919d7d
primops: lazy evaluation of replaceStrings replacements
The primop `builtins.replaceStrings` currently always strictly evaluates the
replacement strings, however time and space are wasted for their computation
if the corresponding pattern do not occur in the input string. This commit
makes the evaluation of the replacement strings lazy by deferring their
evaluation to when the corresponding pattern are matched and memoize the result
for efficient retrieval on subsequent matches.

The testcases for replaceStrings was updated to check for lazy evaluation
of the replacements. A note was also added in the release notes to
document the behavior change.
2023-05-25 18:35:23 -04:00
..
dir1 * Add a Nix expression search path feature. Paths between angle 2011-08-06 16:05:24 +00:00
dir2 * Add a Nix expression search path feature. Paths between angle 2011-08-06 16:05:24 +00:00
dir3 * Add a Nix expression search path feature. Paths between angle 2011-08-06 16:05:24 +00:00
dir4 * Add a Nix expression search path feature. Paths between angle 2011-08-06 16:05:24 +00:00
readDir primop: add readFileType, optimize readDir 2023-01-22 13:45:02 -06:00
binary-data Add builtins.hashFile 2019-05-03 17:23:36 +02:00
data Add path primop. 2018-02-06 16:48:08 -05:00
eval-fail-abort.nix
eval-fail-assert.nix
eval-fail-bad-antiquote-1.nix Add a test for type correctness of antiquotes 2013-10-17 00:51:07 +02:00
eval-fail-bad-antiquote-2.nix Add a test for type correctness of antiquotes 2013-10-17 00:51:07 +02:00
eval-fail-bad-antiquote-3.nix Add a test for type correctness of antiquotes 2013-10-17 00:51:07 +02:00
eval-fail-blackhole.nix
eval-fail-deepseq.nix Add ‘deepSeq’ primop 2014-09-22 16:05:00 +02:00
eval-fail-foldlStrict-strict-op-application.nix primops: make nature of foldl' strictness clearer 2022-10-16 14:29:12 +02:00
eval-fail-hashfile-missing.nix fix hashfile test that wasn't failing due to eval laziness 2019-05-08 10:04:54 +02:00
eval-fail-missing-arg.nix
eval-fail-nonexist-path.nix path antiquotations: rename confusing test 2021-08-06 07:38:52 -04:00
eval-fail-path-slash.nix Update mailing list. 2017-07-18 08:04:01 -04:00
eval-fail-remove.nix
eval-fail-scope-5.nix
eval-fail-seq.nix Add ‘seq’ primop 2014-09-22 16:05:00 +02:00
eval-fail-substring.nix
eval-fail-to-path.nix
eval-fail-undeclared-arg.nix
eval-okay-any-all.exp Add primops all and any 2015-07-23 19:23:11 +02:00
eval-okay-any-all.nix Add primops all and any 2015-07-23 19:23:11 +02:00
eval-okay-arithmetic.exp add docs and tests 2018-05-24 12:51:34 +00:00
eval-okay-arithmetic.nix add docs and tests 2018-05-24 12:51:34 +00:00
eval-okay-attrnames.exp
eval-okay-attrnames.nix Add primop ‘attrValues’ 2014-10-04 16:41:24 +02:00
eval-okay-attrs.exp
eval-okay-attrs.nix
eval-okay-attrs2.exp
eval-okay-attrs2.nix
eval-okay-attrs3.exp
eval-okay-attrs3.nix
eval-okay-attrs4.exp * Test case. 2011-07-06 10:58:53 +00:00
eval-okay-attrs4.nix * Test case. 2011-07-06 10:58:53 +00:00
eval-okay-attrs5.exp * Allow a default value in attribute selection by writing 2011-07-13 12:19:57 +00:00
eval-okay-attrs5.nix Fix test broken by #762 2016-02-15 15:01:26 +01:00
eval-okay-attrs6.exp Add testcase for attrset using __overrides and dynamic attrs 2019-11-25 13:03:54 +00:00
eval-okay-attrs6.nix Add testcase for attrset using __overrides and dynamic attrs 2019-11-25 13:03:54 +00:00
eval-okay-autoargs.exp
eval-okay-autoargs.flags
eval-okay-autoargs.nix Fix typos, especially those that end up in the Nix manual 2013-08-26 11:15:22 +02:00
eval-okay-backslash-newline-1.exp libexpr: Recognize newline in more places in lexer 2018-03-02 17:30:48 +02:00
eval-okay-backslash-newline-1.nix libexpr: Recognize newline in more places in lexer 2018-03-02 17:30:48 +02:00
eval-okay-backslash-newline-2.exp libexpr: Recognize newline in more places in lexer 2018-03-02 17:30:48 +02:00
eval-okay-backslash-newline-2.nix libexpr: Recognize newline in more places in lexer 2018-03-02 17:30:48 +02:00
eval-okay-builtins-add.exp Fix builtins.add test 2018-05-02 13:49:32 +02:00
eval-okay-builtins-add.nix add tests for builtins.add 2018-04-29 12:03:42 -07:00
eval-okay-builtins.exp
eval-okay-builtins.nix
eval-okay-callable-attrs.exp Add functors (callable attribute sets). 2014-11-15 16:12:05 -05:00
eval-okay-callable-attrs.nix Add functors (callable attribute sets). 2014-11-15 16:12:05 -05:00
eval-okay-catattrs.exp Add primop ‘catAttrs’ 2014-10-04 18:15:03 +02:00
eval-okay-catattrs.nix Add primop ‘catAttrs’ 2014-10-04 18:15:03 +02:00
eval-okay-closure.exp Enable some language tests that were accidentally disabled 2022-12-12 16:39:06 +01:00
eval-okay-closure.exp.xml
eval-okay-closure.nix
eval-okay-comments.exp Fix comments parsing 2016-11-13 17:20:34 +01:00
eval-okay-comments.nix Fix comments parsing 2016-11-13 17:20:34 +01:00
eval-okay-concat.exp
eval-okay-concat.nix
eval-okay-concatmap.exp lib.concatMap and lib.mapAttrs to be builtins 2018-07-05 02:54:09 +00:00
eval-okay-concatmap.nix lib.concatMap and lib.mapAttrs to be builtins 2018-07-05 02:54:09 +00:00
eval-okay-concatstringssep.exp Add concatStringsSep as a primop 2015-07-24 02:38:09 +02:00
eval-okay-concatstringssep.nix Add concatStringsSep as a primop 2015-07-24 02:38:09 +02:00
eval-okay-context-introspection.exp Expand tests to reproduce #7655 2023-01-21 23:50:09 -05:00
eval-okay-context-introspection.nix Expand tests to reproduce #7655 2023-01-21 23:50:09 -05:00
eval-okay-context.exp
eval-okay-context.nix Fix context test 2014-10-18 20:34:48 -04:00
eval-okay-curpos.exp Add a symbol __curPos that expands to the current source location 2013-11-18 20:16:02 +01:00
eval-okay-curpos.nix Add a symbol __curPos that expands to the current source location 2013-11-18 20:16:02 +01:00
eval-okay-deepseq.exp Add ‘deepSeq’ primop 2014-09-22 16:05:00 +02:00
eval-okay-deepseq.nix Add ‘deepSeq’ primop 2014-09-22 16:05:00 +02:00
eval-okay-delayed-with-inherit.exp Simplify inherited attribute handling 2013-08-26 11:31:56 +02:00
eval-okay-delayed-with-inherit.nix Simplify inherited attribute handling 2013-08-26 11:31:56 +02:00
eval-okay-delayed-with.exp Test the delayed with a bit more 2013-07-31 13:12:35 +02:00
eval-okay-delayed-with.nix Test the delayed with a bit more 2013-07-31 13:12:35 +02:00
eval-okay-dynamic-attrs-2.exp Fold dynamic binds handling into addAttr 2013-12-31 17:57:10 -05:00
eval-okay-dynamic-attrs-2.nix Fold dynamic binds handling into addAttr 2013-12-31 17:57:10 -05:00
eval-okay-dynamic-attrs-bare.exp Allow "bare" dynamic attrs 2014-01-14 14:00:15 +01:00
eval-okay-dynamic-attrs-bare.nix Allow "bare" dynamic attrs 2014-01-14 14:00:15 +01:00
eval-okay-dynamic-attrs.exp Dynamic attrs 2013-12-31 20:59:49 +00:00
eval-okay-dynamic-attrs.nix Dynamic attrs 2013-12-31 20:59:49 +00:00
eval-okay-elem.exp Test some more primops 2014-02-26 19:08:44 +01:00
eval-okay-elem.nix Test some more primops 2014-02-26 19:08:44 +01:00
eval-okay-empty-args.exp
eval-okay-empty-args.nix
eval-okay-eq-derivations.exp * Add a test case for comparing derivations. 2012-01-19 22:10:24 +00:00
eval-okay-eq-derivations.nix * Add a test case for comparing derivations. 2012-01-19 22:10:24 +00:00
eval-okay-eq.exp tests/lang: re-enable eval-okay-eq.nix tests 2022-10-19 18:39:26 +02:00
eval-okay-eq.nix
eval-okay-filter.exp Test some more primops 2014-02-26 19:08:44 +01:00
eval-okay-filter.nix Test some more primops 2014-02-26 19:08:44 +01:00
eval-okay-flatten.exp
eval-okay-flatten.nix
eval-okay-float.exp FIx floating point evaluation 2018-08-19 11:59:49 +02:00
eval-okay-float.nix FIx floating point evaluation 2018-08-19 11:59:49 +02:00
eval-okay-floor-ceil.exp Implement builtins.floor and builtins.ceil using the C library functions internally 2021-05-10 12:19:32 +02:00
eval-okay-floor-ceil.nix Implement builtins.floor and builtins.ceil using the C library functions internally 2021-05-10 12:19:32 +02:00
eval-okay-foldlStrict-lazy-elements.exp primops: make nature of foldl' strictness clearer 2022-10-16 14:29:12 +02:00
eval-okay-foldlStrict-lazy-elements.nix primops: make nature of foldl' strictness clearer 2022-10-16 14:29:12 +02:00
eval-okay-foldlStrict-lazy-initial-accumulator.exp primops: make nature of foldl' strictness clearer 2022-10-16 14:29:12 +02:00
eval-okay-foldlStrict-lazy-initial-accumulator.nix primops: make nature of foldl' strictness clearer 2022-10-16 14:29:12 +02:00
eval-okay-foldlStrict.exp Add test for foldl' 2020-03-04 11:43:48 +01:00
eval-okay-foldlStrict.nix Add test for foldl' 2020-03-04 11:43:48 +01:00
eval-okay-fromjson-escapes.exp Add support for \u escape in fromJSON 2020-01-07 00:09:58 +01:00
eval-okay-fromjson-escapes.nix Add support for \u escape in fromJSON 2020-01-07 00:09:58 +01:00
eval-okay-fromjson.exp Add builtin function ‘fromJSON’ 2014-07-04 13:34:15 +02:00
eval-okay-fromjson.nix Change json example to be original 2022-05-05 12:39:23 +03:00
eval-okay-fromTOML.exp Fix abort in fromTOML 2019-06-24 17:09:09 +02:00
eval-okay-fromTOML.nix Fix abort in fromTOML 2019-06-24 17:09:09 +02:00
eval-okay-functionargs.exp Enable some language tests that were accidentally disabled 2022-12-12 16:39:06 +01:00
eval-okay-functionargs.exp.xml
eval-okay-functionargs.nix
eval-okay-getattrpos-functionargs.exp Make function arguments retain position info 2020-04-02 05:52:52 +02:00
eval-okay-getattrpos-functionargs.nix Make function arguments retain position info 2020-04-02 05:52:52 +02:00
eval-okay-getattrpos-undefined.exp libexpr: Make unsafeGetAttrPos not crash on noPos 2018-04-03 15:54:42 +03:00
eval-okay-getattrpos-undefined.nix libexpr: Make unsafeGetAttrPos not crash on noPos 2018-04-03 15:54:42 +03:00
eval-okay-getattrpos.exp Add a primop unsafeGetAttrPos to return the position of an attribute 2013-11-18 22:22:35 +01:00
eval-okay-getattrpos.nix Add a primop unsafeGetAttrPos to return the position of an attribute 2013-11-18 22:22:35 +01:00
eval-okay-getenv.exp
eval-okay-getenv.nix
eval-okay-groupBy.exp Add a test case for builtins.groupBy 2021-12-16 19:59:13 +01:00
eval-okay-groupBy.nix Add a test case for builtins.groupBy 2021-12-16 19:59:13 +01:00
eval-okay-hash.exp Add builtins.hashFile 2019-05-03 17:23:36 +02:00
eval-okay-hashfile.exp Add builtins.hashFile 2019-05-03 17:23:36 +02:00
eval-okay-hashfile.nix Add builtins.hashFile 2019-05-03 17:23:36 +02:00
eval-okay-hashstring.exp Add builtins.hashFile 2019-05-03 17:23:36 +02:00
eval-okay-hashstring.nix Add builtins.hashFile 2019-05-03 17:23:36 +02:00
eval-okay-if.exp
eval-okay-if.nix
eval-okay-import.exp Add primop ‘scopedImport’ 2014-05-26 14:26:29 +02:00
eval-okay-import.nix Add primop ‘scopedImport’ 2014-05-26 14:26:29 +02:00
eval-okay-ind-string.exp Escape ${ in strings when printing Nix expressions 2020-09-14 17:19:25 +02:00
eval-okay-ind-string.nix antiquotation -> string interpolation 2023-01-02 14:38:57 +01:00
eval-okay-intersectAttrs.exp Optimize intersectAttrs performance 2022-12-24 14:51:05 +01:00
eval-okay-intersectAttrs.nix Optimize intersectAttrs performance 2022-12-24 14:51:05 +01:00
eval-okay-let.exp
eval-okay-let.nix
eval-okay-list.exp
eval-okay-list.nix
eval-okay-listtoattrs.exp * Regression test for listToAttr's behaviour if an attribute name 2010-10-23 22:55:30 +00:00
eval-okay-listtoattrs.nix * Keep attribute sets in sorted order to speed up attribute lookups. 2010-10-24 19:52:33 +00:00
eval-okay-logic.exp
eval-okay-logic.nix
eval-okay-map.exp
eval-okay-map.nix
eval-okay-mapattrs.exp lib.concatMap and lib.mapAttrs to be builtins 2018-07-05 02:54:09 +00:00
eval-okay-mapattrs.nix lib.concatMap and lib.mapAttrs to be builtins 2018-07-05 02:54:09 +00:00
eval-okay-nested-with.exp Add test eval-okay-nested-with 2018-03-30 15:41:16 -04:00
eval-okay-nested-with.nix Add test eval-okay-nested-with 2018-03-30 15:41:16 -04:00
eval-okay-new-let.exp
eval-okay-new-let.nix
eval-okay-null-dynamic-attrs.exp If a dynamic attribute name evaluates to null, remove it from the set 2014-03-10 10:14:50 +01:00
eval-okay-null-dynamic-attrs.nix If a dynamic attribute name evaluates to null, remove it from the set 2014-03-10 10:14:50 +01:00
eval-okay-overrides.exp * Regression test for __overrides. 2010-10-22 15:15:12 +00:00
eval-okay-overrides.nix * Regression test for __overrides. 2010-10-22 15:15:12 +00:00
eval-okay-partition.exp Add builtin function "partition" 2016-08-29 19:36:54 +02:00
eval-okay-partition.nix Add builtin function "partition" 2016-08-29 19:36:54 +02:00
eval-okay-path-antiquotation.exp Fix reference to test directory path 2022-12-12 16:55:42 +01:00
eval-okay-path-antiquotation.nix add path antiqutations test 2021-08-06 07:06:52 -04:00
eval-okay-path.exp Enable some language tests that were accidentally disabled 2022-12-12 16:39:06 +01:00
eval-okay-path.nix Add path primop. 2018-02-06 16:48:08 -05:00
eval-okay-pathexists.exp
eval-okay-pathexists.nix
eval-okay-patterns.exp
eval-okay-patterns.nix
eval-okay-readDir.exp primop: add readFileType, optimize readDir 2023-01-22 13:45:02 -06:00
eval-okay-readDir.nix Add test for readDir primop 2014-10-03 22:32:11 +02:00
eval-okay-readfile.exp
eval-okay-readfile.nix
eval-okay-readFileType.exp primop: add readFileType, optimize readDir 2023-01-22 13:45:02 -06:00
eval-okay-readFileType.nix primop: add readFileType, optimize readDir 2023-01-22 13:45:02 -06:00
eval-okay-redefine-builtin.exp Add the ExprBuiltin Expr type to the AST 2013-12-31 17:45:47 +00:00
eval-okay-redefine-builtin.nix Add the ExprBuiltin Expr type to the AST 2013-12-31 17:45:47 +00:00
eval-okay-regex-match.exp Add a primop for regular expression pattern matching 2014-11-25 11:47:06 +01:00
eval-okay-regex-match.nix Document that builtins.match takes a POSIX extended RE 2017-05-17 12:18:18 +02:00
eval-okay-regex-split.exp Add missing eval-okay-regex-split.exp test file 2018-04-06 12:18:59 -06:00
eval-okay-regex-split.nix Add builtins.string function. 2017-08-15 20:04:11 +00:00
eval-okay-regression-20220122.exp Fix parsing of variable names that are a prefix of '__curPos' 2022-01-24 15:18:18 +01:00
eval-okay-regression-20220122.nix Fix parsing of variable names that are a prefix of '__curPos' 2022-01-24 15:18:18 +01:00
eval-okay-regression-20220125.exp Fix parsing of variable names that are a suffix of '__curPos' 2022-01-25 10:49:27 +01:00
eval-okay-regression-20220125.nix Fix parsing of variable names that are a suffix of '__curPos' 2022-01-25 10:49:27 +01:00
eval-okay-remove.exp
eval-okay-remove.nix
eval-okay-replacestrings.exp primops: lazy evaluation of replaceStrings replacements 2023-05-25 18:35:23 -04:00
eval-okay-replacestrings.nix primops: lazy evaluation of replaceStrings replacements 2023-05-25 18:35:23 -04:00
eval-okay-scope-1.exp
eval-okay-scope-1.nix
eval-okay-scope-2.exp
eval-okay-scope-2.nix
eval-okay-scope-3.exp
eval-okay-scope-3.nix
eval-okay-scope-4.exp
eval-okay-scope-4.nix
eval-okay-scope-6.exp
eval-okay-scope-6.nix
eval-okay-scope-7.exp
eval-okay-scope-7.nix
eval-okay-search-path.exp Fix test 2014-05-29 19:04:27 +02:00
eval-okay-search-path.flags * Allow redirections in search path entries. E.g. if you have a 2011-08-06 17:48:57 +00:00
eval-okay-search-path.nix Move <nix/fetchurl.nix> into the nix binary 2020-12-22 14:43:20 +01:00
eval-okay-seq.exp Add ‘seq’ primop 2014-09-22 16:05:00 +02:00
eval-okay-seq.nix Add ‘seq’ primop 2014-09-22 16:05:00 +02:00
eval-okay-sort.exp Make lists be comparable 2021-11-24 13:40:46 +01:00
eval-okay-sort.nix Make lists be comparable 2021-11-24 13:40:46 +01:00
eval-okay-splitversion.exp Add splitVersion primop. 2018-02-14 09:55:43 -05:00
eval-okay-splitversion.nix Add splitVersion primop. 2018-02-14 09:55:43 -05:00
eval-okay-string.exp Fix the parsing of "$"'s in strings. 2015-07-03 14:09:58 +02:00
eval-okay-string.nix Fix the parsing of "$"'s in strings. 2015-07-03 14:09:58 +02:00
eval-okay-strings-as-attrs-names.exp * Allow attribute names to be strings. Based on the 2011-07-13 15:53:24 +00:00
eval-okay-strings-as-attrs-names.nix * Allow attribute names to be strings. Based on the 2011-07-13 15:53:24 +00:00
eval-okay-substring.exp * builtins.substring: if "start" is beyond the end of the string, 2011-01-14 12:47:10 +00:00
eval-okay-substring.nix * builtins.substring: if "start" is beyond the end of the string, 2011-01-14 12:47:10 +00:00
eval-okay-tail-call-1.exp-disabled Disable the tail call test 2014-01-06 11:32:22 +01:00
eval-okay-tail-call-1.nix Add a test to check that tail calls run in bounded stack space 2013-11-12 12:34:22 +01:00
eval-okay-tojson.exp builtins.toJSON: fix __toString usage 2019-10-27 10:15:51 +01:00
eval-okay-tojson.nix builtins.toJSON: fix __toString usage 2019-10-27 10:15:51 +01:00
eval-okay-toxml.exp
eval-okay-toxml.nix
eval-okay-toxml2.exp
eval-okay-toxml2.nix
eval-okay-tryeval.exp * Print attributes in sorted order. 2010-05-12 12:15:49 +00:00
eval-okay-tryeval.nix * Implemented tryEval, the last missing primop in the fast-eval 2010-05-12 11:23:44 +00:00
eval-okay-types.exp Update eval-okay-types.exp to match #1828 2019-03-27 21:07:04 +01:00
eval-okay-types.nix Add isPath primop 2019-03-24 11:36:49 +01:00
eval-okay-versions.exp
eval-okay-versions.nix tests/lang/eval-okay-versions.nix: add test for previous commit 2022-10-08 17:23:03 -07:00
eval-okay-with.exp
eval-okay-with.nix
eval-okay-xml.exp.xml defer formals duplicate check for incresed efficiency all round 2022-01-19 17:07:29 +01:00
eval-okay-xml.nix Adapt tests to show that floats work properly. 2016-01-06 10:03:24 +01:00
eval-okay-zipAttrsWith.exp add zipAttrsWith primop 2022-01-03 21:05:53 +01:00
eval-okay-zipAttrsWith.nix add zipAttrsWith primop 2022-01-03 21:05:53 +01:00
imported.nix Add primop ‘scopedImport’ 2014-05-26 14:26:29 +02:00
imported2.nix Add primop ‘scopedImport’ 2014-05-26 14:26:29 +02:00
lib.nix Revert "Don't parse "x:x" as a URI" 2017-11-14 15:10:52 +01:00
parse-fail-dup-attrs-1.nix
parse-fail-dup-attrs-2.nix
parse-fail-dup-attrs-3.nix
parse-fail-dup-attrs-4.nix
parse-fail-dup-attrs-7.nix
parse-fail-dup-formals.nix
parse-fail-eof-in-string.nix Handle EOFs in string literals correctly 2022-05-25 17:58:13 +02:00
parse-fail-mixed-nested-attrs1.nix parser: Allow mixed nested and top-level attrpaths 2018-04-18 18:44:38 +02:00
parse-fail-mixed-nested-attrs2.nix parser: Allow mixed nested and top-level attrpaths 2018-04-18 18:44:38 +02:00
parse-fail-patterns-1.nix
parse-fail-regression-20060610.nix
parse-fail-uft8.nix Don't return negative numbers from the flex tokenizer 2018-05-11 12:05:12 +02:00
parse-fail-undef-var-2.nix
parse-fail-undef-var.nix
parse-okay-1.nix
parse-okay-crlf.nix
parse-okay-dup-attrs-5.nix
parse-okay-dup-attrs-6.nix parser: Allow mixed nested and top-level attrpaths 2018-04-18 18:44:38 +02:00
parse-okay-mixed-nested-attrs-1.nix nix-lang parser: Add mixed nested attrs tests. 2018-04-17 09:13:01 +02:00
parse-okay-mixed-nested-attrs-2.nix nix-lang parser: Add mixed nested attrs tests. 2018-04-17 09:13:01 +02:00
parse-okay-mixed-nested-attrs-3.nix nix-lang: Add deep nested mixed attrs test case. 2018-05-01 14:42:34 +02:00
parse-okay-regression-751.nix Remove tests/lexer.sh 2016-02-01 18:27:37 +01:00
parse-okay-regression-20041027.nix
parse-okay-subversion.nix
parse-okay-url.nix Add .tar.zst support for TarballInputScheme 2021-05-29 16:03:26 +07:00