tvl-depot/tvix
Vincent Ambo f8575fcd74 fix(tvix/eval): compare *stack* slots when deciding whether to defer
When deciding whether an upvalue needs to have a deferred resolution
step, the *stack* indexes should be compared - not the locals indexes.

The results are almost always the same, but there are tricky
situations where this can cause errors.

It's difficult to reproduce these errors in isolation, as they depend
on other scope behaviour, so this is one in a series of commits to
address the combination of issues which will gain some tests at the
end.

Change-Id: Iaa400b8d9500af58f493ab10e4f95022f3b5dd21
Reviewed-on: https://cl.tvl.fyi/c/depot/+/6423
Reviewed-by: sterni <sternenseemann@systemli.org>
Tested-by: BuildkiteCI
2022-09-08 19:54:02 +00:00
..
.vscode feat(tvix): set up cargo rust project 2022-01-06 15:38:52 +00:00
docs style: format entire depot with nixpkgs-fmt 2022-01-31 16:11:53 +00:00
eval fix(tvix/eval): compare *stack* slots when deciding whether to defer 2022-09-08 19:54:02 +00:00
nix_cli chore(tvix/nix_cli): add default.nix 2022-08-30 11:03:48 +00:00
proto style: format entire depot with nixpkgs-fmt 2022-01-31 16:11:53 +00:00
.envrc feat(tvix): set up cargo rust project 2022-01-06 15:38:52 +00:00
.gitignore feat(tvix): set up cargo rust project 2022-01-06 15:38:52 +00:00
LICENSE chore(tvix): Bootstrap Tvix folder 2021-03-27 00:09:49 +00:00
OWNERS chore(tvix): Bootstrap Tvix folder 2021-03-27 00:09:49 +00:00
README.md chore(tvix): Bootstrap Tvix folder 2021-03-27 00:09:49 +00:00

Tvix

For more information about Tvix, contact one of the project owners. We are interested in people who would like to help us review designs, brainstorm and describe requirements that we may not yet have considered.

License structure

All code implemented for Tvix is licensed under the GPL-3.0, with the exception of the protocol buffer definitions used for communication between services which are available under a more permissive license (MIT).

The idea behind this structure is that any direct usage of our code (e.g. linking to it, embedding the evaluator, etc.) will fall under the terms of the GPL3, but users are free to implement their own components speaking these protocols under the terms of the MIT license.