diff options
author | Ryan Lahfa <tvl@lahfa.xyz> | 2024-03-28T23·43+0100 |
---|---|---|
committer | raitobezarius <tvl@lahfa.xyz> | 2024-04-01T12·30+0000 |
commit | 14fe65a50b7bc1e31083c916d254043b0639d5aa (patch) | |
tree | fae237c85166d0bc7d07d1cf32f9029ef6aab24a /tvix/glue/src/builtins | |
parent | f2ca30774e20afc7134d91f2e24787510cf50e07 (diff) |
refactor(tvix/store): generalize `PathInfo` constructors r/7839
Instead of enforcing NAR SHA256 all the time, we generalize the `PathInfo` constructor to take a `CAHash` argument which can drive whether we are having a flat, NAR or text scheme. With this, it is now possible to implement flat schemes in our evaluation builtins, e.g. `builtins.path`. Change-Id: I15bfee0ef4f0f428bfbd2f30c57c012cdcf6a976 Signed-off-by: Ryan Lahfa <tvl@lahfa.xyz> Reviewed-on: https://cl.tvl.fyi/c/depot/+/11286 Reviewed-by: flokli <flokli@flokli.de> Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/glue/src/builtins')
-rw-r--r-- | tvix/glue/src/builtins/import.rs | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/tvix/glue/src/builtins/import.rs b/tvix/glue/src/builtins/import.rs index 88e483031f46..8c9efc679171 100644 --- a/tvix/glue/src/builtins/import.rs +++ b/tvix/glue/src/builtins/import.rs @@ -119,6 +119,7 @@ mod import_builtins { use super::*; + use nix_compat::nixhash::{CAHash, NixHash}; use tvix_eval::generators::Gen; use tvix_eval::{generators::GenCo, ErrorKind, Value}; @@ -138,8 +139,19 @@ mod import_builtins { Ok(state .tokio_handle .block_on(async { + let (_, nar_sha256) = state + .path_info_service + .as_ref() + .calculate_nar(&root_node) + .await?; + state - .register_node_in_path_info_service(name, &p, root_node) + .register_node_in_path_info_service( + name, + &p, + CAHash::Nar(NixHash::Sha256(nar_sha256)), + root_node, + ) .await }) .map_err(|err| ErrorKind::IO { |