pub struct RuntimeModuleBuilder { /* private fields */ }Expand description
Builds a complete runtime support module for a given LCNF module.
Collects all the runtime operations needed (RC, alloc, closures, strings) and emits them as a unit.
Implementations§
Source§impl RuntimeModuleBuilder
impl RuntimeModuleBuilder
Sourcepub fn new(config: RuntimeConfig) -> Self
pub fn new(config: RuntimeConfig) -> Self
Create a new runtime module builder.
Sourcepub fn emit_ctor(&mut self, tag: u32, num_objs: usize, scalar_sz: usize)
pub fn emit_ctor(&mut self, tag: u32, num_objs: usize, scalar_sz: usize)
Emit a constructor allocation.
Sourcepub fn emit_closure(&mut self, fn_name: &str, arity: usize, env: &[Register])
pub fn emit_closure(&mut self, fn_name: &str, arity: usize, env: &[Register])
Emit a closure allocation.
Sourcepub fn emit_nat_add(&mut self, lhs: Register, rhs: Register)
pub fn emit_nat_add(&mut self, lhs: Register, rhs: Register)
Emit a BigNat addition.
Sourcepub fn emit_str_append(&mut self, lhs: Register, rhs: Register)
pub fn emit_str_append(&mut self, lhs: Register, rhs: Register)
Emit a string append.
Sourcepub fn instructions(&self) -> &[NativeInst]
pub fn instructions(&self) -> &[NativeInst]
Get all emitted instructions.
Sourcepub fn instruction_count(&self) -> usize
pub fn instruction_count(&self) -> usize
Total number of emitted instructions.
Sourcepub fn call_count(&self) -> usize
pub fn call_count(&self) -> usize
Count call instructions.
Sourcepub fn comment_count(&self) -> usize
pub fn comment_count(&self) -> usize
Count comment instructions.
Auto Trait Implementations§
impl Freeze for RuntimeModuleBuilder
impl RefUnwindSafe for RuntimeModuleBuilder
impl Send for RuntimeModuleBuilder
impl Sync for RuntimeModuleBuilder
impl Unpin for RuntimeModuleBuilder
impl UnsafeUnpin for RuntimeModuleBuilder
impl UnwindSafe for RuntimeModuleBuilder
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more