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
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
eval-fail-hashfile-missing.nix
eval-fail-missing-arg.nix
eval-fail-nonexist-path.nix
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
eval-okay-arithmetic.nix
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
eval-okay-attrs6.nix
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
eval-okay-builtins-add.nix
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
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
eval-okay-concatmap.nix
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
eval-okay-eq.nix
eval-okay-filter.exp
eval-okay-filter.nix
eval-okay-flatten.exp
eval-okay-flatten.nix
eval-okay-float.exp
eval-okay-float.nix
eval-okay-floor-ceil.exp
eval-okay-floor-ceil.nix
eval-okay-foldlStrict-lazy-elements.exp
eval-okay-foldlStrict-lazy-elements.nix
eval-okay-foldlStrict-lazy-initial-accumulator.exp
eval-okay-foldlStrict-lazy-initial-accumulator.nix
eval-okay-foldlStrict.exp
eval-okay-foldlStrict.nix
eval-okay-fromjson-escapes.exp
eval-okay-fromjson-escapes.nix
eval-okay-fromjson.exp
eval-okay-fromjson.nix
eval-okay-fromTOML.exp
eval-okay-fromTOML.nix
eval-okay-functionargs.exp
eval-okay-functionargs.exp.xml
eval-okay-functionargs.nix
eval-okay-getattrpos-functionargs.exp
eval-okay-getattrpos-functionargs.nix
eval-okay-getattrpos-undefined.exp
eval-okay-getattrpos-undefined.nix
eval-okay-getattrpos.exp
eval-okay-getattrpos.nix
eval-okay-getenv.exp
eval-okay-getenv.nix
eval-okay-groupBy.exp
eval-okay-groupBy.nix
eval-okay-hash.exp
eval-okay-hashfile.exp
eval-okay-hashfile.nix
eval-okay-hashstring.exp
eval-okay-hashstring.nix
eval-okay-if.exp
eval-okay-if.nix
eval-okay-import.exp
eval-okay-import.nix
eval-okay-ind-string.exp
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
eval-okay-mapattrs.nix
eval-okay-nested-with.exp
eval-okay-nested-with.nix
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
eval-okay-path.exp
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
eval-okay-regex-split.nix
eval-okay-regression-20220122.exp
eval-okay-regression-20220122.nix
eval-okay-regression-20220125.exp
eval-okay-regression-20220125.nix
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
eval-okay-seq.exp
eval-okay-seq.nix
eval-okay-sort.exp
eval-okay-sort.nix
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
eval-okay-tojson.nix
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
eval-okay-types.nix
eval-okay-versions.exp
eval-okay-versions.nix
eval-okay-with.exp
eval-okay-with.nix
eval-okay-xml.exp.xml
eval-okay-xml.nix
eval-okay-zipAttrsWith.exp
eval-okay-zipAttrsWith.nix
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
parse-fail-mixed-nested-attrs1.nix
parse-fail-mixed-nested-attrs2.nix
parse-fail-patterns-1.nix
parse-fail-regression-20060610.nix
parse-fail-uft8.nix
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
parse-okay-mixed-nested-attrs-1.nix
parse-okay-mixed-nested-attrs-2.nix
parse-okay-mixed-nested-attrs-3.nix
parse-okay-regression-751.nix
parse-okay-regression-20041027.nix
parse-okay-subversion.nix
parse-okay-url.nix