zio.wasm
Members list
Packages
Type members
Classlikes
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Companion
- object
- Supertypes
- Known subtypes
Attributes
- Companion
- trait
- Supertypes
- Self type
-
CoreIndexSpace.type
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Known subtypes
-
case ITruncFcase I64ExtendI32case IExtend8Scase IExtend16Scase FConvertIcase IReinterpretFcase FReinterpretIcase ITruncSatFShow all
The initial contents of a memory are zero bytes. Data segments can be used to initialize a range of memory from a static vector of bytes.
The initial contents of a memory are zero bytes. Data segments can be used to initialize a range of memory from a static vector of bytes.
The datas component of a module defines a vector of data segments.
Like element segments, data segments have a mode that identifies them as either passive or active. A passive data segment’s contents can be copied into a memory using the memory.init instruction. An active data segment copies its contents into a memory during instantiation, as specified by a memory index and a constant expression defining an offset into that memory.
Data segments are referenced through data indices.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
The initial contents of a table is uninitialized. Element segments can be used to initialize a subrange of a table from a static vector of elements.
The initial contents of a table is uninitialized. Element segments can be used to initialize a subrange of a table from a static vector of elements.
The elems component of a module defines a vector of element segments. Each element segment defines a reference type and a corresponding list of constant element expressions.
Element segments have a mode that identifies them as either passive, active, or declarative. A passive element segment’s elements can be copied to a table using the table.init instruction. An active element segment copies its elements into a table during instantiation, as specified by a table index and a constant expression defining an offset into that table. A declarative element segment is not available at runtime but merely serves to forward-declare references that are formed in code with instructions like ref.func.
Element segments are referenced through element indices.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait ZIOAppDefaulttrait ZIOApptrait ZIOAppVersionSpecificclass Objecttrait Matchableclass AnyShow all
- Self type
-
Example.type
The exports component of a module defines a set of exports that become accessible to the host environment once the module has been instantiated.
The exports component of a module defines a set of exports that become accessible to the host environment once the module has been instantiated.
Each export is labeled by a unique name. Exportable definitions are functions, tables, memories, and globals, which are referenced through a respective descriptor.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
External types classify imports and external values with their respective types.
External types classify imports and external values with their respective types.
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
The funcs component of a module defines a vector of functions with the following structure.
The funcs component of a module defines a vector of functions with the following structure.
Functions are referenced through function indices, starting with the smallest index not referencing a function import.
Value parameters
- body
-
The body is an instruction sequence that upon termination must produce a stack matching the function type’s result type.
- locals
-
The locals declare a vector of mutable local variables and their types. These variables are referenced through local indices in the function’s body. The index of the first local is the smallest index not referencing a parameter.
- typ
-
The type of a function declares its signature by reference to a type defined in the module. The parameters of the function are referenced through 0-based local indices in the function’s body; they are mutable.
Attributes
- Supertypes
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Function types classify the signature of functions, mapping a vector of parameters to a vector of results. They are also used to classify the inputs and outputs of instructions.
Function types classify the signature of functions, mapping a vector of parameters to a vector of results. They are also used to classify the inputs and outputs of instructions.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
The globals component of a module defines a vector of global variables (or globals for short):
The globals component of a module defines a vector of global variables (or globals for short):
Each global stores a single value of the given global type. Its type also specifies whether a global is immutable or mutable. Moreover, each global is initialized with an value given by a constant initializer expression.
Globals are referenced through global indices, starting with the smallest index not referencing a global import.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Global types classify global variables, which hold a value and can either be mutable or immutable.
Global types classify global variables, which hold a value and can either be mutable or immutable.
Attributes
- Supertypes
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Known subtypes
-
case IEqz
Attributes
- Supertypes
- Known subtypes
The imports component of a module defines a set of imports that are required for instantiation.
The imports component of a module defines a set of imports that are required for instantiation.
Each import is labeled by a two-level name space, consisting of a module name and a name for an entity within that module. Importable definitions are functions, tables, memories, and globals. Each import is specified by a descriptor with a respective type that a definition provided during instantiation is required to match.
Every import defines an index in the respective index space. In each index space, the indices of imports go before the first index of any definition contained in the module itself.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Known subtypes
-
trait ComponentIndexSpaceobject Component.typeobject CoreFunc.typeobject CoreGlobal.typeobject CoreInstance.typeobject CoreMem.typeobject CoreTable.typeobject CoreType.typeobject Custom.typeobject Func.typeobject Instance.typeobject Module.typeobject Start.typeobject Type.typeobject Value.typetrait CoreIndexSpaceobject Code.typeobject Custom.typeobject Data.typeobject Elem.typeobject Export.typeobject Func.typeobject Global.typeobject Label.typeobject Local.typeobject Mem.typeobject Start.typeobject Table.typeobject Type.typeShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
- Known subtypes
-
case I32Constcase I64Constcase F32Constcase F64Constcase IEqzcase IEqcase INecase ILtcase IGtcase ILecase IGecase FEqcase FNecase FLtcase FGtcase FLecase FGecase IClzcase ICtzcase IPopCntcase IAddcase ISubcase IMulcase IDivcase IRemcase IAndcase IOrcase IXorcase IShlcase IShrcase IRotLcase IRotRcase FAbscase FNegcase FCeilcase FFloorcase FTrunccase FNearestcase FSqrtcase FAddcase FSubcase FMulcase FDivcase FMincase FMaxcase FCopySigncase ITruncFcase I64ExtendI32case IExtend8Scase IExtend16Scase FConvertIcase IReinterpretFcase FReinterpretIcase ITruncSatFcase VI8x16Shufflecase VSplatcase VI8x16ExtractLanecase VI16x8ExtractLanecase VI32x4ExtractLanecase VI64x2ExtractLanecase VFExtractLanecase VReplaceLanecase VIEqcase VINecase VILtcase VIGtcase VILecase VIGecase VFEqcase VFNecase VFLtcase VFGtcase VFLecase VFGecase VIAbscase VINegcase VFAbscase VFNegcase VFSqrtcase VFCeilcase VFFloorcase VFTrunccase VFNearestcase VIAllTruecase VIBitMaskcase VI8x16NarrowI16x8case VI16x8NarrowI32x4case VI16x8ExtendI8x16case VI32x4ExtendI16x8case VI64x2ExtendI32x4case VIShlcase VIShrcase VIAddcase VISubcase VIMincase VIMaxcase VIAddSatcase VISubSatcase VIMulcase VIAvgrcase VIExtMulcase VIExtAddPairwisecase VFAddcase VFSubcase VFMulcase VFDivcase VFMincase VFMaxcase VFPMincase VFPMaxcase VI32x4TruncSatF32x4case VI32x4ConvertI32x4case RefNullcase RefFunccase Selectcase LocalGetcase LocalSetcase LocalTeecase GlobalGetcase GlobalSetcase TableGetcase TableSetcase TableSizecase TableGrowcase TableFillcase TableCopycase TableInitcase ElemDropcase Loadcase Storecase Load8case Load16case Load32case Store8case Store16case Store32case V128Load8x8case V128Load16x4case V128Load32x2case V128Load32Zerocase V128Load64Zerocase V128LoadSplatcase V128LoadLanecase V128StoreLanecase MemoryInitcase DataDropcase Blockcase Loopcase Ifcase Brcase BrIfcase BrTablecase Callcase CallIndirectShow all
Attributes
- Companion
- object
- Supertypes
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Limits classify the size range of resizeable storage associated with memory types and table types.
Limits classify the size range of resizeable storage associated with memory types and table types.
If no maximum is given, the respective storage can grow to any size.
Attributes
- Supertypes
The mems component of a module defines a vector of linear memories (or memories for short) as described by their memory type:
The mems component of a module defines a vector of linear memories (or memories for short) as described by their memory type:
A memory is a vector of raw uninterpreted bytes. The size in the limits of the memory type specifies the initial size of that memory, while its max, if present, restricts the size to which it can grow later. Both are in units of page size.
Memories can be initialized through data segments.
Memories are referenced through memory indices, starting with the smallest index not referencing a memory import. Most constructs implicitly reference memory index 0.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
Memory types classify linear memories and their size range.
Memory types classify linear memories and their size range.
The limits constrain the minimum and optionally the maximum size of a memory. The limits are given in units of page size.
Attributes
- Supertypes
Instructions in this group are concerned with linear memory.
Instructions in this group are concerned with linear memory.
Attributes
- Supertypes
- Known subtypes
-
case Loadcase Storecase Load8case Load16case Load32case Store8case Store16case Store32case V128Load8x8case V128Load16x4case V128Load32x2case V128Load32Zerocase V128Load64Zerocase V128LoadSplatcase V128LoadLanecase V128StoreLanecase MemoryInitcase DataDropShow all
WebAssembly programs are organized into modules, which are the unit of deployment, loading, and compilation. A module collects definitions for types, functions, tables, memories, and globals. In addition, it can declare imports and exports and provide initialization in the form of data and element segments, or a start function.
WebAssembly programs are organized into modules, which are the unit of deployment, loading, and compilation. A module collects definitions for types, functions, tables, memories, and globals. In addition, it can declare imports and exports and provide initialization in the form of data and element segments, or a start function.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[ComponentIndexSpace]class Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Number types classify numeric values.
Number types classify numeric values.
The types i32 and i64 classify 32 and 64 bit integers, respectively. Integers are not inherently signed or unsigned, their interpretation is determined by individual operations.
The types f32 and f64 classify 32 and 64 bit floating-point data, respectively. They correspond to the respective binary floating-point representations, also known as single and double precision, as defined by the IEEE 754 standard (Section 3.3).
Number types are transparent, meaning that their bit patterns can be observed. Values of number type can be stored in memories.
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Numeric instructions provide basic operations over numeric values of specific type. These operations closely match respective operations available in hardware.
Numeric instructions provide basic operations over numeric values of specific type. These operations closely match respective operations available in hardware.
Attributes
- Supertypes
- Known subtypes
-
trait CvtOpcase ITruncFcase I64ExtendI32case IExtend8Scase IExtend16Scase FConvertIcase IReinterpretFcase FReinterpretIcase ITruncSatFtrait FBinOpcase FSqrtcase FAddcase FSubcase FMulcase FDivcase FMincase FMaxcase FCopySigntrait FRelOpcase FEqcase FNecase FLtcase FGtcase FLecase FGetrait FUnOpcase FAbscase FNegcase FCeilcase FFloorcase FTrunccase FNearesttrait IBinOpcase IAddcase ISubcase IMulcase IDivcase IRemcase IAndcase IOrcase IXorcase IShlcase IShrcase IRotLcase IRotRtrait IRelOpcase IEqcase INecase ILtcase IGtcase ILecase IGetrait ITestOpcase IEqztrait IUnOpcase IClzcase ICtzcase IPopCntcase I32Constcase I64Constcase F32Constcase F64ConstShow all
Reference types classify first-class references to objects in the runtime store.
Reference types classify first-class references to objects in the runtime store.
The type funcref denotes the infinite union of all references to functions, regardless of their function types.
The type externref denotes the infinite union of all references to objects owned by the embedder and that can be passed into WebAssembly under this type.
Reference types are opaque, meaning that neither their size nor their bit pattern can be observed. Values of reference type can be stored in tables.
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Result types classify the result of executing instructions or functions, which is a sequence of values, written with brackets.
Result types classify the result of executing instructions or functions, which is a sequence of values, written with brackets.
Attributes
- Supertypes
Attributes
- Supertypes
- Known subtypes
-
enum Aliasenum Canonclass Componentclass ComponentExportclass ComponentImportenum ComponentInstanceclass ComponentStartenum ComponentTypeenum CoreTypeclass Customenum Instanceclass Customclass Dataclass DataCountclass Elemclass Exportclass FuncCodeclass FuncTypeclass FuncTypeRefclass Globalclass Importclass Memclass Moduleclass Startclass TableShow all
Attributes
- Companion
- object
- Supertypes
- Known subtypes
-
object ComponentAliasSection.typeobject ComponentCanonSection.typeobject ComponentCoreInstanceSection.typeobject ComponentCoreTypeSection.typeobject ComponentCustomSection.typeobject ComponentExportSection.typeobject ComponentImportSection.typeobject ComponentInstanceSection.typeobject ComponentModuleSection.typeobject ComponentSection.typeobject ComponentStartSection.typeobject ComponentTypeSection.typeobject CoreCodeSection.typeobject CoreDataCountSection.typeobject CoreDataSection.typeobject CoreElemSection.typeobject CoreExportSection.typeobject CoreFuncSection.typeobject CoreGlobalSection.typeobject CoreImportSection.typeobject CoreMemSection.typeobject CoreStartSection.typeobject CoreTableSection.typeobject CoreTypeSection.typeobject CustomSection.typeShow all
Attributes
- Companion
- trait
- Supertypes
- Self type
-
SectionType.type
Attributes
- Companion
- object
- Supertypes
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
The start component of a module declares the function index of a start function that is automatically invoked when the module is instantiated, after tables and memories have been initialized.
The start component of a module declares the function index of a start function that is automatically invoked when the module is instantiated, after tables and memories have been initialized.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
The tables component of a module defines a vector of tables described by their table type:
The tables component of a module defines a vector of tables described by their table type:
A table is a vector of opaque values of a particular reference type. The size in the limits of the table type specifies the initial size of that table, while its max, if present, restricts the size to which it can grow later.
Tables can be initialized through element segments.
Tables are referenced through table indices, starting with the smallest index not referencing a table import. Most constructs implicitly reference table index 0.
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalstrait Section[CoreIndexSpace]class Objecttrait Matchableclass AnyShow all
Instructions in this group are concerned with tables table.
Table types classify tables over elements of reference type within a size range.
Table types classify tables over elements of reference type within a size range.
Like memories, tables are constrained by limits for their minimum and optionally maximum size. The limits are given in numbers of entries.
Attributes
- Supertypes
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Attributes
- Supertypes
- Known subtypes
-
case VI16x8ExtendI8x16case VI32x4ExtendI16x8case VI64x2ExtendI32x4case VI32x4TruncSatF32x4case VI32x4ConvertI32x4Show all
Attributes
- Supertypes
- Known subtypes
Attributes
- Supertypes
- Known subtypes
Attributes
- Supertypes
- Known subtypes
Attributes
- Supertypes
- Known subtypes
Attributes
- Supertypes
- Known subtypes
-
case VIAllTrue
Attributes
- Supertypes
- Known subtypes
Attributes
- Supertypes
Attributes
- Supertypes
Attributes
- Supertypes
Attributes
- Supertypes
Variable instructions are concerned with access to local or global variables.
Vector types classify vectors of numeric values processed by vector instructions (also known as SIMD instructions, single instruction multiple data).
Vector types classify vectors of numeric values processed by vector instructions (also known as SIMD instructions, single instruction multiple data).
The type v128 corresponds to a 128 bit vector of packed integer or floating-point data. The packed data can be interpreted as signed or unsigned integers, single or double precision floating-point values, or a single 128 bit type. The interpretation is determined by individual operations.
Vector types, like number types are transparent, meaning that their bit patterns can be observed. Values of vector type can be stored in memories.
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Vector instructions (also known as SIMD instructions, single instruction multiple data) provide basic operations over values of vector type.
Vector instructions (also known as SIMD instructions, single instruction multiple data) provide basic operations over values of vector type.
Attributes
- Supertypes
- Known subtypes
-
case VI8x16Shufflecase VSplatcase VI8x16ExtractLanecase VI16x8ExtractLanecase VI32x4ExtractLanecase VI64x2ExtractLanecase VFExtractLanecase VReplaceLanecase VIEqcase VINecase VILtcase VIGtcase VILecase VIGecase VFEqcase VFNecase VFLtcase VFGtcase VFLecase VFGecase VIAbscase VINegcase VFAbscase VFNegcase VFSqrtcase VFCeilcase VFFloorcase VFTrunccase VFNearestcase VIAllTruecase VIBitMaskcase VI8x16NarrowI16x8case VI16x8NarrowI32x4case VI16x8ExtendI8x16case VI32x4ExtendI16x8case VI64x2ExtendI32x4case VIShlcase VIShrcase VIAddcase VISubcase VIMincase VIMaxcase VIAddSatcase VISubSatcase VIMulcase VIAvgrcase VIExtMulcase VIExtAddPairwisecase VFAddcase VFSubcase VFMulcase VFDivcase VFMincase VFMaxcase VFPMincase VFPMaxcase VI32x4TruncSatF32x4case VI32x4ConvertI32x4trait VCvtOptrait VFBinOptrait VFRelOptrait VFUnOptrait VIBinOptrait VIMinMaxOptrait VIRelOptrait VISatBinOptrait VIShiftOptrait VITestOptrait VIUnOptrait VVBinOptrait VVTernOptrait VVTestOptrait VVUnOpShow all
Attributes
- Supertypes
-
trait Enumtrait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Types
Value types classify the individual values that WebAssembly code can compute with and the values that a variable accepts. They are either number types, vector types, or reference types.
Value types classify the individual values that WebAssembly code can compute with and the values that a variable accepts. They are either number types, vector types, or reference types.