snix/tvix/eval/src/value
Aspen Smith 59056cf705 feat(tvix/eval): Leak strings (with flag to disable)
Default to always leaking strings, and copying strings by copying
pointers rather than cloning the underlying allocation. This (somewhat
bafflingly) doesn't seem to affect any benchmarks, but paves the way for
some tricks around string allocation that do.

Unfortunately, we can't do this (yet?) for contextful strings, for
reasons I don't currently understand but which I will address later,
when I address contextful strings more holistically.

I've left a flag in here to disable this, both to test the cloning logic
for strings for when/if we decide to bring this back, and to allow
people who care more about memory usage than perf to disable leaking.

Change-Id: Iec44bcbfe9b3d20389d2450b9a551792a79b9b26
Reviewed-on: https://cl.tvl.fyi/c/depot/+/12045
Autosubmit: aspen <root@gws.fyi>
Tested-by: BuildkiteCI
Reviewed-by: flokli <flokli@flokli.de>
2024-08-05 10:49:27 +00:00
..
attrs fix(tvix/eval): Propagate catchables in NixAttrs::construct 2024-02-09 19:11:09 +00:00
arbitrary.rs feat(tvix/eval): Store string context alongside data 2024-02-21 20:53:04 +00:00
attrs.rs feat(tvix/eval): Store string context alongside data 2024-02-21 20:53:04 +00:00
builtin.rs docs(tvix/eval): fix some broken docstr references 2023-09-22 09:14:33 +00:00
function.rs feat(tvix/eval): track pattern binding names 2024-01-25 11:37:35 +00:00
json.rs feat(tvix/eval): rm NixContext::join, add take_context & IntoIterator 2024-05-23 14:50:38 +00:00
list.rs fix(tvix/eval): Inline List.sort_by, and propagate errors 2024-02-08 22:50:27 +00:00
mod.rs refactor(tvix/eval): Drop LightSpan entirely 2024-07-05 03:53:44 +00:00
path.rs refactor(tvix/eval): factor out all calls to canon_path 2022-10-13 09:07:47 +00:00
string.rs feat(tvix/eval): Leak strings (with flag to disable) 2024-08-05 10:49:27 +00:00
thunk.rs refactor(tvix/eval): Drop LightSpan entirely 2024-07-05 03:53:44 +00:00