Skip to content

Commit 1b7a894

Browse files
committed
add blog post for rust 1.91.1
1 parent 13dff99 commit 1b7a894

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed

content/Rust-1.91.1.md

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
+++
2+
path = "2025/11/10/Rust-1.91.1"
3+
title = "Announcing Rust 1.91.1"
4+
authors = ["The Rust Release Team"]
5+
aliases = ["releases/1.91.1"]
6+
7+
[extra]
8+
release = true
9+
+++
10+
11+
The Rust team has published a new point release of Rust, 1.91.1. Rust is a
12+
programming language that is empowering everyone to build reliable and
13+
efficient software.
14+
15+
If you have a previous version of Rust installed via rustup, getting Rust
16+
1.91.1 is as easy as:
17+
18+
```
19+
rustup update stable
20+
```
21+
22+
If you don't have it already, you can [get `rustup`][rustup] from the
23+
appropriate page on our website.
24+
25+
[rustup]: https://www.rust-lang.org/install.html
26+
27+
## What's in 1.91.1
28+
29+
Rust 1.91.1 includes fixes for two regressions introduced in the 1.91.0 release.
30+
31+
### Linker and runtime errors on Wasm
32+
33+
Most targets supported by Rust identify symbols by their name, but Wasm
34+
identifies them with a symbol name *and* a Wasm module name. The
35+
[`#[link(wasm_import_module)]`][wasm_import_module] attribute allows to
36+
customize the Wasm module name an `extern` block refers to:
37+
38+
```rust
39+
#[link(wasm_import_module = "hello")]
40+
extern "C" {
41+
pub fn world();
42+
}
43+
```
44+
45+
Rust 1.91.0 introduced a regression in the attribute, which could cause linker
46+
failures during compilation (*"import module mismatch"* errors) or the wrong
47+
function being used at runtime (leading to undefined behavior, including crashes
48+
and silent data corruption). This happened when the same symbol name was
49+
imported from two different Wasm modules across multiple Rust crates.
50+
51+
Rust 1.91.1 fixes the regression. More details are available in [issue #148347].
52+
53+
[wasm_import_module]: https://doc.rust-lang.org/reference/items/external-blocks.html#r-items.extern.attributes.link.wasm_import_module
54+
[issue #148347]: https://github.com/rust-lang/rust/issues/148347
55+
56+
### Cargo target directory locking broken on illumos
57+
58+
Cargo relies on locking the `target/` directory during a build to prevent
59+
concurrent invocations of Cargo from interfering with each other. Not all
60+
filesystems support locking (most notably some networked ones): if the OS
61+
returns the `Unsupported` error when attempting to lock, Cargo assumes locking
62+
is not supported and proceeds without it.
63+
64+
Cargo 1.91.0 switched from custom code interacting with the OS APIs to the
65+
[`File::lock`] standard library method (recently stabilized in Rust 1.89.0). Due
66+
to an oversight, that method always returned `Unsupported` on the illumos
67+
target, causing Cargo to never lock the build directory on illumos regardless of
68+
whether the filesystem supported it.
69+
70+
Rust 1.91.1 fixes the oversight in the standard library by enabling the
71+
[`File::lock`] family of functions on illumos, indirectly fixing the Cargo
72+
regression.
73+
74+
[`File::lock`]: https://doc.rust-lang.org/stable/std/fs/struct.File.html#method.lock
75+
76+
### Contributors to 1.91.1
77+
78+
Many people came together to create Rust 1.91.1. We couldn't have done it
79+
without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.91.1/)

0 commit comments

Comments
 (0)