fix(tvix/eval): make tvix display values like nix-instantiate(1)
In order for the test suite we have currently to be comparable to C++ Nix, we need to display values in the same way. This was largely the case except in some weird cases. * <CODE> for thunks and <CYCLE> for repeated thunks (?) are already in use. <CODE> formatting is tested by the oracle test suite already. * Instead of lambda, we need to use <LAMBDA> * <<primop>> and <<primop-app>> (a formatting C++ Nix uses nowhere) now are <PRIMOP> and <PRIMOP-APP>. We'll probably want to have a fancier display of values (in a separate trait) down the line. This could be used for interactive usage, e.g. the REPL or a potential debugger. There is a peculiarity with C++ Nix 2.3 formatting primops: import is considered a <<PRIMOP-APP>>, since it is internally implemented by means of scopedImport. This implementation detail no longer leaks in C++ Nix 2.13 nor in Tvix. <CYCLE> display is untested at the moment, since we exhibit a discrepancy to C++ Nix 2.3. Our current detection is more similar to C++ Nix 2.13—luckily it is also the more consistent of the two. See also b/245. Change-Id: I1d534434b02e470bf5475b3758920ea81e3420dc Reviewed-on: https://cl.tvl.fyi/c/depot/+/8760 Reviewed-by: tazjin <tazjin@tvl.su> Autosubmit: sterni <sternenseemann@systemli.org> Tested-by: BuildkiteCI
This commit is contained in:
parent
9c7d1361c5
commit
0005737f11
9 changed files with 63 additions and 3 deletions
|
@ -59,6 +59,10 @@ let
|
|||
"eval-okay-getattrpos-functionargs.nix" = [ nix ];
|
||||
# groupBy appeared (long) after 2.3
|
||||
"eval-okay-builtins-groupby-thunk.nix" = [ nix ];
|
||||
# import is no longer considered a curried primop in Nix > 2.3
|
||||
"eval-okay-import-display.nix" = [ nix ];
|
||||
# Cycle detection and formatting changed sometime after Nix 2.3
|
||||
"eval-okay-cycle-display-cpp-nix-2.13.nix" = [ nix ];
|
||||
};
|
||||
|
||||
runCppNixLangTests = cpp-nix:
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue