feat(tvix/glue): contextful derivation
We calculate the input context by performing the union of context over all input of the derivation. Then, we just pass the rest of it to the remaining machinery. Finally, we re-emit an `outPath` and a `drvPath` containing the expected contexts. Change-Id: I74905fb258b5bee8b08d1208c9eb87f51b92a890 Reviewed-on: https://cl.tvl.fyi/c/depot/+/10436 Autosubmit: raitobezarius <tvl@lahfa.xyz> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
This commit is contained in:
parent
15309c7deb
commit
099ca6b7c0
5 changed files with 86 additions and 223 deletions
|
|
@ -91,15 +91,12 @@ fn interpret(code: &str, path: Option<PathBuf>, args: &Args, explain: bool) -> b
|
|||
let known_paths: Rc<RefCell<KnownPaths>> = Default::default();
|
||||
add_derivation_builtins(&mut eval, known_paths.clone());
|
||||
configure_nix_path(&mut eval, &args.nix_search_path);
|
||||
eval.io_handle = Box::new(tvix_glue::tvix_io::TvixIO::new(
|
||||
known_paths,
|
||||
TvixStoreIO::new(
|
||||
blob_service,
|
||||
directory_service,
|
||||
path_info_service.into(), // we need an Arc<_> here.
|
||||
tokio_runtime.handle().clone(),
|
||||
),
|
||||
));
|
||||
eval.io_handle = Box::new(tvix_glue::tvix_io::TvixIO::new(TvixStoreIO::new(
|
||||
blob_service,
|
||||
directory_service,
|
||||
path_info_service.into(), // we need an Arc<_> here.
|
||||
tokio_runtime.handle().clone(),
|
||||
)));
|
||||
|
||||
let source_map = eval.source_map();
|
||||
let result = {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue