Aquesta és una versió anterior. La versió actual és la 1.99.1. Rust (GNU) 1.99.1 · Data de publicació:
1.98.0 forma part de la branca 1.98, que va arribar al final de vida l’1 d’octubre del 2026. Ja no rep correccions de seguretat. endoflife.date
Fitxers d’instal·lació 1.98.0
| Arquitectura | Tipus | Àmbit | Mida del fitxer | Baixa | SHA256 |
|---|---|---|---|---|---|
| 64 bits | MSI | — | — | static.rust-lang.org | VirusTotal |
| 32 bits | MSI | — | — | static.rust-lang.org | VirusTotal |
L’enllaç i l’SHA256 provenen del manifest comunitari del Gestor de paquets del Windows. Convé comparar el hash del fitxer baixat abans d’executar-lo.
Notes de la versió
Language
- Allow shortening lifetime of &mut when unsize-coercing, even in an invariant position. For example, you can now coerce a Cell<&'long mut i32> to a Cell<&'short mut dyn Send>. Such shortenings were already previously allowed when coercing a &mut to a &, or coercing a & to a &.
- Add deny-by-default invalid_runtime_symbol_definitions lint and warn-by-default suspicious_runtime_symbol_definitions lint
- The lints currently specifically targets core runtime symbols like memcmp, memset, strlen, ... and is planned to be expanded in the next few releases.
- Add warn-by-default c_void_returns lint to check core::ffi::c_void as a return type
Platform Support
- Add powerpc64-unknown-linux-gnuelfv2 as Tier 3
- Add aarch64-unknown-linux-pauthtest as Tier 3 target
- Promote thumbv7a-none-eabi to Tier 2
- Promote thumbv7a-none-eabihf to Tier 2
- Promote thumbv7r-none-eabi to Tier 2
- Promote thumbv7r-none-eabihf to Tier 2
- Promote thumbv8r-none-eabihf to Tier 2
Refer to Rust's platform support page for more information on Rust's tiered platform support.
Libraries
- Change Location<'_> lifetime to 'static in Panic[Hook]Info
- Document panic in RangeInclusive::from(legacy::RangeInclusive)
- Document that ManuallyDrop's Box interaction has been fixed
- Stabilize LoongArch CRC Intrinsics
- The derive macro is available at {core,std}::derive. This was previously unintentionally stabilized in 1.96, but is now explicitly accepted as a stabilized API.
- Please note that the MSRV for {core,std}::derive will be 1.96, and not 1.98.
Stabilized APIs
- str::substr_range
- [T]::subslice_range
- core::fmt::NumBuffer
- <{integer}>::format_into
- Send/Sync for std::process::CommandArgs
- {fN}::algebraic_add
- {fN}::algebraic_sub
- {fN}::algebraic_mul
- {fN}::algebraic_div
- {fN}::algebraic_rem
- NonZero<{integer}>::from_str_radix
- String::from_utf16le
- String::from_utf16le_lossy
- String::from_utf16be
- String::from_utf16be_lossy
- [T]::strip_circumfix
- str::strip_circumfix
- Atomic<T>::from_mut
- Atomic<T>::get_mut_slice
- Atomic<T>::from_mut_slice
- std::range::legacy
Compatibility Notes
- If fully elided, lifetime bounds of trait object types may now resolve differently or even get rejected in very specific niche scenarios
- Error in more cases of ambiguous imports
- Switch the destructors implementation for thread locals on Windows to use Fiber Local Storage (FLS)
- Convert some cases of the ambiguous_glob_imports lint into a hard error
- Where-bounds of the form Type = Type and Type == Type are no longer syntactically allowed
- Ensure Send/Sync is not implemented for std::env::Vars{,Os}
- Fix that in some attributes, arguments were not properly rejected
- repr(transparent) is now more strict about which fields have "trivial" layout and hence can be ignored: repr(C) types, types with private fields, and #[non_exhaustive] types are no longer considered "trivial"
- Correctly check whether types have equal size in transmute() when some repr attributes are involved.
- More characters are escaped when printing strings and chars
- Implement fast path for derive(PartialOrd) when deriving Ord This can break crates in practice where a type's PartialOrd and Ord impls were inconsistent with each other.
- Add temporary scope to assert_eq and assert_ne
- Closed a hole in the pattern matching structural equality check, preventing cases where a match of a constant would be allowed, despite disagreeing with a manually written PartialEq implementation, when a derive(PartialEq) implementation for that type also exists.
- On Emscripten the WASM exception handling ABI is now unconditionally used The -Zemscripten-wasm-eh=false flag to switch back to JS exceptions has been removed.
- The UNSAFE_CODE lint is now consistently emitted for all unsafe attributes
- Solaris: remove File::lock implementation, it has the wrong semantics (return "unsupported" instead)
- Windows-gnu targets now specify baseline tools versions
- rustfmt now discovers module files that are defined in cfg_select! This may cause more code to be formatted which was previously ignored.