snix/tvix/eval/src
Adam Joseph d9c497520c feat(tvix/eval): remove Clone instance from Chunk and Lambda
Lambda has a quite large and variable-sized runtime representation,
unlike Rc<Lambda>.  It would be easy to accidentally call clone() on
this and create input-dependent performance regressions.

Nothing in the codebase is currently using Lambda.clone().  Let's
remove the derived instance.  If it's really needed it is very easy
to add it back in, but whoever does that will have to look at the
struct they're adding Clone to, which will hopefully prompt them to
think about whether or not that's really what they want to do.

Change-Id: I7806a741862ab4402229839ce3f4ea75aafd6d12
Reviewed-on: https://cl.tvl.fyi/c/depot/+/7029
Autosubmit: Adam Joseph <adam@westernsemico.com>
Reviewed-by: tazjin <tazjin@tvl.su>
Tested-by: BuildkiteCI
2022-10-16 09:23:03 +00:00
..
builtins fix(tvix/eval): don't coerce variable name to string 2022-10-16 09:20:02 +00:00
compiler fix(tvix/eval): fix Compiler::new on wasm 2022-10-13 16:29:49 +00:00
tests fix(tvix/eval): don't coerce variable name to string 2022-10-16 09:20:02 +00:00
value feat(tvix/eval): remove Clone instance from Chunk and Lambda 2022-10-16 09:23:03 +00:00
chunk.rs feat(tvix/eval): remove Clone instance from Chunk and Lambda 2022-10-16 09:23:03 +00:00
errors.rs feat(tvix/eval): Implement builtins.fromJSON 2022-10-15 20:35:22 +00:00
eval.rs feat(tvix/eval): allow to disable warnings 2022-10-13 02:49:59 +00:00
lib.rs refactor(tvix/eval) s/NixPath/NixSearchPath/ 2022-10-12 08:09:49 +00:00
main.rs feat(tvix/eval): Allow directly evaluating an expr via main 2022-10-11 00:33:49 +00:00
nix_search_path.rs fix(tvix/eval): nix_search_path.rs: use /etc instead of /bin 2022-10-13 09:07:30 +00:00
observer.rs feat(tvix/eval): observe stack after exiting call frames/builtins 2022-10-11 00:07:39 +00:00
opcode.rs refactor(tvix/eval): remove OpResolveWithOrUpvalue 2022-10-14 09:18:38 +00:00
properties.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
source.rs feat(tvix/eval): fancy-format parse errors returned by rnix 2022-10-08 17:27:57 +00:00
spans.rs refactor(tvix/eval): implement ToSpan directly for rnix::TextRange 2022-10-08 10:58:42 +00:00
test_utils.rs test(tvix/eval): Add proof-of-concept test for Chunk 2022-09-18 17:55:06 +00:00
upvalues.rs refactor(tvix/eval): Don't (ab)use PartialEq for Nix equality 2022-09-18 22:03:41 +00:00
vm.rs refactor(tvix/eval) remove Value::DynamicUpvalueMissing 2022-10-16 09:17:02 +00:00
warnings.rs refactor(tvix/eval): introduce source::SourceCode type 2022-10-05 10:29:47 +00:00