feat(tvix/nix-compat): input_derivations with StorePaths
...in `Derivation`. This is more type-safe and should consume less memory. This also removes some allocations in the potentially hot path of output hash calculation. https: //b.tvl.fyi/issues/264 Change-Id: I6ad7d3cb868dc9f750894d449a6065608ef06e8c Reviewed-on: https://cl.tvl.fyi/c/depot/+/10957 Tested-by: BuildkiteCI Reviewed-by: flokli <flokli@flokli.de> Autosubmit: Peter Kolloch <info@eigenvalue.net> Reviewed-by: Peter Kolloch <info@eigenvalue.net>
This commit is contained in:
parent
a44a8985cc
commit
c06fb01b3b
9 changed files with 138 additions and 73 deletions
|
|
@ -140,17 +140,11 @@ impl TvixStoreIO {
|
|||
let input_nodes: BTreeSet<Node> =
|
||||
futures::stream::iter(drv.input_derivations.iter())
|
||||
.map(|(input_drv_path, output_names)| {
|
||||
// since Derivation is validated, we know this can be parsed.
|
||||
let input_drv_path =
|
||||
StorePathRef::from_absolute_path(input_drv_path.as_bytes())
|
||||
.expect("invalid drv path")
|
||||
.to_owned();
|
||||
|
||||
// look up the derivation object
|
||||
let input_drv = {
|
||||
let known_paths = self.known_paths.borrow();
|
||||
known_paths
|
||||
.get_drv_by_drvpath(&input_drv_path)
|
||||
.get_drv_by_drvpath(input_drv_path)
|
||||
.unwrap_or_else(|| panic!("{} not found", input_drv_path))
|
||||
.to_owned()
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue