about summary refs log tree commit diff
path: root/tvix/eval/src/value
diff options
context:
space:
mode:
authorAspen Smith <root@gws.fyi>2024-02-01T21·48-0500
committeraspen <root@gws.fyi>2024-02-08T19·59+0000
commit780b47193a19ec34d467776b142d115bd0029dff (patch)
treea7dbbb2e43a113a7078dd8df7209037f87ad460c /tvix/eval/src/value
parent4e040e8bc491bcee930ee7e59d6e68ef87c35bb6 (diff)
refactor(tvix/eval): Generalize propagation of catchable values r/7482
Rather than explicitly checking for Value::Catchable in all builtins,
make the #[builtin] proc macro insert this for all strict arguments by
default, with support for a #[catch] attribute on the argument to
disable this behavior. That attribute hasn't actually been *used*
anywhere here, primarily because the tests pass without it, even for
those builtins which weren't previously checking for Value::Catchable -
if some time passes without this being used I might get rid of support
for it entirely.

There's also a `try_value` macro in builtins directly for the places
where builtins were eg forcing something, then explicitly propagating a
catchable value.

Change-Id: Ie22037b9d3e305e3bdb682d105fe467bd90d53e9
Reviewed-on: https://cl.tvl.fyi/c/depot/+/10732
Tested-by: BuildkiteCI
Reviewed-by: raitobezarius <tvl@lahfa.xyz>
Diffstat (limited to 'tvix/eval/src/value')
0 files changed, 0 insertions, 0 deletions