pub enum WorldMode {
OpenWorld,
ClosedWorld,
}Expand description
Stage 1.B: whether Op::CallNative lowers to open-world
dynamic dispatch (the relon_llvm_call_native helper resolved at
runtime via add_global_mapping) or closed-world static
dispatch (a direct call @<host_symbol> to an extern declaration
the LTO co-compile step later links + inlines).
OpenWorld is the default and the only path MCJIT / from_source
ever uses — it must stay reachable verbatim. ClosedWorld is only
selected by the co-compile orchestration (crate::cocompile) when
the full host-fn set is known at emit time (the build.rs /
emit_object path), mirroring cranelift’s static cap_lookup -> fn_ptr arm rather than its _dynamic helper arm.
Variants§
OpenWorld
Dynamic dispatch through relon_llvm_call_native. Default so
the existing MCJIT / from_source path is untouched.
ClosedWorld
Static call @<host_symbol> to an external declaration. The
host bitcode is linked in + inlined by the LTO co-compile pass.
Trait Implementations§
impl Copy for WorldMode
impl Eq for WorldMode
impl StructuralPartialEq for WorldMode
Auto Trait Implementations§
impl Freeze for WorldMode
impl RefUnwindSafe for WorldMode
impl Send for WorldMode
impl Sync for WorldMode
impl Unpin for WorldMode
impl UnsafeUnpin for WorldMode
impl UnwindSafe for WorldMode
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more