tvl-depot/tvix/eval/docs
Adam Joseph 22b9e6ff09 refactor(tvix/eval): administer antidote for poison
The codebase contains a lot of complexity and odd roundabout
handling for shadowing globals.  I'm pretty sure none of this is
necessary, and all of it disappears if you simply make the globals
part of the ordinary identifier resolution chain, with their own
scope up above the root scope.  Then the ordinary shadowing routines
do the right thing, and no special cases or new terminology are
required.

This commit does that.

Note by tazjin: This commit was originally abandoned when Adam decided
not to take away reviewer bandwidth for this at the time (eval was
still in a much earlier stage). As we've recently done some
significant refactoring of globals initialisation this came up again,
and it seems we can easily cover the use-cases of the poison tracking
in other ways now, so I've rebased, updated and resurrected the CL.

Co-Authored-By: Vincent Ambo <tazjin@tvl.su>
Signed-off-by: Adam Joseph <adam@westernsemico.com>
Change-Id: Ib3309a47a7b31fa5bf10466bade0d876b76ae462
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7089
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2023-01-21 10:19:15 +00:00
..
abandoned docs(tvix/eval): document abandoned thread-local vm 2022-11-08 08:41:04 +00:00
build-references.md docs(tvix): add build-references / string-context document 2023-01-12 11:01:40 +00:00
builtins.md feat(tvix/eval): implement builtins.split 2022-11-04 21:28:32 +00:00
known-optimisation-potential.md refactor(tvix/eval): administer antidote for poison 2023-01-21 10:19:15 +00:00
language-issues.md fix(tvix/eval): bring foldl' strictness in line with C++ Nix 2022-10-15 14:12:23 +00:00
opcodes-attrsets.md docs(tvix/eval): add design documentation for attrset opcodes 2022-08-13 15:31:50 +00:00
recursive-attrs.md docs(tvix/eval): note C++ implementation details for C++ Nix 2022-09-18 15:01:34 +00:00