* Moves CodeMemory, VMInterrupts and SignatureRegistry from Compiler * CompiledModule holds CodeMemory and GdbJitImageRegistration * Store keeps track of its JIT code * Makes "jit_int.rs" stuff Send+Sync * Adds the threads example.
9.9 KiB
Wasmtime Releases
0.17.0
Unreleased
Added
-
The Commands and Reactors ABI is now supported in the Rust API.
Linker::moduleloads a module and automatically handles Commands and Reactors semantics.
The Table::grow function now returns the previous table size, making it consistent
with the table.grow instruction.
New Wasmtime-specific C APIs for working with tables were added which provide more
detailed error information and which make growing a table more consistent with the
table.grow instruction as well.
The C API now includes support for enabling logging in Wasmtime.
Changed
The WASI proc_exit function no longer exits the host process. It now unwinds the
callstack back to the wasm entrypoint, and the exit value is available from the
Trap::i32_exit_status method.
The WebAssembly multi-value proposal is now enabled by default.
The Rust API does not require a store provided during Module::new operation. The Module can be send accross threads and instantiate for a specific store. The Instance::new now requires the store.
0.16.0
Released 2020-04-29.
Added
-
The
Instancestruct has new accessors,get_func,get_table,get_memory, andget_globalfor quickly looking up exported functions, tables, memories, and globals by name. #1524 -
The C API has a number of new
wasmtime_*functions which return error objects to get detailed error information when an API fails. #1467 -
Users now have fine-grained control over creation of instances of
Memorywith a newMemoryCreatortrait. #1400 -
Go bindings for Wasmtime are now available. #1481
-
APIs for looking up values in a
Linkerhave been added. #1480 -
Preliminary support for AArch64, also known as ARM64. #1581
Changed
-
Instance::exportsnow returnsExportobjects which contain thenames of the exports in addition to theirExterndefinitions, so it's no longer necessary to useModule::exportsto obtain the export names. #1524 -
The
Func::callAPI has changed its error type fromTraptoanyhow::Errorto distinguish between wasm traps and runtime violations (like the wrong number of parameters). #1467 -
A number of
wasmtime_linker_*andwasmtime_config_*C APIs have new type signatures which reflect returning errors. #1467 -
Bindings for .NET have moved to https://github.com/bytecodealliance/wasmtime-dotnet. #1477
-
Passing too many imports to
Instance::newis now considered an error. #1478
Fixed
- Spurious segfaults due to out-of-stack conditions when handling signals have been fixed. #1315
0.15.0
Released 2020-03-31.
Fixed
Full release produced for all artifacts to account for hiccups in 0.13.0 and 0.14.0.
0.14.0
This version ended up not getting a full release
Fixed
Fix build errors in wasi-common on Windows.
0.13.0
Released 2020-03-24.
Added
-
Lots of documentation of
wasmtimehas been updated. Be sure to check out the book and API documentation! -
All wasmtime example programs are now in a top-level
examplesdirectory and are available in both C and Rust. #1286 -
A
wasmtime::Linkertype was added to conveniently link link wasm modules together and create instances that reference one another. #1384 -
Wasmtime now has "jitdump" support enabled by default which allows profiling wasm code on linux. #1310
-
The
wasmtime::Callertype now exists as a first-class way to access the caller's exports, namely memory, when implementing host APIs. This can be the first argument of functions defined withFunc::neworFunc::wrapwhich allows easily implementing methods which take a pointer into wasm memory. Note that this only works for accessing the caller'sMemoryfor now and it must be exported. This will eventually be replaced with a more general-purpose mechanism like interface types. #1290 -
The bulk memory proposal has been fully implemented. #1264 #976
-
Virtual file support has been added to
wasi-common. #701 -
The C API has been enhanced with a Wasmtime-specific
wasmtime_wat2wasmto parse*.watfiles via the C API. #1206
Changed
-
The
wastandwasm2objstandalone binaries have been removed. They're available via thewasmtime wastandwasmtime wasm2objsubcommands. #1372 -
The
wasi-commoncrate now uses the newwigglecrate to auto-generate a trait which is implemented for the current wasi snapshot. #1202 -
Wasmtime no longer has a dependency on a C++ compiler. #1365
-
The
Func::wrapNAPIs have been consolidated into oneFunc::wrapAPI. #1363 -
The
Callabletrait has been removed and nowFunc::newtakes a closure directly. #1363 -
The Cranelift repository has been merged into the Wasmtime repository.
-
Support for interface types has been temporarily removed. #1292
-
The exit code of the
wasmtimeCLI has changed if the program traps. #1274 -
The
wasmtimeCLI now logs to stderr by default and the-dflag has been renamed to--log-to-file. #1266 -
Values cannot cross
Storeobjects, meaning you can't instantiate a module with values from different stores nor pass values from different stores into methods. #1016
0.12.0
Released 2020-02-26.
Added
-
Support for the WebAssembly text annotations proposal has been added. #998
-
An initial C API for instantiating WASI modules has been added. #977
-
A new suite of
Func::getNfunctions have been added to thewasmtimeAPI to call statically-known function signatures in a highly optimized fashion. #955 -
Initial support for profiling JIT code through perf jitdump has been added. #360
-
More CLI flags corresponding to proposed WebAssembly features have been added. #917
Changed
-
The
wasmtimeCLI as well as embedding API will optimize WebAssembly code by default now. #973 #988 -
The
verifierpass in Cranelift is now no longer run by default when using the embedding API. #882
Fixed
-
Code caching now accurately accounts for optimization levels, ensuring that if you ask for optimized code you're not accidentally handed unoptimized code from the cache. #974
-
Automated releases for tags should be up and running again, along with automatic publication of the
wasmtimePython package. #971