tvl-depot/tvix/eval/src
William Carroll 2fe18e4486 feat(tvix/eval): Support builtins.substring
Nix's `builtins.substring`:
- doesn't accept negative indexes for `beg` or `end`. Compare the error messages
  for:
  - `builtins.substring -3  5 "testing"`
  - `builtins.substring  3 -5 "testing"`
  - `builtins.substring -3 -5 "testing"`
- returns an empty string when `beg >= end`
- allows `end` to exceed the length of the input string

Change-Id: I83af7a099d81b6d537ebe5029d946c7031cb7113
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6555
Reviewed-by: wpcarro <wpcarro@gmail.com>
Autosubmit: wpcarro <wpcarro@gmail.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-09-19 00:51:10 +00:00
..
builtins feat(tvix/eval): Support builtins.substring 2022-09-19 00:51:10 +00:00
compiler fix(tvix/eval): ensure all thunks are forced in nested selects 2022-09-18 22:16:04 +00:00
tests feat(tvix/eval): Support builtins.substring 2022-09-19 00:51:10 +00:00
value refactor(tvix/eval): Simplify forcing in builtins 2022-09-18 22:33:19 +00:00
chunk.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
errors.rs feat(tvix/eval): Support builtins.substring 2022-09-19 00:51:10 +00:00
eval.rs refactor(tvix/eval): use Clap for arg+env parsing 2022-09-18 22:08:43 +00:00
lib.rs refactor(tvix/eval): use Clap for arg+env parsing 2022-09-18 22:08:43 +00:00
main.rs refactor(tvix/eval): use Clap for arg+env parsing 2022-09-18 22:08:43 +00:00
observer.rs refactor(tvix/eval): use CodeIdx wrapper for instruction pointer 2022-09-13 14:41:57 +00:00
opcode.rs docs(tvix/eval): Document OpAttrs 2022-09-18 22:13:16 +00:00
properties.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
test_utils.rs test(tvix/eval): Add proof-of-concept test for Chunk 2022-09-18 17:55:06 +00:00
upvalues.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
vm.rs chore(tvix/eval): Pass in VM to nix_eq 2022-09-18 22:03:42 +00:00
warnings.rs feat(tvix/eval): implement legacy let syntax 2022-09-16 18:13:26 +00:00