1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! The clojurust runtime: environment, builtins, tree walker, and tiered evaluation.
//!
//! This package is the merge of four formerly separate packages. Each is now a
//! module:
//!
//! | Module | Former package | Responsibility |
//! |---|---|---|
//! | [`env`] | `cljrs-env` | Namespaces, vars, dynamic bindings, GC roots, loader |
//! | [`builtins`] | `cljrs-builtins` | Native `clojure.core` functions and bootstrap source |
//! | [`interp`] | `cljrs-interp` | Tree-walking interpreter, special forms, macros |
//! | [`tiered`] | `cljrs-eval` | IR lowering, tier-1 IR interpreter, JIT dispatch state |
//!
//! The four former packages remain as thin re-export shims for one migration
//! stage; new code should depend on `cljrs-runtime` and use these module paths.
//!
//! Construction goes through one path — [`Runtime::builder`] — and the
//! execution mode it selects ([`ExecutionMode`]) is what decides whether a
//! call tree-walks, runs lowered IR, or jumps to JIT-compiled native code.
// EvalError::Thrown wraps a full Value; boxing would require pervasive changes.
// Namespace/GlobalEnv use Mutex<HashMap<Arc<str>, GcPtr<Var>>> — intentionally verbose for clarity.
/// Diagnostic logging configuration (native only; see the module docs).
pub use ;
pub use ;