feat(tvix/eval): Add a proc-macro for defining builtins
Add a single new proc macro to a new proc-macro crate, `tvix-eval-proc-macros` for defining an inline module containing nix builtins, and automatically generating a function within that module which returns a list of those builtins as `tvix_eval::value::Builtin`. Change-Id: Ie4afae438914d2af93d15637151a49b4c68aa352 Reviewed-on: https://cl.tvl.fyi/c/depot/+/7198 Reviewed-by: tazjin <tazjin@tvl.su> Reviewed-by: Adam Joseph <adam@westernsemico.com> Tested-by: BuildkiteCI
This commit is contained in:
parent
cf82a545eb
commit
645d0c06e5
9 changed files with 1133 additions and 3 deletions
|
@ -27,12 +27,12 @@ use std::rc::Rc;
|
|||
// Re-export the public interface used by other crates.
|
||||
pub use crate::builtins::global_builtins;
|
||||
pub use crate::compiler::{compile, prepare_globals};
|
||||
pub use crate::errors::EvalResult;
|
||||
pub use crate::errors::{ErrorKind, EvalResult};
|
||||
pub use crate::eval::{interpret, Options};
|
||||
pub use crate::pretty_ast::pretty_print_expr;
|
||||
pub use crate::source::SourceCode;
|
||||
pub use crate::value::Value;
|
||||
pub use crate::vm::run_lambda;
|
||||
pub use crate::value::{Builtin, Value};
|
||||
pub use crate::vm::{run_lambda, VM};
|
||||
|
||||
// TODO: use Rc::unwrap_or_clone once it is stabilised.
|
||||
// https://doc.rust-lang.org/std/rc/struct.Rc.html#method.unwrap_or_clone
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue