tvl-depot/corp/tvixbolt
Griffin Smith 273ba73754 feat(tvix/eval): Initial resolution of <...> paths
This commit implements (lazy) resolution of `<...>` paths via either the
NIX_PATH environment variable, or the -I command-line flag - both
handled via EvalOptions. As a result, EvalOptions can no longer derive
Copy, meaning we have to clone it at each line of the repl - this is
probably not a huge deal as repl performance is not exactly an inner
loop and we're not cloning very much.

Internally, this works by creating a thunk which pushes a constant
containing the string inside the brackets to the stack, then a new
opcode to resolve that path via the `NixPath`. To get that opcode to
work, we now have to pass in the NixPath when constructing the VM.

This (intentionally) leaves out proper implementation of path resolution
via `findFile` (cppnix just calls whatever identifier called findFile is
in scope!!!) as that's widely considered a bit of a misfeature, but if
we do decide to implement that down the road it likely wouldn't be more
than a few extra ops within the thunk introduced here.

Change-Id: Ibc979b7e425b65cbe88599940520239a4a10cee2
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6918
Autosubmit: grfn <grfn@gws.fyi>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-10-10 20:23:41 +00:00
..
src feat(tvix/eval): Initial resolution of <...> paths 2022-10-10 20:23:41 +00:00
.gitignore chore(corp/tvixbolt): gitignore trunk's dist folder 2022-09-20 10:59:32 +00:00
Cargo.lock chore(3p/sources): Bump channels & overlays 2022-10-06 23:23:42 +00:00
Cargo.toml chore(3p/sources): Bump channels & overlays 2022-10-06 23:23:42 +00:00
default.nix fix(tvix/eval): support string identifiers in inherits 2022-09-22 23:07:14 +00:00
index.css feat(corp/tvixbolt): add some additional information on the page 2022-09-04 18:50:06 +00:00
index.html feat(corp/tvixbolt): add an ad in the footer 2022-09-13 12:47:18 +00:00