Difference between revisions of "WebAssembly"
From Free Pascal wiki
Jump to navigationJump to searchLine 25: | Line 25: | ||
===wasm-as (emscripten)=== | ===wasm-as (emscripten)=== | ||
The assembler is recommended for the use in a compiler by the WebAssembly.org | The assembler is recommended for the use in a compiler by the WebAssembly.org | ||
+ | <source lang="lisp"> | ||
(module | (module | ||
(func $add (param $lhs i32) (param $rhs i32) (result i32) | (func $add (param $lhs i32) (param $rhs i32) (result i32) | ||
Line 35: | Line 36: | ||
(export "add" (func $add)) | (export "add" (func $add)) | ||
) | ) | ||
+ | </source> | ||
+ | |||
==Use on the Wiki== | ==Use on the Wiki== | ||
WebAssembly is using s-expressions as its textual format (for either Wabt or Emscript) . | WebAssembly is using s-expressions as its textual format (for either Wabt or Emscript) . |
Revision as of 19:10, 5 September 2019
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
- WebAssembly/JS
- https://webassembly.org/ - the official site
- https://webassembly.github.io/spec/core/text/index.html - text format (S-Expression) specs
- https://webassembly.github.io/spec/core/binary/index.html - binary format specs
- https://rsms.me/wasm-intro - introduction to webassembly