Stream: rust-toolchain

Topic: Rust Nightly (and eventually 1.94) have major libstd changes


view this post on Zulip Alex Crichton (Jan 12 2026 at 19:44):

As a (belated) heads up to everyone using the Rust toolchain -- rust-lang/rust#147572 is a major change to how the wasm32-wasip{1,2} targets are implemented in Rust. The PR there has a thorough description, but the general idea is that lots of functions within the standard library have been reimplemented in terms of libc-based symbols instead of Rust-specific code in libstd. This has the immediate benefit of removing the need for the wasip1-to-wasip2 adapter for Rust, for example.

As a big refactoring change this is inevitably having fallout. There's a mixture of bugs in libc being discovered to ramifications to precise behavior differences. I wanted to make a message here as a PSA to help diagnose anything that might come up. Basically if you see weird nightly behavior (and eventually Rust 1.94) this might be the cause. Feel free to cc me on anything and I can help out.

Example bugs found so far are:

This commit is a large change to the implementation of filesystem and other system-related operations on WASI targets. Previously the standard library explicitly used the wasi crate at the 0.11.x v...
This commit is a follow-up to #147572 and the issue reported at the end of that PR where the std::fs::hard_link function is broken after that PR landed. The true culprit and bug here is fixed in We...
I tried this code: use std::{thread, time::Duration}; fn main() { thread::sleep(Duration::from_secs(1)); } I expected to see this happen: Waits 1s then exit Instead, this happened: Panic Meta The c...
When PR #147572 switched WASI to use Unix-style filesystem APIs, the open_to_and_set_permissions function for WASI was implemented to call OpenOptions::new().open() without setting any access mode ...
PR #147572 changed WASI to use the Unix threading implementation, but WASI does not support threading. When the Unix code tries to call pthread_create, it fails with EAGAIN, causing libraries like ...

Last updated: Jan 29 2026 at 13:25 UTC