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<RefCell> 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 <flokli@flokli.de>
This commit is contained in:
parent
9cb3daee20
commit
499e72c1cb
3 changed files with 46 additions and 28 deletions
|
|
@ -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<PathBuf>, 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<RefCell<KnownPaths>> = 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();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue