fix: builtins impl

This commit is contained in:
2025-05-19 08:37:40 +08:00
parent 4124156d52
commit e17c48f2d9
4 changed files with 42 additions and 18 deletions

View File

@@ -52,9 +52,11 @@ pub fn env<'jit, 'vm>(vm: &'vm VM<'jit>) -> Env<'jit, 'vm> {
);
map.insert(vm.new_sym(primop.name), Value::PrimOp(primop));
}
let attrs: Rc<_> = AttrSet::from_inner(map).into();
let mut builtins = Value::AttrSet(attrs);
builtins.push_attr(vm.new_sym("builtins"), Value::Builtins);
let attrs: Rc<_> = Rc::new_cyclic(|weak| {
map.insert(vm.new_sym("builtins"), Value::Builtins(weak.clone()));
AttrSet::from_inner(map)
});
let builtins = Value::AttrSet(attrs);
env.insert(vm.new_sym("builtins"), builtins);
env