Unreleased.
Released 2020-06-01.
-
The Commands and Reactors ABI is now supported in the Rust API.
Linker::module
loads 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.
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.
Released 2020-04-29.
-
The
Instance
struct has new accessors,get_func
,get_table
,get_memory
, andget_global
for 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
Memory
with a newMemoryCreator
trait. #1400 -
Go bindings for Wasmtime are now available. #1481
-
APIs for looking up values in a
Linker
have been added. #1480 -
Preliminary support for AArch64, also known as ARM64. #1581
-
Instance::exports
now returnsExport
objects which contain thename
s of the exports in addition to theirExtern
definitions, so it's no longer necessary to useModule::exports
to obtain the export names. #1524 -
The
Func::call
API has changed its error type fromTrap
toanyhow::Error
to 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::new
is now considered an error. #1478
- Spurious segfaults due to out-of-stack conditions when handling signals have been fixed. #1315
Released 2020-03-31.
Full release produced for all artifacts to account for hiccups in 0.13.0 and 0.14.0.
This version ended up not getting a full release
Fix build errors in wasi-common on Windows.
Released 2020-03-24.
-
Lots of documentation of
wasmtime
has been updated. Be sure to check out the book and API documentation! -
All wasmtime example programs are now in a top-level
examples
directory and are available in both C and Rust. #1286 -
A
wasmtime::Linker
type 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::Caller
type 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::new
orFunc::wrap
which allows easily implementing methods which take a pointer into wasm memory. Note that this only works for accessing the caller'sMemory
for 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_wat2wasm
to parse*.wat
files via the C API. #1206
-
The
wast
andwasm2obj
standalone binaries have been removed. They're available via thewasmtime wast
andwasmtime wasm2obj
subcommands. #1372 -
The
wasi-common
crate now uses the newwiggle
crate 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::wrapN
APIs have been consolidated into oneFunc::wrap
API. #1363 -
The
Callable
trait has been removed and nowFunc::new
takes 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
wasmtime
CLI has changed if the program traps. #1274 -
The
wasmtime
CLI now logs to stderr by default and the-d
flag has been renamed to--log-to-file
. #1266 -
Values cannot cross
Store
objects, meaning you can't instantiate a module with values from different stores nor pass values from different stores into methods. #1016
Released 2020-02-26.
-
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::getN
functions have been added to thewasmtime
API 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
-
The
wasmtime
CLI as well as embedding API will optimize WebAssembly code by default now. #973 #988 -
The
verifier
pass in Cranelift is now no longer run by default when using the embedding API. #882
-
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
wasmtime
Python package. #971