fix(tvix/eval): use path_clean instead of fs::canonicalize for paths

Canonicalisation performs much more functionality than what C++ Nix
implements for paths, and causes some undesirable behaviour (e.g.
handling non-existant files becomes difficult, but should be possible
in literals).

Instead, the path_clean crate provides a pure normalisation method.

There is an intention to add this to Rust itself:
https://github.com/rust-lang/rfcs/issues/2208

Change-Id: I775d238136db0a52cf6b12a68985833c8fb32882
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6186
Tested-by: BuildkiteCI
Reviewed-by: sterni <sternenseemann@systemli.org>
This commit is contained in:
Vincent Ambo 2022-08-12 18:52:48 +03:00 committed by tazjin
parent 6fe5e2d752
commit de21d201ba
3 changed files with 14 additions and 10 deletions

View file

@ -10,6 +10,7 @@ rnix = "0.10.2"
smol_str = "0.1"
rustyline = "10.0.0"
dirs = "4.0.0"
path-clean = "0.1"
[dev-dependencies]
criterion = "0.3.6"