From 499e72c1cba8f7aa0415d3d8b93c57ca98457635 Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Sat, 14 Jan 2023 15:45:22 +0300 Subject: feat(tvix/cli): track known plain paths in NixCompatIO When adding things to a C++ Nix store, ensure that the path is tracked in the tracker. Since the mechanism for propagating the tracker instance isn't finalised yet, I've opted to take an Rc parameter for it. How exactly that ends up there is going to become clear in the next commits, but for now it's just instantiated in main with Default::default. Change-Id: I90f0b44f2d4f292dedc98ff1aa39041d279b61fd Reviewed-on: https://cl.tvl.fyi/c/depot/+/7833 Tested-by: BuildkiteCI Reviewed-by: flokli --- tvix/cli/src/main.rs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'tvix/cli/src/main.rs') diff --git a/tvix/cli/src/main.rs b/tvix/cli/src/main.rs index 42297d365bbf..242cece9ecd2 100644 --- a/tvix/cli/src/main.rs +++ b/tvix/cli/src/main.rs @@ -2,9 +2,12 @@ mod known_paths; mod nix_compat; mod refscan; +use std::cell::RefCell; +use std::rc::Rc; use std::{fs, path::PathBuf}; use clap::Parser; +use known_paths::KnownPaths; use rustyline::{error::ReadlineError, Editor}; use tvix_eval::observer::{DisassemblingObserver, TracingObserver}; use tvix_eval::Value; @@ -48,7 +51,9 @@ struct Args { /// evaluation succeeded. fn interpret(code: &str, path: Option, args: &Args, explain: bool) -> bool { let mut eval = tvix_eval::Evaluation::new_impure(code, path); - eval.io_handle = Box::new(nix_compat::NixCompatIO::new()); + let known_paths: Rc> = Default::default(); + + eval.io_handle = Box::new(nix_compat::NixCompatIO::new(known_paths)); eval.nix_path = args.nix_search_path.clone(); let source_map = eval.source_map(); -- cgit 1.4.1