Skip to content

v1.5.0

Compare
Choose a tag to compare
@github-actions github-actions released this 24 Aug 08:27
· 560 commits to main since this release
9e4b8ea

Hey, do you know what time is it? ⏰ Yes! Time for another wazero release! 🎉

Notably, as previously announced, this release drops support to Go 1.18. But you must be here for the goodies! Don't you worry, we have you covered: there's a whole lot of updates especially for you Emscripten fanatics!

Time flies when you are having fun: WasmCon 2023 is only a few days away (5-6 September). Remember, our very own @evacchi will be there to talk about wazero, so if you are going to be there, don't be shy and say hi!

Improved Emscripten support

Contributor @jerbob92 together with @mathetake brought quite some improvements to our Emscripten support.

  • There is now improved support to longjmp, especially useful to exception handling (#1611).
  • We are now allowing a host function to make a nested invocation to another host function (#1626, #1636).
  • We are exposing some new experimental APIs (#1637) to support a go implementation of Emscripten's Embind.

What is Embind? In @jerbob92's words:

Embind allows developers to write C++ code and directly interact with that code from Javascript in the browser. It also allows to call Javascript methods directly from C++. [...] [The Wazero implementation] is trying to be a 1-on-1 implementation of the JS version in Emscripten so that the same codebase can be used for both Web and WASI WebAssembly builds.

Embind support lives in its own module and you can check it out at jerbob92/wazero-emscripten-embind!

Go Version Upgrade

As you may already know, we follow the Go support policy: i.e., we support each major Go release until there are two newer major releases: in v1.4.0 we added support to Go 1.21, while keeping support to Go 1.18 for a little while more. The time has come to say goodbye to Go 1.18: it's been an honor and a privilege, sir. 🫡

@evacchi (#1622) and @ncruces (#1620) upgraded the code paths that were relying on old workarounds or simply pointed to an older version.

Other Contributions

  • While working on Emscripten support, @jerbob92 discovered that looking up and calling a non-existing function may SIGILL on some platforms (#1621). Together with @evacchi, they conducted some detective work and realized that the SIGILL was really due to a cross-compilation bug of a humble nil dereference panic @mathetake released a workaround (#1623) while the bug is fixed upstream.

  • @mathetake updated our CI to align our test suites to their upstream (#1617, #1619, #1650).

  • Some minor issues in path handling were fixed by @evacchi in #1648

  • We also welcome first-time contributor @philippgille who made a fix to our README! (#1629)