fix(tvix/eval): use realpaths for import cache
I've noticed this behavior when writing the admittedly cursed test case included in this CL. Alternatively we could use some sort of machinery using `builtins.trace`, but I don't think we capture stderr anywhere. I've elected to put this into the eval cache itself while C++ Nix does it in builtins.import already, namely via `realisePath`. We don't have an equivalent for this yet, since we don't support any kind of IfD, but we could revise that later. In any case, it seems good to encapsulate `ImportCache` in this way, as it'll also allow using file hashes as identifiers, for example. C++ Nix also does our equivalent of canon_path in `builtins.import` which we still don't, but I suspect it hardly makes a difference. Change-Id: I05004737ca2458a4c67359d9e7d9a2f2154a0a0f Reviewed-on: https://cl.tvl.fyi/c/depot/+/8839 Autosubmit: sterni <sternenseemann@systemli.org> Reviewed-by: tazjin <tazjin@tvl.su> Tested-by: BuildkiteCI
This commit is contained in:
parent
399d23eaf6
commit
66047063e0
8 changed files with 51 additions and 3 deletions
|
|
@ -24,6 +24,7 @@ async fn import_impl(
|
|||
source: SourceCode,
|
||||
mut args: Vec<Value>,
|
||||
) -> Result<Value, ErrorKind> {
|
||||
// TODO(sterni): canon_path()?
|
||||
let mut path = coerce_value_to_path(&co, args.pop().unwrap()).await?;
|
||||
|
||||
if path.is_dir() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue