WebAssembly

From Lazarus wiki
Revision as of 11:50, 26 November 2019 by Mattias2 (talk | contribs) (→‎See Also)
Jump to navigationJump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Assemblers

There are different assemblers available, from Wabt and emscripten.org. The expected format is a slightly different between those two:

wat2wasm (Wabt)

Example:

 (module
   (func $add (param $lhs i32) (param $rhs i32) (result i32)
     local.get $lhs
     local.get $rhs
     i32.add
   )
   (export "add" (func $add))
 )

According to the official site "Wabt" is using it's own format of the Wasm. It's slightly different from the official documentation. The most current version of Wabt matches the specs, as well as supports the old syntax.

Online studio, that's using the older version of wabt syntax. https://webassembly.studio/

For example. instead of

local.get

it's using

get_local

wasm-as (emscripten)

The assembler is recommended for the use in a compiler by the WebAssembly.org

 (module
   (func $add (param $lhs i32) (param $rhs i32) (result i32)
     (
     local.get $lhs
     local.get $rhs
     i32.add
     )
   )
   (export "add" (func $add))
 )

Use on the Wiki

WebAssembly is using s-expressions as its textual format (for either Wabt or Emscript) . it's handy to use syntax highlighter for the code and use "lisp" language to set colors.

  <source lang="lisp">
    ;; web assembly goes here
  </source>

See Also