sphinx/builtins.rs
1use crate::runtime::Gc;
2use crate::runtime::module::NamespaceEnv;
3
4mod iter;
5mod primitive;
6mod misc;
7
8use iter::create_iter_builtins;
9use primitive::{create_primitive_ctors, create_metamethod_builtins};
10use misc::create_misc_builtins;
11
12// thread_local! {
13// pub static PRELUDE: Gc<NamespaceEnv> = {
14// let prelude = create_prelude();
15// prelude
16// }
17// }
18
19
20/// Create an Env containing the core builtins
21/// Fairly expensive, should be used sparingly
22pub fn create_prelude() -> Gc<NamespaceEnv> {
23 let env = NamespaceEnv::new();
24
25 create_metamethod_builtins(env);
26 create_primitive_ctors(env);
27 create_iter_builtins(env);
28 create_misc_builtins(env);
29
30 env
31}