Skip to content

Commit 6e10ebe

Browse files
Add Rust 1.90.0 announcement
1 parent 3469194 commit 6e10ebe

File tree

1 file changed

+103
-0
lines changed

1 file changed

+103
-0
lines changed

content/Rust-1.90.0.md

Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
+++
2+
path = "2025/09/18/Rust-1.90.0"
3+
title = "Announcing Rust 1.90.0"
4+
authors = ["The Rust Release Team"]
5+
aliases = ["releases/1.90.0"]
6+
7+
[extra]
8+
release = true
9+
+++
10+
11+
The Rust team is happy to announce a new version of Rust, 1.90.0. Rust is a programming language empowering everyone to build reliable and efficient software.
12+
13+
If you have a previous version of Rust installed via `rustup`, you can get 1.90.0 with:
14+
15+
```console
16+
$ rustup update stable
17+
```
18+
19+
If you don't have it already, you can [get `rustup`](https://www.rust-lang.org/install.html) from the appropriate page on our website, and check out the [detailed release notes for 1.90.0](https://doc.rust-lang.org/stable/releases.html#version-1900-2025-09-18).
20+
21+
If you'd like to help us out by testing future releases, you might consider updating locally to use the beta channel (`rustup default beta`) or the nightly channel (`rustup default nightly`). Please [report](https://github.com/rust-lang/rust/issues/new/choose) any bugs you might come across!
22+
23+
## What's in 1.90.0 stable
24+
25+
### `lld` by default on `x86_64-unknown-linux-gnu`
26+
27+
As [previously announced](https://blog.rust-lang.org/2025/09/01/rust-lld-on-1.90.0-stable/),
28+
1.90 brings a change in the default linker to `lld` on
29+
`x86_64-unknown-linux-gnu`. As discussed in that blog, for the vast majority of
30+
users this change should just be a compile time reduction. In some edge cases,
31+
`lld` may have different behavior: please file
32+
[issues](https://github.com/rust-lang/rust/issues/new/choose) if you run into
33+
problems as part of the migration.
34+
35+
### Cargo adds native support for workspace publishing
36+
37+
`cargo publish --workspace` is now supported, automatically publishing all of
38+
the crates in a workspace in the right order (following any dependencies
39+
between them). This has long been possible with external tooling or manual
40+
ordering of individual publishes, but this brings the functionality into Cargo
41+
itself.
42+
43+
### Demoting `x86_64-apple-darwin` to Tier 2 with host tools
44+
45+
GitHub will soon [discontinue][gha-sunset] providing free macOS x86\_64 runners for public repositories. Apple has also announced their [plans][apple] for discontinuing support for the x86\_64 architecture.
46+
47+
In accordance with these changes, as of Rust 1.90, the project has [demoted the `x86_64-apple-darwin` target][rfc] from [Tier 1 with host tools](https://doc.rust-lang.org/stable/rustc/platform-support.html#tier-1-with-host-tools) to [Tier 2 with host tools](https://doc.rust-lang.org/stable/rustc/platform-support.html#tier-2-with-host-tools). This means that the target, including tools like `rustc` and `cargo`, will be guaranteed to build but is not guaranteed to pass our automated test suite.
48+
49+
For users, this change will not immediately cause impact. Builds of both the standard library and the compiler will still be distributed by the Rust Project for use via `rustup` or alternative installation methods while the target remains at Tier 2. Over time, it's likely that reduced test coverage for this target will cause things to break or fall out of compatibility with no further announcements.
50+
51+
[apple]: https://en.wikipedia.org/wiki/Mac_transition_to_Apple_silicon#Timeline
52+
[gha-sunset]: https://github.blog/changelog/2025-07-11-upcoming-changes-to-macos-hosted-runners-macos-latest-migration-and-xcode-support-policy-updates/#macos-13-is-closing-down
53+
[rfc]: https://github.com/rust-lang/rfcs/pull/3841
54+
55+
### Stabilized APIs
56+
57+
- [`u{n}::checked_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.checked_sub_signed)
58+
- [`u{n}::overflowing_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.overflowing_sub_signed)
59+
- [`u{n}::saturating_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.saturating_sub_signed)
60+
- [`u{n}::wrapping_sub_signed`](https://doc.rust-lang.org/stable/std/primitive.usize.html#method.wrapping_sub_signed)
61+
- [`impl Copy for IntErrorKind`](https://doc.rust-lang.org/stable/std/num/enum.IntErrorKind.html#impl-Copy-for-IntErrorKind)
62+
- [`impl Hash for IntErrorKind`](https://doc.rust-lang.org/stable/std/num/enum.IntErrorKind.html#impl-Hash-for-IntErrorKind)
63+
- [`impl PartialEq<&CStr> for CStr`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#impl-PartialEq%3C%26CStr%3E-for-CStr)
64+
- [`impl PartialEq<CString> for CStr`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#impl-PartialEq%3CCString%3E-for-CStr)
65+
- [`impl PartialEq<Cow<CStr>> for CStr`](https://doc.rust-lang.org/stable/std/ffi/struct.CStr.html#impl-PartialEq%3CCow%3C'_,+CStr%3E%3E-for-CStr)
66+
- [`impl PartialEq<&CStr> for CString`](https://doc.rust-lang.org/stable/std/ffi/struct.CString.html#impl-PartialEq%3C%26CStr%3E-for-CString)
67+
- [`impl PartialEq<CStr> for CString`](https://doc.rust-lang.org/stable/std/ffi/struct.CString.html#impl-PartialEq%3CCStr%3E-for-CString)
68+
- [`impl PartialEq<Cow<CStr>> for CString`](https://doc.rust-lang.org/stable/std/ffi/struct.CString.html#impl-PartialEq%3CCow%3C'_,+CStr%3E%3E-for-CString)
69+
- [`impl PartialEq<&CStr> for Cow<CStr>`](https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html#impl-PartialEq%3C%26CStr%3E-for-Cow%3C'_,+CStr%3E)
70+
- [`impl PartialEq<CStr> for Cow<CStr>`](https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html#impl-PartialEq%3CCStr%3E-for-Cow%3C'_,+CStr%3E)
71+
- [`impl PartialEq<CString> for Cow<CStr>`](https://doc.rust-lang.org/stable/std/borrow/enum.Cow.html#impl-PartialEq%3CCString%3E-for-Cow%3C'_,+CStr%3E)
72+
73+
These previously stable APIs are now stable in const contexts:
74+
75+
- [`<[T]>::reverse`](https://doc.rust-lang.org/stable/std/primitive.slice.html#method.reverse)
76+
- [`f32::floor`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.floor)
77+
- [`f32::ceil`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.ceil)
78+
- [`f32::trunc`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.trunc)
79+
- [`f32::fract`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.fract)
80+
- [`f32::round`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round)
81+
- [`f32::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f32.html#method.round_ties_even)
82+
- [`f64::floor`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.floor)
83+
- [`f64::ceil`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.ceil)
84+
- [`f64::trunc`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.trunc)
85+
- [`f64::fract`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.fract)
86+
- [`f64::round`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round)
87+
- [`f64::round_ties_even`](https://doc.rust-lang.org/stable/std/primitive.f64.html#method.round_ties_even)
88+
89+
### Platform Support
90+
91+
- `x86_64-apple-darwin` is now a tier 2 target
92+
93+
Refer to Rust’s [platform support page][platform_support_page] for more information on Rust’s tiered platform support.
94+
95+
### Other changes
96+
97+
Check out everything that changed in [Rust](https://github.com/rust-lang/rust/releases/tag/1.90.0), [Cargo](https://doc.rust-lang.org/nightly/cargo/CHANGELOG.html#cargo-190-2025-09-18), and [Clippy](https://github.com/rust-lang/rust-clippy/blob/master/CHANGELOG.md#rust-190).
98+
99+
## Contributors to 1.90.0
100+
101+
Many people came together to create Rust 1.90.0. We couldn't have done it without all of you. [Thanks!](https://thanks.rust-lang.org/rust/1.90.0/)
102+
103+
[platform_support_page]: https://doc.rust-lang.org/rustc/platform-support.html

0 commit comments

Comments
 (0)