Skip to main content

Precompiler

Struct Precompiler 

Source
pub struct Precompiler { /* private fields */ }
Expand description

An engine and compiled-forms handle for storing the forms of installed artifacts.

Implementations§

Source§

impl Precompiler

Source

pub fn new(capsule_writable: Option<&Path>) -> Option<Self>

A precompiler whose forms are withheld, as a launch withholds them, when the murmur home or ~/.murmur/compiled is reachable from capsule_writable, the directory the consuming capsule’s writable root is created in. None for a writer that stages no capsule, such as an install into the global store. None when the engine cannot be built.

Source

pub fn precompile( &self, name: &str, version: &str, payload: &[u8], ) -> Precompiled

Stores the compiled form of the artifact name@version whose payload is payload, unless a usable one is already stored. Never fails, panics or prints: whatever the outcome, a launch that stages payload behaves as it would have without this call, only faster when it returns Precompiled::Compiled or Precompiled::AlreadyStored.

Eligible payloads are those whose packed manifest resolves to wasm execution in any role but capsule: a capsule’s own component is staged under the sha256 of the component, not of its payload. The role itself is left open because staging takes it from the consuming manifest’s entry, not from the packed runtime:.

Source

pub fn precompile_all(&self, items: &[PrecompileItem<'_>]) -> Vec<Precompiled>

precompile for every item, one outcome per item in input order, whatever order the compiles finish in.

Up to std::thread::available_parallelism eligible payloads compile at once, each on a thread of its own outside rayon’s global pool. That pool is where wasmtime compiles one component’s functions in parallel, so a compile’s serial phases never hold a pool thread another compile’s functions are waiting for. Payloads that are not eligible are settled on the calling thread first, so a batch with no WASM payload starts no thread.

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self> ⓘ

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self> ⓘ

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self> ⓘ

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self> ⓘ
where F: FnOnce(&Self) -> bool,

Converts 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
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

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

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self> ⓘ
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self> ⓘ

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more