struct RootedVM<'brw, 'env, 'rt> {
pc: ProgramCounter,
func: Rt<Slot<&'rt ByteFn>>,
handlers: Rt<Vec<Handler<'rt>>>,
env: &'brw mut Rt<Env<'env>>,
}
Expand description
Automatically derived from VM via #[derive(Trace)]
Fields§
§pc: ProgramCounter
§func: Rt<Slot<&'rt ByteFn>>
§handlers: Rt<Vec<Handler<'rt>>>
§env: &'brw mut Rt<Env<'env>>
Implementations§
Source§impl<'ob> RootedVM<'_, '_, '_>
impl<'ob> RootedVM<'_, '_, '_>
fn varref(&mut self, idx: u16, cx: &'ob Context<'_>) -> Result<()>
fn varset(&mut self, idx: usize, cx: &Context<'_>) -> Result<()>
fn varbind(&mut self, idx: u16, cx: &'ob Context<'_>)
fn unbind(&mut self, idx: u16, cx: &'ob Context<'_>)
fn get_const(&self, i: usize, cx: &'ob Context<'_>) -> Gc<ObjectType<'ob>>
fn set_current_frame(&mut self, f: &ByteFn, offset: usize)
fn unwind(&mut self, idx: usize, cx: &'ob Context<'_>)
fn debug_enabled() -> bool
Sourcefn prepare_lisp_args(
&mut self,
func: &ByteFn,
arg_cnt: usize,
name: &str,
cx: &'ob Context<'_>,
) -> Result<()>
fn prepare_lisp_args( &mut self, func: &ByteFn, arg_cnt: usize, name: &str, cx: &'ob Context<'_>, ) -> Result<()>
Prepare the arguments for lisp function call. This means filling all
needed stack slots with nil
and moving all the &rest
arguments into
a list.
fn call( &mut self, arg_cnt: u16, cx: &'ob mut Context<'_>, ) -> Result<(), EvalError>
fn run( &mut self, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
Sourcefn execute_bytecode(
&mut self,
cx: &'ob mut Context<'_>,
) -> Result<Gc<ObjectType<'ob>>, EvalError>
fn execute_bytecode( &mut self, cx: &'ob mut Context<'_>, ) -> Result<Gc<ObjectType<'ob>>, EvalError>
The main bytecode execution loop.
Auto Trait Implementations§
impl<'brw, 'env, 'rt> !Freeze for RootedVM<'brw, 'env, 'rt>
impl<'brw, 'env, 'rt> !RefUnwindSafe for RootedVM<'brw, 'env, 'rt>
impl<'brw, 'env, 'rt> !Send for RootedVM<'brw, 'env, 'rt>
impl<'brw, 'env, 'rt> !Sync for RootedVM<'brw, 'env, 'rt>
impl<'brw, 'env, 'rt> !Unpin for RootedVM<'brw, 'env, 'rt>
impl<'brw, 'env, 'rt> !UnwindSafe for RootedVM<'brw, 'env, 'rt>
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