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
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
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
eval-fail-remove.nix
eval-fail-scope-5.nix
eval-fail-seq.nix
eval-fail-substring.nix
eval-fail-to-path.nix
eval-fail-undeclared-arg.nix
eval-okay-any-all.exp
eval-okay-any-all.nix
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
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
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
eval-okay-backslash-newline-1.nix
eval-okay-backslash-newline-2.exp
eval-okay-backslash-newline-2.nix
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
eval-okay-callable-attrs.nix
eval-okay-catattrs.exp
eval-okay-catattrs.nix
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
eval-okay-comments.nix
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
eval-okay-concatstringssep.nix
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
eval-okay-curpos.exp
eval-okay-curpos.nix
eval-okay-deepseq.exp
eval-okay-deepseq.nix
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
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
eval-okay-import.nix
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
eval-okay-null-dynamic-attrs.nix
eval-okay-overrides.exp
eval-okay-overrides.nix
eval-okay-partition.exp
eval-okay-partition.nix
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
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
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
eval-okay-regex-match.nix
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
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
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
eval-okay-seq.nix
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
eval-okay-splitversion.nix
eval-okay-string.exp
eval-okay-string.nix
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
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
imported2.nix
lib.nix
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
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