parent
929ac564a5
commit
0409913a26
|
@ -26,7 +26,7 @@ impl ::std::ops::Deref for FuncRef {
|
||||||
|
|
||||||
/// Runtime representation of a function.
|
/// Runtime representation of a function.
|
||||||
///
|
///
|
||||||
/// Functions are the unit of orgianization of code in WebAssembly. Each function takes a sequence of values
|
/// Functions are the unit of organization of code in WebAssembly. Each function takes a sequence of values
|
||||||
/// as parameters and either optionally return a value or trap.
|
/// as parameters and either optionally return a value or trap.
|
||||||
/// Functions can call other function including itself (i.e recursive calls are allowed) and imported functions
|
/// Functions can call other function including itself (i.e recursive calls are allowed) and imported functions
|
||||||
/// (i.e functions defined in another module or by the host environment).
|
/// (i.e functions defined in another module or by the host environment).
|
||||||
|
|
|
@ -35,7 +35,7 @@
|
||||||
//! # Locals
|
//! # Locals
|
||||||
//!
|
//!
|
||||||
//! In a plain stack machine local variables and arguments live on the stack. Instead of
|
//! In a plain stack machine local variables and arguments live on the stack. Instead of
|
||||||
//! accessing predifined locals slots in a plain stack machine locals are addressed relative
|
//! accessing predefined locals slots in a plain stack machine locals are addressed relative
|
||||||
//! to the current stack pointer. Because of this instead of taking an index of a local
|
//! to the current stack pointer. Because of this instead of taking an index of a local
|
||||||
//! in {get,set,tee}_local operations, they take a relative depth as immediate. This works
|
//! in {get,set,tee}_local operations, they take a relative depth as immediate. This works
|
||||||
//! because at each instruction we always know the current stack height.
|
//! because at each instruction we always know the current stack height.
|
||||||
|
@ -59,7 +59,7 @@
|
||||||
//! # Differences from Wasm
|
//! # Differences from Wasm
|
||||||
//!
|
//!
|
||||||
//! - There is no `nop` instruction.
|
//! - There is no `nop` instruction.
|
||||||
//! - All control flow strucutres are flattened to plain gotos.
|
//! - All control flow structures are flattened to plain gotos.
|
||||||
//! - Implicit returns via reaching function scope `End` are replaced with an explicit `return` instruction.
|
//! - Implicit returns via reaching function scope `End` are replaced with an explicit `return` instruction.
|
||||||
//! - Locals live on the value stack now.
|
//! - Locals live on the value stack now.
|
||||||
//! - Load/store instructions doesn't take `align` parameter.
|
//! - Load/store instructions doesn't take `align` parameter.
|
||||||
|
|
|
@ -565,7 +565,7 @@ impl ModuleInstance {
|
||||||
///
|
///
|
||||||
/// - there are no export with a given name or this export is not a function,
|
/// - there are no export with a given name or this export is not a function,
|
||||||
/// - given arguments doesn't match to function signature,
|
/// - given arguments doesn't match to function signature,
|
||||||
/// - trap occured at the execution time,
|
/// - trap occurred at the execution time,
|
||||||
///
|
///
|
||||||
/// # Examples
|
/// # Examples
|
||||||
///
|
///
|
||||||
|
@ -643,7 +643,7 @@ impl ModuleInstance {
|
||||||
///
|
///
|
||||||
/// You can still access not fully initialized instance by calling [`not_started_instance`],
|
/// You can still access not fully initialized instance by calling [`not_started_instance`],
|
||||||
/// but keep in mind, that this is sort of escape hatch: module really might depend on initialization
|
/// but keep in mind, that this is sort of escape hatch: module really might depend on initialization
|
||||||
/// done in `start` function. It's definetely not recommended to call any exports on [`ModuleRef`]
|
/// done in `start` function. It's definitely not recommended to call any exports on [`ModuleRef`]
|
||||||
/// returned by this function.
|
/// returned by this function.
|
||||||
///
|
///
|
||||||
/// If you sure, that there is no `start` function (e.g. because you created it without one), you can
|
/// If you sure, that there is no `start` function (e.g. because you created it without one), you can
|
||||||
|
|
Loading…
Reference in New Issue