Files
wasmtime/RELEASES.md
Alex Crichton bd374fd6fc Add Wasmtime-specific C API functions to return errors (#1467)
* Add Wasmtime-specific C API functions to return errors

This commit adds new `wasmtime_*` symbols to the C API, many of which
mirror the existing counterparts in the `wasm.h` header. These APIs are
enhanced in a number of respects:

* Detailed error information is now available through a
  `wasmtime_error_t`. Currently this only exposes one function which is
  to extract a string version of the error.

* There is a distinction now between traps and errors during
  instantiation and function calling. Traps only happen if wasm traps,
  and errors can happen for things like runtime type errors when
  interacting with the API.

* APIs have improved safety with respect to embedders where the lengths
  of arrays are now taken as explicit parameters rather than assumed
  from other parameters.

* Handle trap updates

* Update C examples

* Fix memory.c compile on MSVC

* Update test assertions

* Refactor C slightly

* Bare-bones .NET update

* Remove bogus nul handling
2020-04-06 15:13:06 -05:00

6.4 KiB

Wasmtime Releases


0.16.0

Unreleased

Added

  • The C API has a number of new wasmtime_* functions which return error objects to get detailed error information when an API fails. #TODO

Changed

  • The Func::call API has changed its error type from Trap to anyhow::Error to distinguish between wasm traps and runtiem violations (like the wrong number of parameters). #TODO

  • A number of wasmtime_linker_* and wasmtime_config_* C APIs have new type signatures which reflect returning errors. #TODO


0.15.0

Unreleased


0.14.0

Fixed

Fix build errors in wasi-common on Windows.


0.13.0

Released 2020-03-24.

Added

  • 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 with Func::new or Func::wrap which allows easily implementing methods which take a pointer into wasm memory. Note that this only works for accessing the caller's Memory 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

Changed

  • The wast and wasm2obj standalone binaries have been removed. They're available via the wasmtime wast and wasmtime wasm2obj subcommands. #1372

  • The wasi-common crate now uses the new wiggle 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 one Func::wrap API. #1363

  • The Callable trait has been removed and now Func::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


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::getN functions have been added to the wasmtime 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

Changed

  • 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

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 wasmtime Python package. #971