Commit a81fcf27 authored by Markus Koschany's avatar Markus Koschany

New upstream version 1.0.8

parent e98936cb
......@@ -50,13 +50,15 @@ after_test:
artifacts:
- path: "%DEPLOY_NAME%"
name: wabt
- path: "%DEPLOY_NAME%.sha256"
name: sha256
deploy:
description: 'wabt release'
provider: GitHub
auth_token:
secure: lHQSdycL1FHsFKZZ0RSnYSUtRitYaLb4uxDjCSOpYHnk4gIO/0/DLu4aoU2VvD7Y
artifact: "%DEPLOY_NAME%"
artifact: wabt,sha256
on:
appveyor_repo_tag: true
deploy: true
......@@ -3,3 +3,5 @@
/fuzz-out
/emscripten
*.pyc
.idea/
/cmake-build-debug/
......@@ -26,6 +26,7 @@ option(USE_LSAN "Use leak sanitizer" OFF)
option(USE_UBSAN "Use undefined behavior sanitizer" OFF)
option(CODE_COVERAGE "Build with code coverage enabled" OFF)
option(WITH_EXCEPTIONS "Build with exceptions enabled" OFF)
option(WERROR "Build with warnings as errors" OFF)
if (${CMAKE_C_COMPILER_ID} STREQUAL "Clang")
set(COMPILER_IS_CLANG 1)
......@@ -79,7 +80,11 @@ if (COMPILER_IS_MSVC)
# seems to not like float compare w/ HUGE_VALF; bug?
# disable warnings C4267 and C4244: conversion/truncation from larger to smaller type.
# disable warning C4800: implicit conversion from larger int to bool
add_definitions(-W3 -wd4018 -wd4056 -wd4756 -wd4267 -wd4244 -wd4800 -WX -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
add_definitions(-W3 -wd4018 -wd4056 -wd4756 -wd4267 -wd4244 -wd4800 -D_CRT_SECURE_NO_WARNINGS -D_SCL_SECURE_NO_WARNINGS)
if (WERROR)
add_definitions(-WX)
endif ()
if (NOT WITH_EXCEPTIONS)
# disable exception use in C++ library
......@@ -90,12 +95,16 @@ else ()
# interfaces, etc.
# disable -Wpointer-arith: this is a GCC extension, and doesn't work in MSVC.
add_definitions(
-Wall -Wextra -Werror -Wno-unused-parameter -Wpointer-arith -g
-Wall -Wextra -Wno-unused-parameter -Wpointer-arith -g
-Wuninitialized
)
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11 -Wold-style-cast")
if (WERROR)
add_definitions(-Werror)
endif ()
if (NOT WITH_EXCEPTIONS)
add_definitions(-fno-exceptions)
endif ()
......@@ -408,6 +417,7 @@ if (NOT EMSCRIPTEN)
# wabt-unittests
set(UNITTESTS_SRCS
src/test-binary-reader.cc
src/test-circular-array.cc
src/test-interp.cc
src/test-intrusive-list.cc
......@@ -423,22 +433,22 @@ if (NOT EMSCRIPTEN)
SOURCES ${UNITTESTS_SRCS}
LIBS libgtest ${CMAKE_THREAD_LIBS_INIT}
)
endif ()
if (NOT CMAKE_VERSION VERSION_LESS "3.2")
set(USES_TERMINAL USES_TERMINAL)
endif ()
if (NOT CMAKE_VERSION VERSION_LESS "3.2")
set(USES_TERMINAL USES_TERMINAL)
endif ()
# test running
find_package(PythonInterp 2.7 REQUIRED)
set(RUN_TESTS_PY ${WABT_SOURCE_DIR}/test/run-tests.py)
add_custom_target(run-tests
COMMAND ${CMAKE_BINARY_DIR}/wabt-unittests
COMMAND ${PYTHON_EXECUTABLE} ${RUN_TESTS_PY} --bindir ${CMAKE_BINARY_DIR}
DEPENDS ${WABT_EXECUTABLES}
WORKING_DIRECTORY ${WABT_SOURCE_DIR}
${USES_TERMINAL}
)
# test running
find_package(PythonInterp 2.7 REQUIRED)
set(RUN_TESTS_PY ${WABT_SOURCE_DIR}/test/run-tests.py)
add_custom_target(run-tests
COMMAND ${CMAKE_BINARY_DIR}/wabt-unittests
COMMAND ${PYTHON_EXECUTABLE} ${RUN_TESTS_PY} --bindir ${CMAKE_BINARY_DIR}
DEPENDS ${WABT_EXECUTABLES}
WORKING_DIRECTORY ${WABT_SOURCE_DIR}
${USES_TERMINAL}
)
endif ()
# install
if (BUILD_TOOLS OR BUILD_TESTS)
......
[![Build Status](https://travis-ci.org/WebAssembly/wabt.svg?branch=master)](https://travis-ci.org/WebAssembly/wabt) [![Windows status](https://ci.appveyor.com/api/projects/status/79hqj5l0qggw645d/branch/master?svg=true)](https://ci.appveyor.com/project/WebAssembly/wabt/branch/master)
[![Build Status](https://travis-ci.org/WebAssembly/wabt.svg?branch=master)](https://travis-ci.org/WebAssembly/wabt) [![Windows status](https://ci.appveyor.com/api/projects/status/8vl5jwtk5ch6r84t/branch/master?svg=true)](https://ci.appveyor.com/project/WebAssembly/wabt/branch/master)
# WABT: The WebAssembly Binary Toolkit
WABT (we pronounce it "wabbit") is a suite of tools for WebAssembly, including:
- **wat2wasm**: translate from [WebAssembly text format](https://webassembly.github.io/spec/core/text/index.html) to the [WebAssembly binary format](https://webassembly.github.io/spec/core/binary/index.html)
- **wasm2wat**: the inverse of wat2wasm, translate from the binary format back to the text format (also known as a .wat)
- **wasm-objdump**: print information about a wasm binary. Similiar to objdump.
- **wasm-interp**: decode and run a WebAssembly binary file using a stack-based interpreter
- **wat-desugar**: parse .wat text form as supported by the spec interpreter (s-expressions, flat syntax, or mixed) and print "canonical" flat format
- **wasm2c**: convert a WebAssembly binary file to a C source and header
- [**wat2wasm**](https://webassembly.github.io/wabt/doc/wat2wasm.1.html): translate from [WebAssembly text format](https://webassembly.github.io/spec/core/text/index.html) to the [WebAssembly binary format](https://webassembly.github.io/spec/core/binary/index.html)
- [**wasm2wat**](https://webassembly.github.io/wabt/doc/wasm2wat.1.html): the inverse of wat2wasm, translate from the binary format back to the text format (also known as a .wat)
- [**wasm-objdump**](https://webassembly.github.io/wabt/doc/wasm-objdump.1.html): print information about a wasm binary. Similiar to objdump.
- [**wasm-interp**](https://webassembly.github.io/wabt/doc/wasm-interp.1.html): decode and run a WebAssembly binary file using a stack-based interpreter
- [**wat-desugar**](https://webassembly.github.io/wabt/doc/wat-desugar.1.html): parse .wat text form as supported by the spec interpreter (s-expressions, flat syntax, or mixed) and print "canonical" flat format
- [**wasm2c**](https://webassembly.github.io/wabt/doc/wasm2c.1.html): convert a WebAssembly binary file to a C source and header
- [**wasm-strip**](https://webassembly.github.io/wabt/doc/wasm-strip.1.html): remove sections of a WebAssembly binary file
- [**wasm-validate**](https://webassembly.github.io/wabt/doc/wasm-validate.1.html): validate a file in the WebAssembly binary format
- [**wast2json**](https://webassembly.github.io/wabt/doc/wast2json.1.html): convert a file in the wasm spec test format to a JSON file and associated wasm binary files
- [**wasm-opcodecnt**](https://webassembly.github.io/wabt/doc/wasm-opcodecnt.1.html): count opcode usage for instructions
- [**spectest-interp**](https://webassembly.github.io/wabt/doc/spectest-interp.1.html): read a Spectest JSON file, and run its tests in the interpreter
These tools are intended for use in (or for development of) toolchains or other
systems that want to manipulate WebAssembly files. Unlike the WebAssembly spec
......@@ -24,9 +29,9 @@ target; instead they aim for full fidelity and compliance with the spec (e.g.
Wabt has been compiled to JavaScript via emscripten. Some of the functionality is available in the following demos:
- [index](https://cdn.rawgit.com/WebAssembly/wabt/e0719fe0/demo/index.html)
- [wat2wasm](https://cdn.rawgit.com/WebAssembly/wabt/e0719fe0/demo/wat2wasm/)
- [wasm2wat](https://cdn.rawgit.com/WebAssembly/wabt/e0719fe0/demo/wasm2wat/)
- [index](https://webassembly.github.io/wabt/demo/)
- [wat2wasm](https://webassembly.github.io/wabt/demo/wat2wasm/)
- [wasm2wat](https://webassembly.github.io/wabt/demo/wasm2wat/)
## Cloning
......@@ -53,6 +58,10 @@ $ make
This will build the default version of the tools: a debug build using the Clang
compiler.
**NOTE**: Under the hood, this uses make to run CMake, which then calls make again.
On some systems, this doesn't build properly. If you see these errors, you can build
using CMake directly as described below.
There are many make targets available for other configurations as well. They
are generated from every combination of a compiler, build type and
configuration.
......@@ -71,6 +80,8 @@ $ make clang-debug-lsan
$ make gcc-debug-no-re2c
```
### Building using CMake directly
You can also run CMake yourself, the normal way:
```console
......@@ -155,7 +166,7 @@ You can use `--help` to get additional help:
$ out/wat2wasm --help
```
Or try the [online demo](https://cdn.rawgit.com/WebAssembly/wabt/e0719fe0/demo/wat2wasm/).
Or try the [online demo](https://webassembly.github.io/wabt/demo/wat2wasm/).
## Running wasm2wat
......@@ -175,7 +186,7 @@ You can use `--help` to get additional help:
$ out/wasm2wat --help
```
Or try the [online demo](https://cdn.rawgit.com/WebAssembly/wabt/e0719fe0/demo/wasm2wat/).
Or try the [online demo](https://webassembly.github.io/wabt/demo/wasm2wat/).
## Running wasm-interp
......
......@@ -26,9 +26,9 @@
<header>
<h1>wat2wasm demo</h1>
<p>WebAssembly has a
<a href="http://webassembly.github.io/spec/text/index.html">text format</a>
<a href="https://webassembly.github.io/spec/core/text/index.html">text format</a>
and a
<a href="http://webassembly.github.io/spec/binary/index.html">binary format</a>.
<a href="https://webassembly.github.io/spec/core/binary/index.html">binary format</a>.
This demo converts from the text format to the binary format.
</p>
<p>
......
.Dd $Mdocdate$
.Dt WABT 1
.Os
.Sh NAME
.Nm spectest-interp
.Nd read a Spectest JSON file, and run its tests in the interpreter
.Sh SYNOPSIS
.Nm spectest-interp
.Op options
.Ar file
.Sh DESCRIPTION
.Nm
reads a Spectest JSON file, and runs its tests in the interpreter.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl v , Fl Fl verbose
Use multiple times for more info
.It Fl Fl help
Print this help message
.It Fl Fl enable-exceptions
Enable Experimental exception handling
.It Fl Fl disable-mutable-globals
Disable Import/export mutable globals
.It Fl Fl enable-saturating-float-to-int
Enable Saturating float-to-int operators
.It Fl Fl enable-sign-extension
Enable Sign-extension operators
.It Fl Fl enable-simd
Enable SIMD support
.It Fl Fl enable-threads
Enable Threading support
.It Fl Fl enable-multi-value
Enable Multi-value
.It Fl Fl enable-tail-call
Enable Tail-call support
.It Fl V , Fl Fl value-stack-size=SIZE
Size in elements of the value stack
.It Fl C , Fl Fl call-stack-size=SIZE
Size in elements of the call stack
.It Fl t , Fl Fl trace
Trace execution
.El
.Sh EXAMPLES
Parse test.json and run the spec tests
.Pp
.Dl $ spectest-interp test.json
.Pp
.Sh SEE ALSO
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2c 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1
.Sh BUGS
If you find a bug, please report it at
.br
.Lk https://github.com/WebAssembly/wabt/issues .
......@@ -7,7 +7,7 @@
.Sh SYNOPSIS
.Nm wasm-interp
.Op options
.Ar filename
.Ar file
.Sh DESCRIPTION
.Nm
decodes and runs a WebAssembly binary file using a stack-based interpreter.
......@@ -42,21 +42,33 @@ Run all the exported functions, in order. Useful for testing
Include an importable function named "host.print" for printing to stdout
.El
.Sh EXAMPLES
# parse binary file test.wasm, and type-check it
$ wasm-interp test.wasm
.sp
# parse test.wasm and run all its exported functions
$ wasm-interp test.wasm --run-all-exports
.sp
# parse test.wasm, run the exported functions and trace the output
$ wasm-interp test.wasm --run-all-exports --trace
.sp
# parse test.wasm and run all its exported functions, setting the
# value stack size to 100 elements
$ wasm-interp test.wasm -V 100 --run-all-exports
Parse binary file test.wasm, and type-check it
.Pp
.Dl $ wasm-interp test.wasm
.Pp
Parse test.wasm and run all its exported functions
.Pp
.Dl $ wasm-interp test.wasm --run-all-exports
.Pp
Parse test.wasm, run the exported functions and trace the output
.Pp
.Dl $ wasm-interp test.wasm --run-all-exports --trace
.Pp
Parse test.wasm and run all its exported functions, setting the value stack size to 100 elements
.Pp
.Dl $ wasm-interp test.wasm -V 100 --run-all-exports
.Sh SEE ALSO
wat2wasm(1), wasm2wat(1), wasm-objdump(1), wat-desugar(1), wasm2c(1)
.Xr wasm-objdump 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2c 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
<\fBhttps://github.com/WebAssembly/wabt/issues/\fP>.
.Lk https://github.com/WebAssembly/wabt/issues .
......@@ -7,14 +7,14 @@
.Sh SYNOPSIS
.Nm wasm-objdump
.Op options
.Ar filename
.Ar
.Sh DESCRIPTION
.Nm
prints information about a wasm binary, similiar to objdump.
prints information about a wasm binary, similar to objdump.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl Fl headers
.It Fl h , Fl Fl headers
Print headers
.It Fl j , Fl Fl section=SECTION
Select just one section
......@@ -32,10 +32,19 @@ Show relocations inline with disassembly
Print a help message
.El
.Sh EXAMPLES
$ wasm-objdump test.wasm
.Dl $ wasm-objdump test.wasm
.Sh SEE ALSO
wat2wasm(1), wasm2wat(1), wasm-interp(1), wat-desugar(1), wasm2c(1)
.Xr wasm-interp 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2c 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
<\fBhttps://github.com/WebAssembly/wabt/issues/\fP>.
.Lk https://github.com/WebAssembly/wabt/issues .
.Dd $Mdocdate$
.Dt WABT 1
.Os
.Sh NAME
.Nm wasm-opcodecnt
.Nd count opcode usage for instructions
.Sh SYNOPSIS
.Nm wasm-opcodecnt
.Op options
.Ar
.Sh DESCRIPTION
.Nm
reads a file in the wasm binary format, and counts opcode usage for instructions.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl v , Fl Fl verbose
Use multiple times for more info
.It Fl Fl help
Print a help message
.It Fl o , Fl Fl output=FILENAME
Output file for the opcode counts, by default use stdout
.It Fl c , Fl Fl cutoff=N
Cutoff for reporting counts less than N
.It Fl s , Fl Fl separator=SEPARATOR
Separator text between element and count when reporting counts expected filename argument
.El
.Sh EXAMPLES
Parse binary file test.wasm and write pcode dist file test.dist
.Pp
.Dl $ wasm-opcodecnt test.wasm -o test.dist
.Sh SEE ALSO
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2c 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
.Lk https://github.com/WebAssembly/wabt/issues .
.Dd $Mdocdate$
.Dt WABT 1
.Os
.Sh NAME
.Nm wasm-strip
.Nd remove sections of a WebAssembly binary file
.Sh SYNOPSIS
.Nm wasm-strip
.Op options
.Ar file
.Sh DESCRIPTION
.Nm
removes sections of a WebAssembly binary file.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl Fl help
Print a help message
.El
.Sh EXAMPLES
Remove all custom sections from test.wasm
.Pp
.Dl $ wasm-strip test.wasm
.Sh SEE ALSO
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2c 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
.Lk https://github.com/WebAssembly/wabt/issues .
.Dd $Mdocdate$
.Dt WABT 1
.Os
.Sh NAME
.Nm wasm-validate
.Nd validate a file in the WebAssembly binary format
.Sh SYNOPSIS
.Nm wasm-validate
.Op options
.Ar file
.Sh DESCRIPTION
.Nm
reads a file in the WebAssembly binary format and validates it.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl v , Fl Fl verbose
Use multiple times for more info
.It Fl Fl help
Print this help message
.It Fl Fl enable-exceptions
Enable Experimental exception handling
.It Fl Fl disable-mutable-globals
Disable Import/export mutable globals
.It Fl Fl enable-saturating-float-to-int
Enable Saturating float-to-int operators
.It Fl Fl enable-sign-extension
Enable Sign-extension operators
.It Fl Fl enable-simd
Enable SIMD support
.It Fl Fl enable-threads
Enable Threading support
.It Fl Fl enable-multi-value
Enable Multi-value
.It Fl Fl enable-tail-call
Enable Tail-call support
.It Fl Fl no-debug-names
Ignore debug names in the binary file
.It Fl Fl ignore-custom-section-errors
Ignore errors in custom sections
.El
.Sh EXAMPLES
Validate binary file test.wasm
.Pp
.Dl $ wasm-validate test.wasm
.Sh SEE ALSO
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-strip 1 ,
.Xr wasm2c 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
.Lk https://github.com/WebAssembly/wabt/issues .
......@@ -7,7 +7,7 @@
.Sh SYNOPSIS
.Nm wasm2c
.Op options
.Ar filename
.Ar file
.Sh DESCRIPTION
.Nm
takes a WebAssembly module and produces an equivalent C source and header.
......@@ -36,15 +36,25 @@ Threading support
Ignore debug names in the binary file
.El
.Sh EXAMPLES
# parse binary file test.wasm and write test.c and test.h
$ wasm2c test.wasm -o test.c
.sp
# parse test.wasm, write test.c and test.h, but ignore the debug names,
# if any
$ wasm2c test.wasm --no-debug-names -o test.c
Parse binary file test.wasm and write test.c and test.h
.Pp
.Dl $ wasm2c test.wasm -o test.c
.Pp
Parse test.wasm, write test.c and test.h, but ignore the debug names, if any
.Pp
.Dl $ wasm2c test.wasm --no-debug-names -o test.c
.Sh SEE ALSO
wat2wasm(1), wasm2wat(1), wasm-objdump(1), wasm-interp(1), wat-desugar(1)
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2wat 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
<\fBhttps://github.com/WebAssembly/wabt/issues/\fP>.
.Lk https://github.com/WebAssembly/wabt/issues .
......@@ -7,7 +7,7 @@
.Sh SYNOPSIS
.Nm wasm2wat
.Op options
.Ar filename
.Ar file
.Sh DESCRIPTION
.Nm
does the inverse of wat2wasm, translate from the binary format back to the text format (also known as a .wat).
......@@ -46,14 +46,25 @@ Give auto-generated names to non-named functions, types, etc.
Don't check for invalid modules
.El
.Sh EXAMPLES
# parse binary file test.wasm and write text file test.wast
$ wasm2wat test.wasm -o test.wat
.sp
# parse test.wasm, write test.wat, but ignore the debug names, if any
$ wasm2wat test.wasm --no-debug-names -o test.wat
Parse binary file test.wasm and write text file test.wast
.Pp
.Dl $ wasm2wat test.wasm -o test.wat
.Pp
Parse test.wasm, write test.wat, but ignore the debug names, if any
.Pp
.Dl $ wasm2wat test.wasm --no-debug-names -o test.wat
.Sh SEE ALSO
wat2wasm(1), wasm-objdump(1), wasm-interp(1), wat-desugar(1), wasm2c(1)
.Xr wasm-interp 1 ,
.Xr wasm-objdump 1 ,
.Xr wasm-opcodecnt 1 ,
.Xr wasm-strip 1 ,
.Xr wasm-validate 1 ,
.Xr wasm2c 1 ,
.Xr wast2json 1 ,
.Xr wat-desugar 1 ,
.Xr wat2wasm 1 ,
.Xr spectest-interp 1
.Sh BUGS
If you find a bug, please report it at
.br
<\fBhttps://github.com/WebAssembly/wabt/issues/\fP>.
.Lk https://github.com/WebAssembly/wabt/issues .
.Dd $Mdocdate$
.Dt WABT 1
.Os
.Sh NAME
.Nm wast2json
.Nd convert a file in the wasm spec test format to a JSON file and associated wasm binary files
.Sh SYNOPSIS
.Nm wast2json
.Op options
.Ar file
.Sh DESCRIPTION
.Nm
reads a file in the wasm spec test format, checks it for errors, and converts it to a JSON file and associated wasm binary files.
.Pp
The options are as follows:
.Bl -tag -width Ds
.It Fl v , Fl Fl verbose
Use multiple times for more info
.It Fl Fl help
Print this help message
.It Fl Fl debug-parser
Turn on debugging the parser of wast files
.It Fl Fl enable-exceptions
Enable Experimental exception handling
.It Fl Fl disable-mutable-globals
Disable Import/export mutable globals
.It Fl Fl enable-saturating-float-to-int
Enable Saturating float-to-int operators
.It Fl Fl enable-sign-extension
Enable Sign-extension operators
.It Fl Fl enable-simd
Enable SIMD support
.It Fl Fl enable-threads
Enable Threading support
.It Fl Fl enable-multi-value
Enable Multi-value
.It Fl Fl enable-tail-call
Enable Tail-call support
.It Fl o , Fl Fl output=FILE
output wasm binary file
.It Fl r , Fl Fl relocatable