Skip to content

Commit a0450a7

Browse files
authored
Update nightly rust used in CI (#11388)
In addition to keeping things up-to-date this enables testing the `tail_loop` interpreter mode of Pulley using the `become` keyword and native Rust syntax. This still isn't ready for prime-time so it's just as gated as before, but we can promote a `cargo check` to a `cargo test` in CI.
1 parent 73f8c08 commit a0450a7

File tree

3 files changed

+8
-10
lines changed

3 files changed

+8
-10
lines changed

.github/actions/install-rust/action.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ runs:
2828
elif [ "${{ inputs.toolchain }}" = "msrv" ]; then
2929
echo "version=1.$msrv.0" >> "$GITHUB_OUTPUT"
3030
elif [ "${{ inputs.toolchain }}" = "wasmtime-ci-pinned-nightly" ]; then
31-
echo "version=nightly-2025-07-08" >> "$GITHUB_OUTPUT"
31+
echo "version=nightly-2025-08-06" >> "$GITHUB_OUTPUT"
3232
else
3333
echo "version=${{ inputs.toolchain }}" >> "$GITHUB_OUTPUT"
3434
fi

.github/workflows/main.yml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -590,10 +590,8 @@ jobs:
590590
with:
591591
toolchain: wasmtime-ci-pinned-nightly
592592

593-
# Check that `pulley-interpreter` compiles with tail calls enabled. Don't
594-
# actually run the tests with tail calls enabled, because they are not yet
595-
# implemented in rustc and cause an ICE.
596-
- run: cargo check -p pulley-interpreter --all-features
593+
# Check that `pulley-interpreter` works with tail calls enabled.
594+
- run: cargo test -p pulley-interpreter --all-features
597595
env:
598596
RUSTFLAGS: "--cfg pulley_tail_calls"
599597
- run: cargo check -p pulley-interpreter --all-features

pulley/src/interp/tail_loop.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
//! tail-calls.
88
//!
99
//! At this time this module is more performant but disabled by default. Rust
10-
//! does not have guaranteed tail call elimination at this time so this is not
11-
//! a suitable means of writing an interpreter loop. That being said this is
12-
//! included nonetheless for us to experiment and analyze with.
10+
//! does not have guaranteed tail call elimination on stable at this time so
11+
//! this is not a suitable means of writing an interpreter loop. That being said
12+
//! this is included nonetheless for us to experiment and analyze with.
1313
//!
1414
//! There are two methods of using this module:
1515
//!
@@ -23,8 +23,8 @@
2323
//! * `RUSTFLAGS=--cfg=pulley_tail_calls` - this compilation flag indicates that
2424
//! Rust's nightly-only support for guaranteed tail calls should be used. This
2525
//! uses the `become` keyword, for example. At this time this feature of Rust
26-
//! is highly experimental and not even complete. It only passes `cargo check`
27-
//! at this time but doesn't actually run anywhere.
26+
//! is highly experimental and may not be complete. This is only lightly
27+
//! tested in CI.
2828
2929
use super::*;
3030
use crate::ExtendedOpcode;

0 commit comments

Comments
 (0)