|
4 | 4 |
|
5 | 5 | ## Unreleased |
6 | 6 |
|
| 7 | +## 0.26.0 |
| 8 | + |
| 9 | +Released 2021-04-05. |
| 10 | + |
7 | 11 | ### Added |
8 | 12 |
|
9 | | -* Added the `wasmtime compile` command to support AOT compilation of Wasm modules. |
| 13 | +* Added the `wasmtime compile` command to support AOT compilation of Wasm |
| 14 | + modules. This adds the `Engine::precompile_module` method. Also added the |
| 15 | + `Config::target` method to change the compilation target of the |
| 16 | + configuration. This can be used in conjunction with |
| 17 | + `Engine::precompile_module` to target a different host triple than the |
| 18 | + current one. |
| 19 | + [#2791](https://github.com/bytecodealliance/wasmtime/pull/2791) |
10 | 20 |
|
11 | | -* Added the `Engine::precompile_module` method to support AOT module compilation. |
| 21 | +* Support for macOS on aarch64 (Apple M1 Silicon), including Apple-specific |
| 22 | + calling convention details and unwinding/exception handling using Mach ports. |
| 23 | + [#2742](https://github.com/bytecodealliance/wasmtime/pull/2742), |
| 24 | + [#2723](https://github.com/bytecodealliance/wasmtime/pull/2723) |
12 | 25 |
|
13 | | -* Added the `Config::target` method to change the compilation target of the |
14 | | - configuration. This can be used in conjunction with `Engine::precompile_module` |
15 | | - to target a different host triple than the current one. |
| 26 | +* A number of SIMD instruction implementations in the new x86-64 backend. |
| 27 | + [#2771](https://github.com/bytecodealliance/wasmtime/pull/2771) |
16 | 28 |
|
17 | 29 | * Added the `Config::cranelift_flag_enable` method to enable setting Cranelift |
18 | 30 | boolean flags or presets in a config. |
19 | 31 |
|
20 | 32 | * Added CLI option `--cranelift-enable` to enable boolean settings and ISA presets. |
21 | 33 |
|
| 34 | +* Deduplicate function signatures in Wasm modules. |
| 35 | + [#2772](https://github.com/bytecodealliance/wasmtime/pull/2772) |
| 36 | + |
| 37 | +* Optimize overheads of calling into Wasm functions. |
| 38 | + [#2757](https://github.com/bytecodealliance/wasmtime/pull/2757), |
| 39 | + [#2759](https://github.com/bytecodealliance/wasmtime/pull/2759) |
| 40 | + |
| 41 | +* Improvements related to Module Linking: compile fewer trampolines; |
| 42 | + |
| 43 | + [#2774](https://github.com/bytecodealliance/wasmtime/pull/2774) |
| 44 | + |
| 45 | +* Re-export sibling crates from `wasmtime-wasi` to make embedding easier |
| 46 | + without needing to match crate versions. |
| 47 | + [#2776](https://github.com/bytecodealliance/wasmtime/pull/2776) |
| 48 | + |
22 | 49 | ### Changed |
23 | 50 |
|
24 | | -* Wasmtime CLI options to enable WebAssembly features have been replaced with a |
25 | | - singular `--wasm-features` option. The previous options are still supported, but |
26 | | - are not displayed in help text. |
| 51 | +* Switched the default compiler backend on x86-64 to Cranelift's new backend. |
| 52 | + This should not have any user-visible effects other than possibly runtime |
| 53 | + performance improvements. The old backend is still available with the |
| 54 | + `old-x86-backend` feature flag to the `cranelift-codegen` or `wasmtime` |
| 55 | + crates, or programmatically with `BackendVariant::Legacy`. We plan to |
| 56 | + maintain the old backend for at least one more release and ensure it works on |
| 57 | + CI. |
| 58 | + [#2718](https://github.com/bytecodealliance/wasmtime/pull/2718) |
27 | 59 |
|
28 | 60 | * Breaking: `Module::deserialize` has been removed in favor of `Module::new`. |
29 | 61 |
|
|
32 | 64 |
|
33 | 65 | * Breaking: `Config::cranelift_other_flag` was renamed to `Config::cranelift_flag_set`. |
34 | 66 |
|
35 | | -* Breaking: the CLI option `--cranelift-flags` was changed to `--cranelift-set`. |
| 67 | +* CLI changes: |
| 68 | + * Wasmtime CLI options to enable WebAssembly features have been replaced with |
| 69 | + a singular `--wasm-features` option. The previous options are still |
| 70 | + supported, but are not displayed in help text. |
| 71 | + * Breaking: the CLI option `--cranelift-flags` was changed to |
| 72 | + `--cranelift-set`. |
| 73 | + * Breaking: the CLI option `--enable-reference-types=false` has been changed |
| 74 | + to `--wasm-features=-reference-types`. |
| 75 | + * Breaking: the CLI option `--enable-multi-value=false` has been changed to |
| 76 | + `--wasm-features=-multi-value`. |
| 77 | + * Breaking: the CLI option `--enable-bulk-memory=false` has been changed to |
| 78 | + `--wasm-features=-bulk-memory`. |
| 79 | + |
| 80 | +* Improved error-reporting in wiggle. |
| 81 | + [#2760](https://github.com/bytecodealliance/wasmtime/pull/2760) |
| 82 | + |
| 83 | +* Make WASI sleeping fallible (some systems do not support sleep). |
| 84 | + [#2756](https://github.com/bytecodealliance/wasmtime/pull/2756) |
| 85 | + |
| 86 | +* WASI: Support `poll_oneoff` with a sleep. |
| 87 | + [#2753](https://github.com/bytecodealliance/wasmtime/pull/2753) |
| 88 | + |
| 89 | +* Allow a `StackMapSink` to be passed when defining functions with |
| 90 | + `cranelift-module`. |
| 91 | + [#2739](https://github.com/bytecodealliance/wasmtime/pull/2739) |
| 92 | + |
| 93 | +* Some refactoring in new x86-64 backend to prepare for VEX/EVEX (e.g., |
| 94 | + AVX-512) instruction encodings to be supported. |
| 95 | + [#2799](https://github.com/bytecodealliance/wasmtime/pull/2799) |
| 96 | + |
| 97 | +### Fixed |
| 98 | + |
| 99 | +* Fixed a corner case in `srem` (signed remainder) in the new x86-64 backend: |
| 100 | + `INT_MIN % -1` should return `0`, rather than trapping. This only occurred |
| 101 | + when `avoid_div_traps == false` was set by the embedding. |
| 102 | + [#2763](https://github.com/bytecodealliance/wasmtime/pull/2763) |
| 103 | + |
| 104 | +* Fixed a memory leak of the `Store` when an instance traps. |
| 105 | + [#2803](https://github.com/bytecodealliance/wasmtime/pull/2803) |
| 106 | + |
| 107 | +* Some fuzzing-related fixes. |
| 108 | + [#2788](https://github.com/bytecodealliance/wasmtime/pull/2788), |
| 109 | + [#2770](https://github.com/bytecodealliance/wasmtime/pull/2770) |
36 | 110 |
|
37 | | -* Breaking: the CLI option `--enable-reference-types=false` has been changed to |
38 | | - `--wasm-features=-reference-types`. |
| 111 | +* Fixed memory-initialization bug in uffd allocator that could copy into the |
| 112 | + wrong destination under certain conditions. Does not affect the default |
| 113 | + wasmtime instance allocator. |
| 114 | + [#2801](https://github.com/bytecodealliance/wasmtime/pull/2801) |
39 | 115 |
|
40 | | -* Breaking: the CLI option `--enable-multi-value=false` has been changed to |
41 | | - `--wasm-features=-multi-value`. |
| 116 | +* Fix printing of float values from the Wasmtime CLI. |
| 117 | + [#2797](https://github.com/bytecodealliance/wasmtime/pull/2797) |
42 | 118 |
|
43 | | -* Breaking: the CLI option `--enable-bulk-memory=false` has been changed to |
44 | | - `--wasm-features=-bulk-memory`. |
| 119 | +* Remove the ability for the `Linker` to instantiate modules with duplicate |
| 120 | + import strings of different types. |
| 121 | + [#2789](https://github.com/bytecodealliance/wasmtime/pull/2789) |
45 | 122 |
|
46 | 123 | ## 0.25.0 |
47 | 124 |
|
|
0 commit comments