Skip to main content

Crate oxilean_runtime

Crate oxilean_runtime 

Source
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::SharedThunk;
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::SharedState;
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