about summary refs log tree commit diff
path: root/tvix/glue/src/builtins
diff options
context:
space:
mode:
authorFlorian Klink <flokli@flokli.de>2024-01-16T11·14+0200
committerflokli <flokli@flokli.de>2024-01-18T14·30+0000
commit501827db59eb9e67ef9c637483efa5a0e5d09c06 (patch)
tree67789854b7b4984685fad4f40295a523cf0e09cf /tvix/glue/src/builtins
parent12ae96cff2e925f502cee8afb4f8dcf54aba27d8 (diff)
refactor(tvix/glue): add BuildService to TvixStoreIO r/7411
TvixStoreIO triggers builds whenever IO into a not-yet-built store path
is requested, if it knows how to build that path.

Change-Id: If30e9db6be2f2a30cbc9d0576f357f3ecfa0d35a
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10645
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Tested-by: BuildkiteCI
Diffstat (limited to 'tvix/glue/src/builtins')
-rw-r--r--tvix/glue/src/builtins/mod.rs10
1 files changed, 4 insertions, 6 deletions
diff --git a/tvix/glue/src/builtins/mod.rs b/tvix/glue/src/builtins/mod.rs
index d2378779319b..58be31d7f87b 100644
--- a/tvix/glue/src/builtins/mod.rs
+++ b/tvix/glue/src/builtins/mod.rs
@@ -8,7 +8,6 @@ mod derivation;
 mod derivation_error;
 
 pub use derivation_error::Error as DerivationError;
-use tvix_eval::EvalIO;
 
 /// Adds derivation-related builtins to the passed [tvix_eval::Evaluation].
 ///
@@ -16,10 +15,7 @@ use tvix_eval::EvalIO;
 ///
 /// As they need to interact with `known_paths`, we also need to pass in
 /// `known_paths`.
-pub fn add_derivation_builtins<IO>(eval: &mut tvix_eval::Evaluation<IO>, io: Rc<TvixStoreIO>)
-where
-    IO: AsRef<dyn EvalIO>,
-{
+pub fn add_derivation_builtins<IO>(eval: &mut tvix_eval::Evaluation<IO>, io: Rc<TvixStoreIO>) {
     eval.builtins
         .extend(derivation::derivation_builtins::builtins(io));
 
@@ -30,13 +26,14 @@ where
 
 #[cfg(test)]
 mod tests {
-    use std::rc::Rc;
+    use std::{rc::Rc, sync::Arc};
 
     use crate::tvix_store_io::TvixStoreIO;
 
     use super::add_derivation_builtins;
     use nix_compat::store_path::hash_placeholder;
     use test_case::test_case;
+    use tvix_build::buildservice::DummyBuildService;
     use tvix_eval::{EvalIO, EvaluationResult};
     use tvix_store::utils::construct_services;
 
@@ -54,6 +51,7 @@ mod tests {
             blob_service,
             directory_service,
             path_info_service.into(),
+            Arc::<DummyBuildService>::default(),
             runtime.handle().clone(),
         ));