Update Sep 3, 2026 tracked by Updatify
Rust is a general-purpose programming language which emphasizes performance, type safety, concurrency, and memory safety.
Update Aug 20, 2026 tracked by Updatify
Rust 1.98.0
Language
-
Allow shortening lifetime of
&mutwhen unsize-coercing, even in an invariant position. For example, you can now coerce aCell<&'long mut i32>to aCell<&'short mut dyn Send>. Such shortenings were already previously allowed when coercing a&mutto a&, or coercing a&to a&. -
Add deny-by-default
invalid_runtime_symbol_definitionslint and warn-by-defaultsuspicious_runtime_symbol_definitionslint-
The lints currently specifically targets
coreruntime symbols likememcmp,memset,strlen, … and is planned to be expanded in the next few releases.
-
The lints currently specifically targets
-
Add warn-by-default
c_void_returnslint to checkcore::ffi::c_voidas a return type
Platform Support
Update Aug 20, 2026 tracked by Updatify
Rust 1.98.0
Language
-
Allow shortening lifetime of
&mutwhen unsize-coercing, even in an invariant position. For example, you can now coerce aCell<&'long mut i32>to aCell<&'short mut dyn Send>. Such shortenings were already previously allowed when coercing a&mutto a&, or coercing a&to a&. -
Add deny-by-default
invalid_runtime_symbol_definitionslint and warn-by-defaultsuspicious_runtime_symbol_definitionslint-
The lints currently specifically targets
coreruntime symbols likememcmp,memset,strlen, … and is planned to be expanded in the next few releases.
-
The lints currently specifically targets
-
Add warn-by-default
c_void_returnslint to checkcore::ffi::c_voidas a return type
Platform Support
Update Jul 16, 2026 tracked by Updatify
Rust 1.97.1
- rustc: Fix miscompilation in LLVM optimization This backports an LLVM submodule bump to include the LLVM-side fix and a revert of the rustc change that is one known trigger for the bug. The rustc side revert should not be strictly necessary but is done out of abundance of caution.
Update Jul 9, 2026 tracked by Updatify
Rust 1.97.0
Language
-
Consider
Result<T, Uninhabited>andControlFlow<Uninhabited, T>to be equivalent toTfor must use lint -
Add allow-by-default
dead_code_pub_in_binarylint for unused pub items in binary crates -
Stabilize the
div32,lam-bh,lamcas,ld-seq-saandscqtarget features -
Stabilize
cfg(target_has_atomic_primitive_alignment) -
Allow trailing
selfin imports in more cases
Platform Support
Refer to Rust’s platform support page for more information on Rust’s tiered platform support.
Stabilized APIs
Update May 28, 2026 tracked by Updatify
Rust 1.96.0
Language
-
Allow passing
exprmetavariable tocfg - Always coerce never types in tuple expressions
- Avoid incorrect inference guidance of function arguments in rare cases
- Support s390x vector registers in inline assembly
-
Allow using constants of type
ManuallyDropas patterns (fixing a regression introduced in 1.94.0)
Compiler
- Enable link relaxation feature for LoongArch Linux targets
-
Update
riscv64gc-unknown-fuchsiabaseline to RVA22 + vector
Libraries
-
Support iterating over ranges of
NonZerointegers - refactor ‘valid for read/write’ definition: exclude null; add that as an exception on individual methods instead
- Fix SGX delayed host lookup via ToSocketAddr
Stabilized APIs
Update Apr 16, 2026 tracked by Updatify
Rust 1.95.0
Language
-
Stabilize
if letguards on match arms -
irrefutable_let_patternslint no longer lints on let chains - Support importing path-segment keywords with renaming
- Stabilize inline assembly for PowerPC and PowerPC64
- const-eval: be more consistent in the behavior of padding during typed copies
- Const blocks are no longer evaluated to determine if expressions involving fallible operations can implicitly be constant-promoted.. Expressions whose ability to implicitly be promoted would depend on the result of a const block are no longer implicitly promoted.
- Make operational semantics of pattern matching independent of crate and module
Compiler
-
Stabilize
--remap-path-scopefor controlling the scoping of how paths get remapped in the resulting binary - Apply patches for CVE-2026-6042 and CVE-2026-40200 to vendored musl
Platform Support
Update Mar 26, 2026 tracked by Updatify
Rust 1.94.1
-
Fix
std::thread::spawnon wasm32-wasip1-threads -
Remove new methods added to
std::os::windows::fs::OpenOptionsExtThe new methods were unstable, but the trait itself is not sealed and so cannot be extended with non-default methods. -
Clippy: fix ICE in
match_same_arms - Cargo: update tar to 0.4.45 This resolves CVE-2026-33055 and CVE-2026-33056. Users of crates.io are not affected. See blog for more details.
Update Mar 5, 2026 tracked by Updatify
Rust 1.94.0
Language
-
Impls and impl items inherit
dead_codelint level of the corresponding traits and trait items - Stabilize additional 29 RISC-V target features including large portions of the RVA22U64 / RVA23U64 profiles
-
Add warn-by-default
unused_visibilitieslint for visibility onconst _declarations - Update to Unicode 17
- Avoid incorrect lifetime errors for closures
Platform Support
Refer to Rust’s platform support page for more information on Rust’s tiered platform support.
Libraries
Stabilized APIs
Update Feb 12, 2026 tracked by Updatify
Rust 1.93.1
- Don’t try to recover keyword as non-keyword identifier, fixing an ICE that especially affected rustfmt.
-
Fix
clippy::panicking_unwrapfalse-positive on field access with implicit deref. -
Revert “Update wasm-related dependencies in CI”, fixing file descriptor leaks on the
wasm32-wasip2target.
Update Jan 22, 2026 tracked by Updatify
Rust 1.93.0
Language
-
Stabilize several s390x
vector-related target features and theis_s390x_feature_detected!macro -
Stabilize declaration of C-style variadic functions for the
systemABI -
Emit error when using some keyword as a
cfgpredicate -
Stabilize
asm_cfg - During const-evaluation, support copying pointers byte-by-byte
- LUB coercions now correctly handle function item types, and functions with differing safeties
-
Allow
constitems that contain mutable references tostatic(which is very unsafe, but not always UB) -
Add warn-by-default
const_item_interior_mutationslint to warn against calls which mutate interior mutableconstitems -
Add warn-by-default
function_casts_as_integerlint
Compiler
-
Stabilize
-Cjump-tables=bool. The flag was previously called-Zno-jump-tables.
Platform Support
Update Dec 11, 2025 tracked by Updatify
Rust 1.92.0
Language
-
Document
MaybeUninitrepresentation and validity -
Prefer item bounds of associated types over where-bounds for auto-traits and
Sized -
Do not materialize
Xin[X; 0]whenXis unsizing a const -
Support combining
#[track_caller]and#[no_mangle](requires every declaration specifying#[track_caller]as well) -
Make never type lints
never_type_fallback_flowing_into_unsafeanddependency_on_unit_never_type_fallbackdeny-by-default - Allow specifying multiple bounds for same associated item, except in trait objects
- Slightly strengthen higher-ranked region handling in coherence
-
The
unused_must_uselint no longer warns onResult<(), Uninhabited>(for instance,Result<(), !>), orControlFlow<Uninhabited, ()>. This avoids having to check for an error that can never happen.
Compiler
Update Nov 10, 2025 tracked by Updatify
Rust 1.91.1
- Enable file locking support in illumos. This fixes Cargo not locking the build directory on illumos.
-
Fix
wasm_import_moduleattribute cross-crate. This fixes linker errors on WASM targets.
Update Oct 30, 2025 tracked by Updatify
Rust 1.91.0
Language
- Lower pattern bindings in the order they’re written and base drop order on primary bindings’ order
-
Stabilize declaration of C-style variadic functions for
sysv64,win64,efiapi, andaapcsABIs. This brings these ABIs in line with the C ABI: variadic functions can be declared in extern blocks but not defined. -
Add
dangling_pointers_from_localslint to warn against dangling pointers from local variables -
Upgrade
semicolon_in_expressions_from_macrosfrom warn to deny - Stabilize LoongArch32 inline assembly
-
Add warn-by-default
integer_to_ptr_transmuteslint against integer-to-pointer transmutes -
Stabilize
sse4aandtbmtarget features -
Add
target_env = "macabi"andtarget_env = "sim"cfgs as replacements for thetarget_abicfgs with the same values.
Compiler
Platform Support
Update Sep 18, 2025 tracked by Updatify
Rust 1.90.0
Language
-
Split up the
unknown_or_malformed_diagnostic_attributeslint. This lint has been split up into four finer-grained lints, withunknown_or_malformed_diagnostic_attributesnow being the lint group that contains these lints:-
unknown_diagnostic_attributes: unknown to the current compiler -
misplaced_diagnostic_attributes: placed on the wrong item -
malformed_diagnostic_attributes: malformed attribute syntax or options -
malformed_diagnostic_format_literals: malformed format string literal
-
- Allow constants whose final value has references to mutable/external memory, but reject such constants as patterns
- Allow volatile access to non-Rust memory, including address 0
Compiler
-
Use
lldby default onx86_64-unknown-linux-gnu. -
Tier 3
musltargets now link dynamically by default. Affected targets:-
mips64-unknown-linux-muslabi64 -
powerpc64-unknown-linux-musl -
powerpc-unknown-linux-musl -
powerpc-unknown-linux-muslspe -
riscv32gc-unknown-linux-musl -
s390x-unknown-linux-musl -
thumbv7neon-unknown-linux-musleabihf
-
Platform Support
Update Aug 7, 2025 tracked by Updatify
Rust 1.89.0
Language
-
Stabilize explicitly inferred const arguments (
feature(generic_arg_infer)) -
Add a warn-by-default
mismatched_lifetime_syntaxeslint. This lint detects when the same lifetime is referred to by different syntax categories between function arguments and return values, which can be confusing to read, especially in unsafe code. This lint supersedes the warn-by-defaultelided_named_lifetimeslint. -
Expand
unpredictable_function_pointer_comparisonsto also lint on function pointer comparisons in external macros -
Make the
dangerous_implicit_autorefslint deny-by-default - Stabilize the avx512 target features
-
Stabilize
klandwidekltarget features for x86 -
Stabilize
sha512,sm3andsm4target features for x86 -
Stabilize LoongArch target features
f,d,frecipe,lasx,lbt,lsx, andlvz -
Remove
i128andu128fromimproper_ctypes_definitions -
Stabilize
repr128(#[repr(u128)],#[repr(i128)])
Update Jun 26, 2025 tracked by Updatify
Rust 1.88.0
Language
-
Stabilize
#![feature(let_chains)]in the 2024 edition. This feature allows&&-chainingletstatements insideifandwhile, allowing intermixture with boolean expressions. The patterns inside theletsub-expressions can be irrefutable or refutable. -
Stabilize
#![feature(naked_functions)]. Naked functions allow writing functions with no compiler-generated epilogue and prologue, allowing full control over the generated assembly for a particular function. -
Stabilize
#![feature(cfg_boolean_literals)]. This allows using boolean literals ascfgpredicates, e.g.#[cfg(true)]and#[cfg(false)]. -
Fully de-stabilize the
#[bench]attribute. Usage of#[bench]without#![feature(custom_test_frameworks)]already triggered a deny-by-default future-incompatibility lint since Rust 1.77, but will now become a hard error. -
Add warn-by-default
dangerous_implicit_autorefslint against implicit autoref of raw pointer dereference. The lint will be bumped to deny-by-default in the next version of Rust.
Update May 15, 2025 tracked by Updatify
Rust 1.87.0
Language
-
Stabilize
asm_gotofeature -
Allow parsing open beginning ranges (
..EXPR) after unary operators!,-, and*. -
Don’t require method impls for methods with
Self: Sizedbounds inimpls for unsized types -
Stabilize
feature(precise_capturing_in_traits)allowinguse<...>bounds on return positionimpl Traitintraits
Compiler
Platform Support
Refer to Rust’s platform support page for more information on Rust’s tiered platform support.
Libraries
Update Apr 3, 2025 tracked by Updatify
Rust 1.86.0
Language
- Stabilize upcasting trait objects to supertraits.
-
Allow safe functions to be marked with the
#[target_feature]attribute. -
The
missing_abilint now warns-by-default. -
Rust now lints about double negations, to catch cases that might have intended to be a prefix decrement operator (
--x) as written in other languages. This was previously a clippy lint,clippy::double_neg, and is now available directly in Rust asdouble_negations. - More pointers are now detected as definitely not-null based on their alignment in const eval.
-
Empty
repr()attribute applied to invalid items are now correctly rejected. -
Inner attributes
#![test]and#![rustfmt::skip]are no longer accepted in more places than intended.
Compiler
Update Feb 20, 2025 tracked by Updatify
Rust 1.85.0
Language
- The 2024 Edition is now stable. See the edition guide for more details.
- Stabilize async closures See RFC 3668 for more details.
-
Stabilize
#[diagnostic::do_not_recommend] -
Add
unpredictable_function_pointer_comparisonslint to warn against function pointer comparisons -
Lint on combining
#[no_mangle]and#[export_name]attributes.
Compiler
-
The unstable flag
-Zpolymorphizehas been removed, see https://github.com/rust-lang/compiler-team/issues/810 for some background.
Platform Support
Refer to Rust’s platform support page for more information on Rust’s tiered platform support.
Libraries
Update Jan 31, 2025 tracked by Updatify
Rust 1.84.1
Update Jan 9, 2025 tracked by Updatify
Rust 1.84.0
Language
-
Allow
#[deny]inside#[forbid]as a no-op -
Show a warning when
-Ctarget-featureis used to toggle features that can lead to unsoundness due to ABI mismatches - Use the next-generation trait solver in coherence
- Allow coercions to drop the principal of trait objects
-
Support
/as the path separator forinclude!()in all cases on Windows -
Taking a raw ref (
raw (const|mut)) of a deref of a pointer (*ptr) is now safe - Stabilize s390x inline assembly
- Stabilize Arm64EC inline assembly
- Lint against creating pointers to immediately dropped temporaries
-
Execute drop glue when unwinding in an
extern "C"function
Compiler
Update Nov 28, 2024 tracked by Updatify
Rust 1.83.0
Language
-
Stabilize
&mut,*mut,&Cell, and*const Cellin const. -
Allow creating references to statics in
constinitializers. -
Implement raw lifetimes and labels (
'r#ident). - Define behavior when atomic and non-atomic reads race.
- Non-exhaustive structs may now be empty.
-
Disallow implicit coercions from places of type
! -
const externfunctions can now be defined for other calling conventions. -
Stabilize
expr_2021macro fragment specifier in all editions. -
The
non_local_definitionslint now fires on less code and warns by default.
Compiler
-
Deprecate unsound
-Csoft-floatflag. - Add many new tier 3 targets:
Update Oct 17, 2024 tracked by Updatify
Rust 1.82.0
Language
- Don’t make statement nonterminals match pattern nonterminals
- Patterns matching empty types can now be omitted in common cases
- Enforce supertrait outlives obligations when using trait impls
-
addr_of(_mut)!macros and the newly stabilized&raw (const|mut)are now safe to use with all static items - size_of_val_raw: for length 0 this is safe to call
-
Reorder trait bound modifiers after
for<...>binder in trait bounds -
Stabilize
+ use<'lt>opaque type precise capturing (RFC 3617) -
Stabilize
&raw constand&raw mutoperators (RFC 2582) - Stabilize unsafe extern blocks (RFC 3484)
-
Stabilize nested field access in
offset_of! -
Do not require
Tto be live when dropping[T; 0] -
Stabilize
constoperands in inline assembly -
Stabilize floating-point arithmetic in
const fn
Update Sep 5, 2024 tracked by Updatify
Rust 1.81.0
Language
-
Abort on uncaught panics in
extern "C"functions. -
Fix ambiguous cases of multiple
&in elided self lifetimes. -
Stabilize
#[expect]for lints (RFC 2383), like#[allow]with a warning if the lint is not fulfilled. - Change method resolution to constrain hidden types instead of rejecting method candidates.
-
Bump
elided_lifetimes_in_associated_constantto deny. -
offset_from: always allow pointers to point to the same address. - Allow constraining opaque types during subtyping in the trait system.
- Allow constraining opaque types during various unsizing casts.
- Deny keyword lifetimes pre-expansion.
Compiler
Update Jul 25, 2024 tracked by Updatify
Rust 1.80.0
Language
- Document maximum allocation size
- Allow zero-byte offsets and ZST read/writes on arbitrary pointers
- Support C23’s variadics without a named parameter
-
Stabilize
exclusive_range_patternfeature -
Guarantee layout and ABI of
Resultin some scenarios
Compiler
- Update cc crate to v1.0.97 allowing additional spectre mitigations on MSVC targets
-
Allow field reordering on types marked
repr(packed(1)) - Add a lint against never type fallback affecting unsafe code
- Disallow cast with trailing braced macro in let-else
-
Expand
for_loops_over_fallibleslint to lint on fallibles behind references. -
self-contained linker: retry linking without
-fuse-ld=lldon CCs that don’t support it -
Do not parse CVarArgs (
...) as a type in trait bounds
Update Jun 13, 2024 tracked by Updatify
Rust 1.79.0
Language
-
Stabilize inline
const {}expressions. - Prevent opaque types being instantiated twice with different regions within the same function.
- Stabilize WebAssembly target features that are in phase 4 and 5.
-
Add the
redundant_lifetimeslint to detect lifetimes which are semantically redundant. -
Stabilize the
unnameable_typeslint for public types that can’t be named. -
Enable debuginfo in macros, and stabilize
-C collapse-macro-debuginfoand#[collapse_debuginfo]. -
Propagate temporary lifetime extension into
ifandmatchexpressions. -
Restrict promotion of
const fncalls. -
Warn against refining impls of crate-private traits with
refining_impl_traitlint. - Stabilize associated type bounds (RFC 2289).
-
Stabilize importing
mainfrom other modules or crates. - Check return types of function types for well-formedness
Update May 2, 2024 tracked by Updatify
Rust 1.78.0
Language
-
Stabilize
#[cfg(target_abi = ...)] -
Stabilize the
#[diagnostic]namespace and#[diagnostic::on_unimplemented]attribute - Make async-fn-in-trait implementable with concrete signatures
-
Make matching on NaN a hard error, and remove the rest of
illegal_floating_point_literal_pattern - static mut: allow mutable reference to arbitrary types, not just slices and arrays
-
Extend
invalid_reference_castingto include references casting to bigger memory layout -
Add
non_contiguous_range_endpointslint for singleton gaps after exclusive ranges -
Add
wasm_c_abilint for use of older wasm-bindgen versions This lint currently only works when using Cargo. -
Update
indirect_structural_matchandpointer_structural_matchlints to match RFC -
Make non-
PartialEq-typed consts as patterns a hard error -
Split
refining_impl_traitlint into_reachable,_internalvariants
Update Apr 9, 2024 tracked by Updatify
Rust 1.77.2
Update Mar 29, 2024 tracked by Updatify
Rust 1.77.1
- Revert stripping debuginfo by default for Windows This fixes a regression in 1.77 by reverting to the previous default. Platforms other than Windows are not affected.
- Internal: Fix heading anchor rendering in doc pages
Update Mar 21, 2024 tracked by Updatify
Rust 1.77.0
Language
- Reveal opaque types within the defining body for exhaustiveness checking.
- Stabilize C-string literals.
- Stabilize THIR unsafeck.
-
Add lint
static_mut_refsto warn on references to mutable statics. - Support async recursive calls (as long as they have indirection).
-
Undeprecate lint
unstable_featuresand make use of it in the compiler. - Make inductive cycles in coherence ambiguous always.
- Get rid of type-driven traversal in const-eval interning, only as a future compatibility lint for now.
- Deny braced macro invocations in let-else.
Compiler
Update Feb 8, 2024 tracked by Updatify
Rust 1.76.0
Language
- Document Rust ABI compatibility between various types
- Also: guarantee that char and u32 are ABI-compatible
-
Add lint
ambiguous_wide_pointer_comparisonsthat supersedesclippy::vtable_address_comparisons
Compiler
-
Lint pinned
#[must_use]pointers (in particular,Box<T>whereTis#[must_use]) inunused_must_use. - Soundness fix: fix computing the offset of an unsized field in a packed struct
- Soundness fix: fix dynamic size/align computation logic for packed types with dyn Trait tail
-
Add
$message_typefield to distinguish json diagnostic outputs - Enable Rust to use the EHCont security feature of Windows
- Add tier 3 {x86_64,i686}-win7-windows-msvc targets
- Add tier 3 aarch64-apple-watchos target
- Add tier 3 arm64e-apple-ios & arm64e-apple-darwin targets
Update Dec 28, 2023 tracked by Updatify
Rust 1.75.0
Language
-
Stabilize
async fnand return-positionimpl Traitin traits. -
Allow function pointer signatures containing
&mut Tinconstcontexts. -
Match
usize/isizeexhaustively with half-open ranges. -
Guarantee that
charhas the same size and alignment asu32. - Document that the null pointer has the 0 address.
-
Allow partially moved values in
match. - Add notes about non-compliant FP behavior on 32bit x86 targets.
- Stabilize ratified RISC-V target features.
Compiler
Update Nov 16, 2023 tracked by Updatify
Rust 1.74.0
Language
-
Codify that
std::mem::Discriminant<T>does not depend on any lifetimes in T -
Replace
private_in_publiclint withprivate_interfacesandprivate_boundsper RFC 2145. Read more in RFC 2145. -
Allow explicit
#[repr(Rust)] - closure field capturing: don’t depend on alignment of packed fields
-
Enable MIR-based drop-tracking for
asyncblocks -
Stabilize
impl_trait_projections
Compiler
- stabilize combining +bundle and +whole-archive link modifiers
-
Stabilize
PATHoption for--print KIND=PATH -
Enable ASAN/LSAN/TSAN for
*-apple-ios-macabi - Promote loongarch64-unknown-none* to Tier 2
-
Add
i686-pc-windows-gnullvmas a tier 3 target
Libraries
Update Oct 6, 2023 tracked by Updatify
Rust 1.73.0
Language
-
Uplift
clippy::fn_null_checklint asuseless_ptr_null_checks. -
Make
noop_method_callwarn by default. -
Support interpolated block for
tryandasyncin macros. -
Make
unconditional_recursionlint detect recursive drops. - Future compatibility warning for some impls being incorrectly considered not overlapping.
-
The
invalid_reference_castinglint is now deny-by-default (instead of allow-by-default)
Compiler
-
Write version information in a
.commentsection like GCC/Clang. - Add documentation on v0 symbol mangling.
-
Stabilize
extern "thiscall"and"thiscall-unwind"ABIs. - Only check outlives goals on impl compared to trait.
- Infer type in irrefutable slice patterns with fixed length as array.
- Discard default auto trait impls if explicit ones exist.
- Add several new tier 3 targets:
Update Sep 20, 2023 tracked by Updatify
Rust 1.71.1
- Fix CVE-2023-38497: Cargo did not respect the umask when extracting dependencies
- Fix bash completion for users of Rustup
-
Do not show
suspicious_double_ref_oplint when callingborrow() - Fix ICE: substitute types before checking inlining compatibility
-
Fix ICE: don’t use
can_eqinderive(..)suggestion for missing method - Fix building Rust 1.71.0 from the source tarball
Update Sep 20, 2023 tracked by Updatify
Rust 1.72.1
- Adjust codegen change to improve LLVM codegen
- rustdoc: Fix self ty params in objects with lifetimes
- Fix regression in compile times
- Resolve some ICE regressions in the compiler:
Update Aug 24, 2023 tracked by Updatify
Rust 1.72.0
Language
- Replace const eval limit by a lint and add an exponential backoff warning
-
expand: Change how
#![cfg(FALSE)]behaves on crate root - Stabilize inline asm for LoongArch64
-
Uplift
clippy::undropped_manually_dropslint -
Uplift
clippy::invalid_utf8_in_uncheckedlint asinvalid_from_utf8_uncheckedandinvalid_from_utf8 -
Uplift
clippy::cast_ref_to_mutlint asinvalid_reference_casting -
Uplift
clippy::cmp_nanlint asinvalid_nan_comparisons - resolve: Remove artificial import ambiguity errors
-
Don’t require associated types with Self: Sized bounds in
dyn Traitobjects
Compiler
Update Jul 13, 2023 tracked by Updatify
Rust 1.71.0
Language
-
Stabilize
raw-dylib,link_ordinal,import_name_typeand-Cdlltool. -
Uplift
clippy::{drop,forget}_{ref,copy}lints. - Type inference is more conservative around constrained vars.
-
Use fulfillment to check
Dropimpl compatibility
Compiler
-
Evaluate place expression in
PlaceMention, makinglet _ =patterns more consistent with respect to the borrow checker. -
Add
--print deployment-targetflag for Apple targets. -
Stabilize
extern "C-unwind"and friends. The existingextern "C"etc. may change behavior for cross-language unwinding in a future release. -
Update the version of musl used on
*-linux-musltargets to 1.2.3, enabling time64 on 32-bit systems. -
Stabilize
debugger_visualizerfor embedding metadata like Microsoft’s Natvis. - Enable flatten-format-args by default.
Update Jun 1, 2023 tracked by Updatify
Rust 1.70.0
Language
-
Relax ordering rules for
asm!operands -
Properly allow macro expanded
format_argsinvocations to uses captures - Lint ambiguous glob re-exports
-
Perform const and unsafe checking for expressions in
let _ = exprposition.
Compiler
-
Extend -Cdebuginfo with new options and named aliases This provides a smaller version of debuginfo for cases that only need line number information (
-Cdebuginfo=line-tables-only), which may eventually become the default for-Cdebuginfo=1. -
Make
unused_allocationlint againstBox::newtoo - Detect uninhabited types early in const eval
- Switch to LLD as default linker for {arm,thumb}v4t-none-eabi
-
Add tier 3 target
loongarch64-unknown-linux-gnu -
Add tier 3 target for
i586-pc-nto-qnx700(QNX Neutrino RTOS, version 7.0),
Update Apr 20, 2023 tracked by Updatify
Rust 1.69.0
Language
-
Deriving built-in traits on packed structs works with
Copyfields. -
Stabilize the
cmpxchg16btarget feature on x86 and x86_64. - Improve analysis of trait bounds for associated types.
- Allow associated types to be used as union fields.
-
Allow
Self: Autotraitbounds on dyn-safe trait methods. -
Treat
stras containing[u8]for auto trait purposes.
Compiler
-
Upgrade
*-pc-windows-gnuon CI to mingw-w64 v10 and GCC 12.2. - Rework min_choice algorithm of member constraints.
-
Support
trueandfalseas boolean flags in compiler arguments. -
Default
repr(C)enums toc_intsize.
Libraries
Update Mar 28, 2023 tracked by Updatify
Rust 1.68.2
- Update the GitHub RSA host key bundled within Cargo. The key was rotated by GitHub on 2023-03-24 after the old one leaked.
- Mark the old GitHub RSA host key as revoked. This will prevent Cargo from accepting the leaked key even when trusted by the system.
-
Add support for
@revokedand a better error message for@cert-authorityin Cargo’s SSH host key verification
Update Mar 27, 2023 tracked by Updatify
Rust 1.68.1
- Fix miscompilation in produced Windows MSVC artifacts This was introduced by enabling ThinLTO for the distributed rustc which led to miscompilations in the resulting binary. Currently this is believed to be limited to the -Zdylib-lto flag used for rustc compilation, rather than a general bug in ThinLTO, so only rustc artifacts should be affected.
- Fix –enable-local-rust builds
-
Treat
$prefix-clangasclangin linker detection code - Fix panic in compiler code
Update Mar 9, 2023 tracked by Updatify
Rust 1.68.0
Language
-
Stabilize default_alloc_error_handler This allows usage of
allocon stable without requiring the definition of a handler for allocation failure. Defining custom handlers is still unstable. -
Stabilize
efiapicalling convention. - Remove implicit promotion for types with drop glue
Compiler
-
Change
bindings_with_variant_nameto deny-by-default - Allow .. to be parsed as let initializer
-
Add
armv7-sony-vita-newlibeabihfas a tier 3 target - Always check alignment during compile-time const evaluation
- Disable “split dwarf inlining” by default.
- Add vendor to Fuchsia’s target triple
- Enable sanitizers for s390x-linux
Libraries
Update Jan 26, 2023 tracked by Updatify
Rust 1.67.0
Language
-
Make
Sizedpredicates coinductive, allowing cycles. -
#[must_use]annotations onasync fnalso affect theFuture::Output. - Elaborate supertrait obligations when deducing closure signatures.
-
Invalid literals are no longer an error under
cfg(FALSE). - Unreserve braced enum variants in value namespace.
Compiler
-
Enable varargs support for calling conventions other than
Corcdecl. - Add new MIR constant propagation based on dataflow analysis.
- Optimize field ordering by grouping m*2^n-sized fields with equivalently aligned ones.
-
Stabilize native library modifier
verbatim.
Added, updated, and removed targets:
-
Add a tier 3 target for PowerPC on AIX,
powerpc64-ibm-aix. -
Add a tier 3 target for the Sony PlayStation 1,
mipsel-sony-psx.