fix(tvix/eval): Use natural arg order for call_with

Since we push arguments onto a stack when calling multi-argument
functions, we actually were ending up calling `call_with` with the
arguments in the *reverse order* - we patched around this by passing the
arguments in the reverse order for `foldl'`, but it makes more sense to
have them just be the order that the function would be called with in
user surface code instead.

Change-Id: Ifddb98f46970ac89872383709c3ce758dc965c65
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7067
Reviewed-by: sterni <sternenseemann@systemli.org>
Autosubmit: grfn <grfn@gws.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
Griffin Smith 2022-10-23 12:25:44 -04:00 committed by grfn
parent d4569cb504
commit 89aee6443c
2 changed files with 3 additions and 2 deletions

View file

@ -277,7 +277,7 @@ fn pure_builtins() -> Vec<Builtin> {
let mut res = args.pop().unwrap();
let op = args.pop().unwrap();
for val in list {
res = vm.call_with(&op, [val, res])?;
res = vm.call_with(&op, [res, val])?;
res.force(vm)?;
}