WASM Utilization#

Enabled WASM Features and Proposals#

  1. Core Modules

  2. Bulk Memory

  3. Sign Extension

  4. Mutable Globals

  5. Multi Value

  6. SIMD

  7. Saturating Float to Int Conversions

Deterministic Mode Additional Limitations#

Only following f32.* and f64.* operations are allowed:

  • f32.store, f64.store

  • f32.load, f64.load

  • f32.const, f64.const

  • f32.reinterpret_i32, f64.reinterpret_i64

  • i32.reinterpret_f32, i64.reinterpret_f64

Any other floating point operation is considered non-deterministic and is not allowed in Deterministic Mode.

Non-Deterministic Mode does not have these limitations, allowing all floating point operations.

RAM Consumption#

Each WASM table element imposes gvm-def-consts-value-memory-limiter-consts-table-entry RAM Consumption.

Each WASM Memory costs length of bytes it has. WASM memory.grow instruction which would exceed limit returns \(-1\)