Struct arret_compiler::EvalHirCtx[][src]

pub struct EvalHirCtx { /* fields omitted */ }

Implementations

impl EvalHirCtx[src]

pub fn new(optimising: bool) -> EvalHirCtx[src]

pub fn rust_fun_to_jit_boxed(&mut self, rust_fun: Arc<Fun>) -> Gc<FunThunk>[src]

pub fn register_rust_fun_with_jit(&mut self, rust_fun: &Fun)[src]

Ensures the passed RustFun is known by the JIT

This can be called multiple times with the same Rust fun. Calling it with a fun that’s never used by the JIT is harmless

pub fn rust_fun_to_thunk_reg(
    &mut self,
    b: &mut Builder,
    span: Span,
    rust_fun: &Fun
) -> BuiltReg
[src]

pub fn rust_fun_to_callback_reg(
    &mut self,
    b: &mut Builder,
    span: Span,
    rust_fun: &Fun,
    entry_point_abi: &CallbackEntryPointAbiType
) -> BuiltReg
[src]

pub fn arret_fun_to_jit_boxed(
    &mut self,
    arret_fun: &ArretFun
) -> Option<Gc<FunThunk>>
[src]

pub fn evaled_record_class_for_cons(
    &mut self,
    record_cons: &ArcId<Cons>
) -> &EvaledRecordClass
[src]

pub fn cons_for_jit_record_class_id(
    &self,
    record_class_id: RecordClassId
) -> Option<&ArcId<Cons>>
[src]

pub fn arret_fun_to_thunk_reg(
    &mut self,
    b: &mut Builder,
    span: Span,
    arret_fun: &ArretFun
) -> BuiltReg
[src]

pub fn arret_fun_to_callback_reg(
    &mut self,
    b: &mut Builder,
    span: Span,
    arret_fun: &ArretFun,
    entry_point_abi: &CallbackEntryPointAbiType
) -> BuiltReg
[src]

pub fn thunk_reg_to_callback_reg(
    &mut self,
    b: &mut Builder,
    span: Span,
    thunk_reg_abi_type: &BoxedAbiType,
    thunk_reg: BuiltReg,
    entry_point_abi: &CallbackEntryPointAbiType
) -> BuiltReg
[src]

pub fn jit_boxed_to_fun_value(
    &self,
    boxed_thunk: Gc<FunThunk>
) -> Option<&Value>
[src]

pub fn visit_module_defs<'a>(
    &mut self,
    module_id: ModuleId,
    defs: impl IntoIterator<Item = &'a Def<Inferred>>
) -> Result<(), Error>
[src]

pub fn consume_module_defs(
    &mut self,
    module_id: ModuleId,
    defs: impl IntoIterator<Item = Def<Inferred>>
) -> Result<(), Error>
[src]

pub fn should_collect(&self) -> bool[src]

pub fn collect_garbage(&mut self)[src]

Collect any boxed values that are no longer reachable

pub fn eval_expr(
    &mut self,
    fcx: &mut FunCtx<'_>,
    b: &mut Option<Builder>,
    expr: &Expr<Inferred>
) -> Result<Value, Error>
[src]

pub fn consume_expr(
    &mut self,
    fcx: &mut FunCtx<'_>,
    b: &mut Option<Builder>,
    expr: Expr<Inferred>
) -> Result<Value, Error>
[src]

pub fn eval_main_fun(&mut self, main_export_id: ExportId) -> Result<(), Error>[src]

Evaluates the main function of a program

pub fn into_built_program(
    self,
    main_export_id: ExportId
) -> Result<BuiltProgram, Error>
[src]

Builds the main function of the program

pub fn value_to_const(&mut self, value: &Value) -> Option<Gc<Any>>[src]

Trait Implementations

impl AsHeap for EvalHirCtx[src]

impl AsInterner for EvalHirCtx[src]

Auto Trait Implementations

impl !RefUnwindSafe for EvalHirCtx

impl !Send for EvalHirCtx

impl !Sync for EvalHirCtx

impl Unpin for EvalHirCtx

impl UnwindSafe for EvalHirCtx

Blanket Implementations

impl<T> Any for T where
    T: 'static + ?Sized
[src]

impl<T> Borrow<T> for T where
    T: ?Sized
[src]

impl<T> BorrowMut<T> for T where
    T: ?Sized
[src]

impl<T> From<T> for T[src]

impl<T, U> Into<U> for T where
    U: From<T>, 
[src]

impl<T, U> TryFrom<U> for T where
    U: Into<T>, 
[src]

type Error = Infallible

The type returned in the event of a conversion error.

impl<T, U> TryInto<U> for T where
    U: TryFrom<T>, 
[src]

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.