Expand description
§OxiLean Runtime – Memory Management, Closures, I/O, and Scheduling
This crate implements the runtime system for OxiLean. It provides:
- Tagged pointer object system (object) - Core runtime value representation
- Reference counting (rc) - Non-atomic and atomic RC with elision hints
- Arena allocators (arena) - Bump allocation and region-based memory
- Closure representation (closure) - Flat closures and partial application
- I/O operations (io_runtime) - File, console, and string I/O
- Task scheduler (scheduler) - Work-stealing parallel evaluation
- Lazy evaluation with memoization (lazy_eval) - Call-by-need thunks and memo caches
- Tail call optimization (tco) - Trampoline loop and TCO analysis
- Rich evaluation errors (eval_error) - Structured errors with source spans and hints
Re-exports§
pub use arena::ArenaIdx;pub use arena::ArenaOffset;pub use arena::ArenaPool;pub use arena::BumpArena;pub use arena::GenIdx;pub use arena::GenerationalArena;pub use arena::Region;pub use arena::RegionManager;pub use arena::TypedArena;pub use closure::CallConvention;pub use closure::CallStack;pub use closure::Closure;pub use closure::ClosureBuilder;pub use closure::FnPtr;pub use closure::FunctionEntry;pub use closure::FunctionTable;pub use closure::MutualRecGroup;pub use closure::Pap;pub use closure::PapResult;pub use closure::StackFrame;pub use eval_error::EvalError;pub use eval_error::EvalErrorBuilder;pub use eval_error::EvalErrorKind;pub use eval_error::EvalFrame;pub use eval_error::RuntimeError;pub use eval_error::SourceSpan;pub use io_runtime::ConsoleOps;pub use io_runtime::FileOps;pub use io_runtime::IoError;pub use io_runtime::IoErrorKind;pub use io_runtime::IoExecutor;pub use io_runtime::IoResult;pub use io_runtime::IoRuntime;pub use io_runtime::IoValue;pub use io_runtime::StringFormatter;pub use lazy_eval::LazyList;pub use lazy_eval::MemoFn;pub use lazy_eval::Thunk;pub use lazy_eval::ThunkCache;pub use object::ArrayOps;pub use object::BoxInto;pub use object::FieldAccess;pub use object::HeapObject;pub use object::ObjectHeader;pub use object::ObjectStore;pub use object::ObjectTable;pub use object::RtArith;pub use object::RtObject;pub use object::StringOps;pub use object::ThunkOps;pub use object::TypeInfo;pub use object::TypeRegistry;pub use object::TypeTag;pub use object::UnboxFrom;pub use rc::ArcWeak;pub use rc::BorrowFlag;pub use rc::BorrowState;pub use rc::CowBox;pub use rc::Rc;pub use rc::RcElisionAnalysis;pub use rc::RcElisionHint;pub use rc::RcManager;pub use rc::RcPolicy;pub use rc::RcStats;pub use rc::RtArc;pub use rc::Weak;pub use scheduler::LoadBalanceStrategy;pub use scheduler::LoadBalancer;pub use scheduler::ParallelEval;pub use scheduler::Scheduler;pub use scheduler::SchedulerConfig;pub use scheduler::Task;pub use scheduler::TaskId;pub use scheduler::TaskPriority;pub use scheduler::TaskState;pub use scheduler::WorkStealingDeque;pub use scheduler::Worker;pub use tco::run_tco_interpreter;pub use tco::trampoline;pub use tco::trampoline_instrumented;pub use tco::RecursiveStep;pub use tco::StepResult;pub use tco::TailCall;pub use tco::TailCallCounter;pub use tco::TailCallDetector;pub use tco::TailPosition;
Modules§
- arena
- Auto-generated module structure
- bytecode_
interp - Auto-generated module structure
- closure
- Auto-generated module structure
- eval_
error - Auto-generated module structure
- gc_
strategies - Auto-generated module structure
- io_
runtime - Auto-generated module structure
- lazy_
eval - Auto-generated module structure
- memory_
pool - Auto-generated module structure
- object
- Auto-generated module structure
- profiler
- Auto-generated module structure
- rc
- Auto-generated module structure
- scheduler
- Auto-generated module structure
- string_
pool - Auto-generated module structure
- tco
- Auto-generated module structure
- wasm_
runtime - Auto-generated module structure