feat(tvix/eval): use EvalIO::import_path when coercing paths

This "ties the knot" of importing files into a store when referring
to them through path literals, e.g. inside of strings.

I'm not yet sure if this interface is sufficient for
builtins.path (which we haven't implemented at all yet), but it's
enough to wire up eval & store initially.

In the default implementations nothing interesting happens in this
function at all.

Change-Id: Ie01ff4161617d1e743a68dbd1a5e54c1b40c0990
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7582
Reviewed-by: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
Vincent Ambo 2022-12-13 00:12:13 +03:00 committed by tazjin
parent edd13573f5
commit 270b1084e8
3 changed files with 28 additions and 3 deletions

View file

@ -40,7 +40,10 @@ fn nix_eval(expr: &str) -> String {
#[track_caller]
fn compare_eval(expr: &str) {
let nix_result = nix_eval(expr);
let tvix_result = tvix_eval::Evaluation::new(expr, None)
let mut eval = tvix_eval::Evaluation::new(expr, None);
eval.io_handle = Box::new(tvix_eval::StdIO);
let tvix_result = eval
.evaluate()
.value
.expect("tvix evaluation should succeed")