|
Revision tags: dev, v36.0.9, v44.0.1 |
|
| #
f302ebd6 |
| 30-Apr-2026 |
wasmtime-publish <[email protected]> |
Release Wasmtime 44.0.1 (#13241)
[automatically-tag-and-release-this-commit]
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v43.0.2, v36.0.8, v24.0.8, v44.0.0, v43.0.1, v42.0.2, v36.0.7, v24.0.7, v43.0.0 |
|
| #
c5ab9e5a |
| 05-Mar-2026 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 44.0.0 (#12728)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6 |
|
| #
bbfcd588 |
| 18-Feb-2026 |
Nick Fitzgerald <[email protected]> |
deps: Update `bumpalo` to version 3.20.0 (#12614)
|
| #
72520ee5 |
| 05-Feb-2026 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 43.0.0 (#12531)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v41.0.3, v41.0.2 |
|
| #
487d1fcc |
| 27-Jan-2026 |
Bongjun Jang <[email protected]> |
Optimize ISLE compilation (#12303)
* optimize isle codegen for rustc
* opt-in for optimizing isle codegen
* have a controller threshold
|
|
Revision tags: v41.0.1, v36.0.5, v40.0.3 |
|
| #
9acefdfe |
| 23-Jan-2026 |
Alex Crichton <[email protected]> |
Merge `wasmtime-math` into `wasmtime-core` (#12398)
* Merge `wasmtime-math` into `wasmtime-core`
No real need to have two "core" crates, let's just have one.
* Fix warnings
|
|
Revision tags: v41.0.0, v36.0.4, v39.0.2, v40.0.2, v40.0.1 |
|
| #
76911c29 |
| 07-Jan-2026 |
SSD <[email protected]> |
Partial support for no_std in cranelift_codegen (#12222)
* Move most things from std to core and alloc
* Port assembler_x64 to no_std
* before adding prelude to each file
* Most of the files now
Partial support for no_std in cranelift_codegen (#12222)
* Move most things from std to core and alloc
* Port assembler_x64 to no_std
* before adding prelude to each file
* Most of the files now work with no_std
* update isle to use alloc and core
* some instances shouldn't have been renamed, fixes cargo test
* add cranelift-assembler-x64 (no_std) to CI
* fix codegen_meta, missed one spot with std::slice
* automatically remove prelude with cargo fix
* update isle changes
* update assembler changes
* update assembler changes
* use latest codegen changes + fix FxHash problem
* add imports
* fix floating issues with libm
* remove unused import
* temporarily remove OnceLock
* add no_std arm support and add it into CI
* Move most things from std to core and alloc
* Port assembler_x64 to no_std
* before adding prelude to each file
* Most of the files now work with no_std
* update isle to use alloc and core
* some instances shouldn't have been renamed, fixes cargo test
* add cranelift-assembler-x64 (no_std) to CI
* automatically remove prelude with cargo fix
* update isle changes
* update assembler changes
* update assembler changes
* use latest codegen changes + fix FxHash problem
* add imports
* fix floating issues with libm
* remove unused import
* temporarily remove OnceLock
* add no_std arm support and add it into CI
* Move most things from std to core and alloc
* Port assembler_x64 to no_std
* before adding prelude to each file
* Most of the files now work with no_std
* update isle to use alloc and core
* add cranelift-assembler-x64 (no_std) to CI
* automatically remove prelude with cargo fix
* update isle changes
* update assembler changes
* use latest codegen changes + fix FxHash problem
* add imports
* fix floating issues with libm
* temporarily remove OnceLock
* add no_std arm support and add it into CI
* revert Cargo.toml formating
* remove prelude and fix cargo.toml
* cargo fmt
* remove empty lines
* bad renames
* macro_use only on no_std
* revert OnceLock change
* only use stable libm features
* update regalloc2
* update comment
* use continue instead
* Update vets
---------
Co-authored-by: Alex Crichton <[email protected]>
show more ...
|
| #
1d8ab4b1 |
| 05-Jan-2026 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 42.0.0 (#12240)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v40.0.0 |
|
| #
9dc6a7d0 |
| 05-Dec-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 41.0.0 (#12126)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5 |
|
| #
afe9bcd1 |
| 05-Nov-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 40.0.0 (#11983)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v38.0.3, v38.0.2, v38.0.1, v37.0.2 |
|
| #
48da3134 |
| 06-Oct-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 39.0.0 (#11793)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v37.0.1, v37.0.0 |
|
| #
db7b44d2 |
| 05-Sep-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 38.0.0 (#11613)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v36.0.2, v36.0.1, v36.0.0 |
|
| #
2eda6384 |
| 05-Aug-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 37.0.0 (#11381)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v35.0.0, v24.0.4, v33.0.2, v34.0.2 |
|
| #
e2403113 |
| 07-Jul-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 36.0.0 (#11184)
Co-authored-by: Wasmtime Publish <[email protected]>
|
| #
3e3fafe8 |
| 27-Jun-2025 |
Alex Crichton <[email protected]> |
x64: Internalize `encoding` module (#11151)
Don't export this module from the crate itself to enable dead-code warnings about the module, for example the `VexInstruction` type is now unused. This re
x64: Internalize `encoding` module (#11151)
Don't export this module from the crate itself to enable dead-code warnings about the module, for example the `VexInstruction` type is now unused. This required refactoring Winch a bit to use the new assembler for a patchable add instruction.
show more ...
|
| #
f678260b |
| 25-Jun-2025 |
Nick Fitzgerald <[email protected]> |
Cranelift: Revive division-by-constant magic sequences (#11129)
* Revive the old module for generation division-by-constant magic numbers
* Add proptests for divide-by-constant magic number generat
Cranelift: Revive division-by-constant magic sequences (#11129)
* Revive the old module for generation division-by-constant magic numbers
* Add proptests for divide-by-constant magic number generators
* Use division-by-constant magic sequences in the ISLE mid-end
The application of these sequences have been ported to ISLE now to better integrate with our existing mid-end optimizations and to allow for recursive rule application in the optimized right-hand sides.
Fixes https://github.com/bytecodealliance/wasmtime/issues/6049
* Fix transcription to ISLE and failing tests
* address review feedback
* Fix ci test failure
show more ...
|
|
Revision tags: v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0 |
|
| #
78836186 |
| 05-Jun-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 35.0.0 (#10926)
Co-authored-by: Wasmtime Publish <[email protected]>
|
| #
9d384235 |
| 02-Jun-2025 |
Alex Crichton <[email protected]> |
Refactor float-to-int conversion bounds (#10884)
This commit deduplicates a number of locations throughout the codebase that contain the bounds for float-to-int conversions. These bounds are relativ
Refactor float-to-int conversion bounds (#10884)
This commit deduplicates a number of locations throughout the codebase that contain the bounds for float-to-int conversions. These bounds are relatively subtle and not easy to get right so it's probably best to keep them all centralized in one location.
show more ...
|
|
Revision tags: v33.0.0 |
|
| #
5ef22092 |
| 05-May-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 34.0.0 (#10726)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v32.0.0 |
|
| #
e06fe2c5 |
| 05-Apr-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 33.0.0 (#10525)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v31.0.0 |
|
| #
1ea710d6 |
| 14-Mar-2025 |
Andrew Brown <[email protected]> |
asm: fuzz `cranelift-codegen-x64` in the `misc` target (#10403)
As discussed previously, this change adds fuzzing for the x64 assembler to the melting pot target, `misc`, in order to get at least so
asm: fuzz `cranelift-codegen-x64` in the `misc` target (#10403)
As discussed previously, this change adds fuzzing for the x64 assembler to the melting pot target, `misc`, in order to get at least some fuzzing cycles on OSS-Fuzz.
show more ...
|
| #
6d028abe |
| 05-Mar-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 32.0.0 (#10330)
Co-authored-by: Wasmtime Publish <[email protected]>
|
|
Revision tags: v30.0.2, v30.0.1, v30.0.0 |
|
| #
73d6d6b5 |
| 11-Feb-2025 |
Andrew Brown <[email protected]> |
asm: avoid propagating `arbitrary` (#10217)
This is something that @alexcrichton already fixed over in the assembler crate--no need to implement `Arbitrary` unnecessarily. It's unclear how this stay
asm: avoid propagating `arbitrary` (#10217)
This is something that @alexcrichton already fixed over in the assembler crate--no need to implement `Arbitrary` unnecessarily. It's unclear how this stayed in here in `cranelift-codegen` but this change removes it.
show more ...
|
| #
b76b3f0c |
| 05-Feb-2025 |
wasmtime-publish <[email protected]> |
Bump Wasmtime to 31.0.0 (#10187)
Co-authored-by: Wasmtime Publish <[email protected]>
|
| #
0e056008 |
| 03-Feb-2025 |
Andrew Brown <[email protected]> |
asm: introduce a new x64 assembler (#10110)
* asm: add initial infrastructure for an external assembler
This change adds some initial logic implementing an external assembler for Cranelift's x64 ba
asm: introduce a new x64 assembler (#10110)
* asm: add initial infrastructure for an external assembler
This change adds some initial logic implementing an external assembler for Cranelift's x64 backend, as proposed in RFC [#41].
This adds two crates: - the `cranelift/assembler/meta` crate defines the instructions; to print out the defined instructions use `cargo run -p cranelift-assembler-meta` - the `cranelift/assembler` crate exposes the generated Rust code for those instructions; to see the path to the generated code use `cargo run -p cranelift-assembler`
The assembler itself is straight-forward enough (modulo the code generation, of course); its integration into `cranelift-codegen` is what is most tricky about this change. Instructions that we will emit in the new assembler are contained in the `Inst::External` variant. This unfortunately increases the memory size of `Inst`, but only temporarily if we end up removing the extra `enum` indirection by adopting the new assembler wholesale. Another integration point is ISLE: we generate ISLE definitions and a Rust helper macro to make the external assembler instructions accessible to ISLE lowering.
This change introduces some duplication: the encoding logic (e.g. for REX instructions) currently lives both in `cranelift-codegen` and the new assembler crate. The `Formatter` logic for the assembler `meta` crate is quite similar to the other `meta` crate. This minimal duplication felt worth the additional safety provided by the new assembler.
The `cranelift-assembler` crate is fuzzable (see the `README.md`). It will generate instructions with randomized operands and compare their encoding and pretty-printed string to a known-good disassembler, currently `capstone`. This gives us confidence we previously didn't have regarding emission. In the future, we may want to think through how to fuzz (or otherwise check) the integration between `cranelift-codegen` and this new assembler level.
[#41]: https://github.com/bytecodealliance/rfcs/pull/41
* asm: bless Cranelift file tests
Using the new assembler's pretty-printing results in slightly different disassembly of compiled CLIF. This is because the assembler matches a certain configuration of `capstone`, causing the following obvious differences:
- instructions with only two operands only print two operands; the original `MInst` instructions separate out the read-write operand into two separate operands (SSA-like) - the original instructions have some space padding after the instruction mnemonic, those from the new assembler do not
This change uses the slightly new style as-is, but this is open for debate; we can change the configuration of `capstone` that we fuzz against. My only preferences would be to (1) retain some way to visually distinguish the new assembler instructions in the disassembly (temporarily, for debugging) and (2) eventually transition to pretty-printing instructions in Intel-style (`rw, r`) instead of the current (`r, rw`).
* ci: skip formatting when `rustfmt` not present
Though it is likely that `rustfmt` is present in a Rust environment, some CI tasks do not have this tool installed. To handle this case (plus the chance that other Wasmtime builds are similar), this change skips formatting with a `stderr` warning when `rustfmt` fails.
* vet: audit `arbtest` for use as a dev-dependency
* ci: make assembler crates publishable
In order to satisfy `ci/publish.rs`, it would appear that we need to use a version that matches the rest of the Cranelift crates.
* review: use Cargo workspace values
* review: document `Inst`, move `Inst::name`
* review: clarify 'earlier' doc comment
* review: document multi-byte opcodes
* review: document `Rex` builder methods
* review: document encoding rules
* review: clarify 'bits' -> 'width'
* review: clarify confusing legacy prefixes
* review: tweak IA-32e language
* review: expand documentation for format
* review: move feature list closer to enum
* review: add a TODO to remove AT&T operand ordering
* review: move prefix emission to separate lines
* review: add testing note
* review: fix incomplete sentence
* review: rename `MinusRsp` to `NonRspGpr`
* review: add TODO for commented out instructions
* review: add conservative down-conversion to `is_imm*`
* Fuzzing updates for cranelift-assembler-x64 (#10)
* Fuzzing updates for cranelift-assembler-x64
* Ensure fuzzers build on CI * Move fuzz crate into the main workspace * Move `fuzz.rs` support code directly into fuzzer * Move `capstone` dependency into the fuzzer
* Make `arbitrary` an optional dependency
Shuffle around a few things in a few locations for this.
* vet: skip audit for `cranelift-assembler-x64-fuzz`
Co-authored-by: Alex Crichton <[email protected]>
* review: use 32-bit form for 8-bit and 16-bit reg-reg
Cranelift's existing lowering for 8-bit and 16-bit reg-reg `AND` used the wider version of the instruction--the 32-bit reg-reg `AND`. As pointed out by @cfallin [here], this was likely due to avoid partial register stalls. This change keeps that lowering by distinguishing more precisely between `GprMemImm` that are in register or memory.
[here]: https://github.com/bytecodealliance/wasmtime/pull/10110#discussion_r1939822255
* fix: skip `rustfmt` on generated code in more cases
Apparently `rustfmt` is not found on the `x86_64-unknown-illumos` build. This change skips the action in this new case.
prtest:full
* fix: feed Cargo the meta crate version
This fixes errors with the `publish.rs` script.
prtest:full
---------
Co-authored-by: Alex Crichton <[email protected]>
show more ...
|