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
dir2
dir3
dir4
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
eval-fail-bad-antiquote-2.nix
eval-fail-bad-antiquote-3.nix
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
eval-okay-attrs4.nix
eval-okay-attrs5.exp
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
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 * Generalised the dependencyClosure primop to builtins.genericClosure, 2008-07-11 13:29:04 +00:00
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
eval-okay-curpos.nix
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
eval-okay-delayed-with-inherit.nix
eval-okay-delayed-with.exp
eval-okay-delayed-with.nix
eval-okay-dynamic-attrs-2.exp
eval-okay-dynamic-attrs-2.nix
eval-okay-dynamic-attrs-bare.exp
eval-okay-dynamic-attrs-bare.nix
eval-okay-dynamic-attrs.exp
eval-okay-dynamic-attrs.nix
eval-okay-elem.exp
eval-okay-elem.nix
eval-okay-empty-args.exp
eval-okay-empty-args.nix
eval-okay-eq-derivations.exp
eval-okay-eq-derivations.nix
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
eval-okay-filter.nix
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
eval-okay-getattrpos.nix
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
eval-okay-listtoattrs.nix
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
eval-okay-overrides.nix
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
eval-okay-redefine-builtin.nix
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
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
eval-okay-strings-as-attrs-names.nix
eval-okay-substring.exp
eval-okay-substring.nix
eval-okay-tail-call-1.exp-disabled
eval-okay-tail-call-1.nix
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
eval-okay-tryeval.nix
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