Skip to content

chore: upgrades Rust version and dependencies#651

Merged
thadouk merged 1 commit intomainfrom
chore/switch-to-rust-stable-1.67-wasm32v1
Feb 2, 2026
Merged

chore: upgrades Rust version and dependencies#651
thadouk merged 1 commit intomainfrom
chore/switch-to-rust-stable-1.67-wasm32v1

Conversation

@thadouk
Copy link
Copy Markdown
Collaborator

@thadouk thadouk commented Jan 29, 2026

Proposed changes

Additionally, drops wasm-unknown-unknown dependency in favour of wasm32v1-none to align with polkadot-sdk feature:

feat(wasm-builder): add support for new wasm32v1-none target polkadot-sdk PR: #7008 Resolves #5777

Previously wasm-builder used hacks such as -Zbuild-std (required rust-src component) and RUSTC_BOOTSTRAP=1 to build WASM runtime without WASM features: sign-ext, multivalue and reference-types, but since Rust 1.84 (will be stable on 9 January, 2025) the situation has improved as there is new
wasm32v1-none target that disables all "post-MVP" WASM features except mutable-globals.

Wasm builder requires the following prerequisites for building the WASM binary:

  • Rust >= 1.68 and Rust < 1.84:
    • wasm32-unknown-unknown target
    • rust-src component
  • Rust >= 1.84:
    • wasm32v1-none target
    • no more -Zbuild-std and RUSTC_BOOTSTRAP=1 hacks and rust-src component requirements!

Jira:

  • SYS-4677
  • SYS-4551

Type of change/Merge

🚨What type of change is this PR?

Put an x in the boxes that apply

  • Release
    • Increase versions
    • Baseline tests passed
    • Release type:
      • Major release
      • Minor release
      • Patch release

@thadouk thadouk force-pushed the chore/switch-to-rust-stable-1.67-wasm32v1 branch from 04891b8 to 8c6a757 Compare January 29, 2026 15:29
@thadouk thadouk requested a review from vukomir as a code owner January 29, 2026 15:29
Changes toolchain and CI to use Rust 1.87.0

Additionally, drops wasm-unknown-unknown dependency in favour of
`wasm32v1-none` to align with polkadot-sdk feature:

feat(wasm-builder): add support for new `wasm32v1-none` target
polkadot-sdk PR: [#7008](paritytech/polkadot-sdk#7008)
Resolves [#5777](paritytech/polkadot-sdk#5777)

Previously `wasm-builder` used hacks such as `-Zbuild-std` (required `rust-src` component)
and `RUSTC_BOOTSTRAP=1` to build WASM runtime without WASM features: `sign-ext`, `multivalue`
and `reference-types`, but since Rust 1.84 (will be stable on 9 January, 2025)
the situation has improved as there is new
[`wasm32v1-none`](https://doc.rust-lang.org/beta/rustc/platform-support/wasm32v1-none.html)
target that disables all "post-MVP" WASM features except `mutable-globals`.

Wasm builder requires the following prerequisites for building the WASM binary:

- Rust >= 1.68 and Rust < 1.84:
  - `wasm32-unknown-unknown` target
  - `rust-src` component
- Rust >= 1.84:
  - `wasm32v1-none` target
  - no more `-Zbuild-std` and `RUSTC_BOOTSTRAP=1` hacks and `rust-src` component requirements!

Jira:
- SYS-4677
- SYS-4551
@thadouk thadouk force-pushed the chore/switch-to-rust-stable-1.67-wasm32v1 branch from 8c6a757 to b7d3ba3 Compare February 2, 2026 19:33
@thadouk thadouk merged commit 69c0525 into main Feb 2, 2026
2 of 3 checks passed
@thadouk thadouk deleted the chore/switch-to-rust-stable-1.67-wasm32v1 branch February 2, 2026 23:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Consider removing useless -sign-ext flag in substrate-wasm-builder

3 participants