History log of /wasmtime-44.0.1/tests/all/winch_engine_features.rs (Results 1 – 5 of 5)
Revision (<<< Hide revision tags) (Show revision tags >>>) Date Author Comments
Revision tags: dev, v36.0.9, v44.0.1, 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, v42.0.1, v41.0.4, v42.0.0, v40.0.4, v36.0.6, v24.0.6, v41.0.3, v41.0.2, v41.0.1, v36.0.5, v40.0.3, v41.0.0, v36.0.4, v39.0.2, v40.0.2
# 94740588 09-Jan-2026 Nick Fitzgerald <[email protected]>

Migrate the Wasmtime CLI to `wasmtime::error` (#12295)

* Migrate wasmtime-cli to `wasmtime::error`

* migrate benches to `wasmtime::error` as well

* Remove new usage of anyhow that snuck in


Revision tags: v40.0.1, v40.0.0, v39.0.1, v39.0.0, v38.0.4, v37.0.3, v36.0.3, v24.0.5, v38.0.3, v38.0.2, v38.0.1
# 02155232 15-Oct-2025 Chris Fallin <[email protected]>

Wasmtime: implement debug instrumentation and basic host API to examine runtime state. (#11769)

* Wasmtime: implement debug instrumentation and basic host API to examine runtime state.

This PR impl

Wasmtime: implement debug instrumentation and basic host API to examine runtime state. (#11769)

* Wasmtime: implement debug instrumentation and basic host API to examine runtime state.

This PR implements ideas from the [recent RFC] to serve as the basis
for Wasm (guest) debugging: it adds a stackslot to each function
translated from Wasm, stores to replicate Wasm VM state in the
stackslot as the program runs, and metadata to describe the format of
that state and allow reading it out at runtime.

As an initial user of this state, this PR adds a basic "stack view"
API that, from host code that has been called from Wasm, can examine
Wasm frames currently on the stack and read out all of their locals
and stack slots.

Note in particular that this PR does not include breakpoints,
watchpoints, stepped execution, or any sort of user interface for any
of this; it is only a foundation.

This PR still has a few unsatisfying bits that I intend to address:

- The "stack view" performs some O(n) work when the view is initially
taken, computing some internal data per frame. This is forced by the
current design of `Backtrace`, which takes a closure and walks that
closure over stack frames eagerly (rather than work as an
iterator). It's got some impressive iterator-chain stuff going on
internally, so refactoring it to the latter approach might not
be *too* bad, but I haven't tackled it yet.

A O(1) stack view, that is, one that does work only for frames as
the host API is used to walk up the stack, is desirable because some
use-cases may want to quickly examine e.g. only the deepest
frame (say, running with a breakpoint condition that needs to read a
particular local's value after each step).

- It includes a new `Config::compiler_force_inlining()` option that is
used only for testing that we get the correct frames after
inlining. I couldn't get the existing flags to work on a Wasmtime
config level and suspect there may be an existing bug there; I will
try to split out a fix for it.

This PR renames the existing `debug` option to `native_debug`, to
distinguish it from the new approach.

[recent RFC]: https://github.com/bytecodealliance/rfcs/pull/44

* Update to new APIs on Cranelift side.

* Test update.

* Adjust objdump printing of InstPos on frame progpoints; and adjust progpoint collapsing.

* Convert to iterator form.

* Fix path in native-debug tests (debug -> native_debug rename).

* Enforce that `debug_instrumentation` can only be enabled when feature is enabled.

* Add missing assert.

* Use builtin knob for forcing intra-module inlining instead.

* Review feedback:

- Make StackView own the current frame rather than handing it out. This
prevents the current frame (`FrameView`) from walking away and hiding
somewhere it shouldn't, to be used unsoundly later.
- Assert no-GC during stack walk.

* Merge debug-instrumentation hooks on FuncEnvironment into before/after hooks.

* Review feedback: avoid downcasting funcs twice.

* Add debug feature to `wasmtime` crate's defaults.

* Review feedback: u32s for local and stack indices in debug host API.

* Use *const u8 as stack pointers and `with_exposed_provenance` in debug API.

* Remove some `srcloc` plumbing in Wasm translator.

* Rename native-debug back to debug, and make the new thing "guest debugging".

* rustfmt in debugging test.

* fix disas test after guest-debug CLI option rename.

* Review feedback: no separate debug-instrumentation hooks on FuncEnvironment.

* Review feedback: update doc comment on `Config::guest_debug`.

* Review feedback: rename `generate_debuginfo` to `debug_native` in tunables.

* Review feedback: miscellaneous comments.

* Review comment: fix wording in safety conditions.

* revert wasi-common submodule update

* Properly root values in debug frame slots.

Fixes #11841.

* Fix non-`debug`-feature build.

* Review feedback: naming.

* Ignore tests that compile modules in miri.

show more ...


Revision tags: v37.0.2, v37.0.1, v37.0.0, v36.0.2, v36.0.1, v36.0.0, v35.0.0, v24.0.4, v33.0.2, v34.0.2
# df725421 01-Jul-2025 Alex Crichton <[email protected]>

Simplify some conditional testing logic for Winch (#11166)

* Simplify some conditional testing logic for Winch

Run all tests on all platforms in `#[wasmtime_test]` for Winch without
`#[cfg]` and u

Simplify some conditional testing logic for Winch (#11166)

* Simplify some conditional testing logic for Winch

Run all tests on all platforms in `#[wasmtime_test]` for Winch without
`#[cfg]` and use the result of `should_fail` to determine whether it
should fail or not (e.g. still expect failure on riscv64/s390x/etc).

* Ignore non-Pulley tests on Miri

show more ...


Revision tags: v34.0.1, v33.0.1, v24.0.3, v32.0.1, v34.0.0, v33.0.0, v32.0.0, v31.0.0, v30.0.2, v30.0.1, v30.0.0, v29.0.1
# a6227aad 21-Jan-2025 Taylor Hogge <[email protected]>

Add Pulley support to wasmtime_test macro (#10057)

* wasmtime_test: Rename "Cranelift" strategy to "CraneliftNative"

* wasmtime_test: Add CraneliftPulley to default test strategies

* wasmtime_test

Add Pulley support to wasmtime_test macro (#10057)

* wasmtime_test: Rename "Cranelift" strategy to "CraneliftNative"

* wasmtime_test: Add CraneliftPulley to default test strategies

* wasmtime_test: Use one specific compilation strategy with `only` specifier.

Tests in `tests/all/fuel.rs` and `tests/all/winch_engine_features.rs`
were using `#[wasmtime_test(strategies(not(Cranelift)))]` to gate their
Winch specific tests. Now that there is a third compilation strategy,
those tests were failing against Pulley.

I've replaced those with `#[wasmtime_test(strategies(only(Winch)))]`
to be more clear that they are targeted specifically at Winch.

* wasmtime_test: Fix flaky `wrap_and_typed_i31ref` test in tests/all/func.rs

The `static HITS` variable was sharing state between tests,
causing them to clobber each other when ran together.

show more ...


Revision tags: v29.0.0, v28.0.1, v28.0.0, v27.0.0, v26.0.1, v25.0.3, v24.0.2
# 6fdff5cd 22-Oct-2024 Saúl Cabrera <[email protected]>

winch: Improve tunables/configuration validation (#9490)

* winch: Improve tunables/configuration validation

This commit introduces proper validation and documentation to handle the
engine features

winch: Improve tunables/configuration validation (#9490)

* winch: Improve tunables/configuration validation

This commit introduces proper validation and documentation to handle the
engine features not currently supported by Winch (e.g., `consume_fuel`,
follow-up to the discussion in
https://github.com/bytecodealliance/wasmtime/pull/9472).

In this commit, the tunables validation is done at the `set_tunables`
method in Winch's `wasmtime_environ::compile::CompilerBuilder`
implemetation, which enables removing Winch specific logic from
`Config::validate`

This change also introduces the question of how to consolidate the
compiler specific flags with Winch (e.g, the user-specified
`cranelift_*` options) given that not all of them are applicable to
Winch (e.g., `cranelift_debug_verifier`,
`cranelift_nan_canonicalization`), this change doesn't introduce any
functionality on this front, however, it's probably something worth
considering/discussing.

* Update the fuzzers

* Use `wasmtime_test` instead of test

This allows a couple of things:
* Pre-configuring `Winch` as the strategy
* Handling the target architetures supported by Winch

show more ...