Releases: wasm3/wasm3
Releases · wasm3/wasm3
v0.5.0
Awesome updates
- 📝 1500+ commits
- 👥 1000+ followers on Twitter
- 🌟 3'800+ GitHub stargazers
- 🚧 Wasm3 can compile itself using
clang.wasm
- 🔫 PyWasm3 runs DOOM
New in Wasm3 v0.5.0
- Multi-Value support ( #23 by @soundandform, @vshymanskyy )
- Switched to WebAssembly
opam-1.1.1
spec tests by default - General interpreter refinement and bugfix
- Switched to WebAssembly
- Bulk memory ops:
mem.copy
&mem.fill
- Support Apple M1
- Continuous fuzzing via OSS-Fuzz
- Improved security
- Fixed memory leaks, parse errors, etc.
- Stack overflow detection in
EvaluateExpression
- Extended API:
- Globals access:
m3_FindGlobal
,m3_SetGlobal
,m3_GetGlobal
,m3_GetGlobalType
m3_InjectFunction
for dynamic wasm interpretation
- Globals access:
- Option to limit accessible memory:
d_m3MaxLinearMemoryPages
- WASI:
- Improved
wasi_snapshot_preview1
support +wasi_unstable
compatibility layer - Fixed memory layout of several structures, improved security, etc.
- Improved
- Added
wasm3-strace
prebuilt binary for Win64
Python integration
PyWasm3
moved to a separate repo- Added a lot of shiny,
PyGame
-based examples 😁 - Gas Metering support
- Multi-Value support, see example usage
- Added a lot of shiny,
New and updated docs
👉 If you like Wasm3, please give us a GitHub star! 🌟
v0.4.9
- Structured WebAssembly/WASI tracing.
- Check out
d_m3EnableStrace
flag and the demo ofwasm3-strace
utility.
- Check out
- Backtrace recording on
traps
(by @t-veor). - Support exported functions with multiple names (by @atdrendel)
- Support recursive
m3_Call
invocation. I.e. calling exported function from within imported function callback. pywasm3
Python module is released. See some colorful examples 😎- New API:
- Exported function signature introspection:
m3_GetArgCount
,m3_GetRetCount
,m3_GetArgType
,m3_GetRetType
- Introspection of imported functions (see
IM3ImportContext _ctx
argument) - Calls with raw arguments, instead of strings:
m3_CallV
,m3_CallVL
,m3_Call
- Warning:
m3_CallWithArgs
renamed tom3_CallArgv
- Get return values:
m3_GetResultsV
,m3_GetResultsVL
,m3_GetResults
- Get backtrace:
m3_GetBacktrace
- Helpers:
m3_GetFunctionName
,m3_GetModuleName
,m3_GetFunctionModule
,m3_GetModuleRuntime
m3_RunStart
can (optionally) be used to force the dynamic module initialization.
- Exported function signature introspection:
- Build system:
- Add
BUILD_NATIVE
flag (ON by default). - Remove
d_m3LogOutput
,USE_HUMAN_FRIENDLY_ARGS
, and other misleading flags. ESP32-C3
supportRaspberry Pi Pico (RP2040)
support
- Add
- WASI:
- Improved security via
m3ApiCheckMem
- Whence fixes (by @sinkingsugar)
- Cosmopolitan Libc support (by @jart)
- Improved security via
- Fix some memory leaks, parse errors, etc.
- Updated docs
👉 If you like Wasm3, please give us a GitHub star! 🌟
v0.4.8
- Cosmopolitan build, single file that supports 6 operating systems!
Downloadwasm3-cosmopolitan.com
below. - Static/dynamic NoFloat modes (integer-only wasm subset)
- "strace" mode (see
d_m3EnableStrace
) - Update
uvwasi
to version 0.0.11 RawFunction
unified/extended withRawFunctionEx
- Multi-value module parsing
- MinGW support
- Python bindings
- Lots of bugfixes, memory usage improvements, infrastructure updates
v0.4.7
- Critical interpreter improvements, diagnostics - @soundandform
- Reduced native and WASM stack usage #5 - @soundandform
- Eliminated
d_m3MaxNumFunctionArgs
(now dynamic) - @soundandform - Switch to
wasm-core-testsuite
to v1.1 #44 - @vshymanskyy uvwasi
integration - @cjihrig , @vshymanskyyBig-Endian
systems support, including WASI #125 - @vshymanskyy- Full
self-hosting
, including WASI #8 - @vshymanskyy QEMU
-based CI testing on multiple platforms - @vshymanskyy- Allow multi-byte opcodes. Implement saturated conversions proposal - @vshymanskyy, @MaxGraey
- Add C++ wrappers - by @igrr
- Improve iOS example - by @MaxGraey
- Dynamic native functions - by @ltearno
wasm-trace
support - by @vshymanskyy- Added
WasmBoy
andWasmSynth
demos - SparkFun Artemis support
- Major cleanup, improved documentation (recommended devices, diagnostics, ..), etc.
v0.4.6
⚠️ Critical interpreter bugfixes 🪲 - thanks @kgdev and @soundandform- Make the source directory usable as a
CMake
library - @igrr - Make headers compatible with
C++
- Post-MVP feature:
Sign-extension opcodes
- by @abalkin - Add support for
Teensy
devices - Remove
arduino_blink
example (now has a separate repo) - Restructure docs
- Update benchmark results
v0.4.5
- iOS support 📱 - @vshymanskyy
- ESP32: Add
AssemblyScript
,Rust
andTinyGo
blink examples - @vshymanskyy m3.h
now deprecated, please usewasm3.h
m3_GetMemory
API- WASI: return exit code on
proc_exit
call (#59) - @kanaka - Increased
d_m3MaxNumFunctionArgs
to 31 - Many bugfixes 🪲
Wasm3 can now be used as a library for:
C/C++ │ GoLang │ Rust │ Arduino, PlatformIO, Particle
Cheers 😄
Initial release
This is the initial version of wasm3 - by @soundandform and @vshymanskyy