tvl-depot/tvix/eval/builtin-macros
Aspen Smith 780b47193a refactor(tvix/eval): Generalize propagation of catchable values
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>
2024-02-08 19:59:21 +00:00
..
src refactor(tvix/eval): Generalize propagation of catchable values 2024-02-08 19:59:21 +00:00
tests refactor(tvix/eval): address clippy lints 2023-12-09 12:58:39 +00:00
.gitignore feat(tvix/eval): Add a proc-macro for defining builtins 2022-11-08 13:42:37 +00:00
Cargo.toml feat(tvix/eval): Add a proc-macro for defining builtins 2022-11-08 13:42:37 +00:00