Change8

Rust Language

Dev Tools

Empowering everyone to build reliable and efficient software.

Latest: 1.93.113 releases9 breaking changes6 common errorsView on GitHub

Release History

1.93.13 fixes
Feb 12, 2026

This patch release addresses an ICE affecting rustfmt, resolves a Clippy false-positive, and fixes file descriptor leaks on the wasm32-wasip2 target.

1.93.0Breaking7 fixes9 features
Jan 22, 2026

This release stabilizes several language features, introduces new stabilized APIs for slices, strings, and collections, and updates compiler flags and platform support. It also includes important compatibility changes regarding the `#[test]` attribute enforcement and changes in Cargo's environment variable setting.

1.92.0Breaking5 fixes12 features
Dec 11, 2025

This release introduces several new stabilized APIs, including zeroed allocation methods for Box, Rc, and Arc, and improvements to iterator handling and compiler diagnostics. It also updates the minimum required LLVM version and fixes a panic issue in `Repeat::last`/`count`.

1.91.12 fixes
Nov 10, 2025

This patch release introduces file locking support for illumos and resolves linker errors for WASM targets related to the `wasm_import_module` attribute.

1.91.0Breaking5 fixes18 features
Oct 30, 2025

This release stabilizes several new APIs, including strict integer arithmetic methods and various `Path`/`PathBuf` comparison traits, while also promoting Windows targets to Tier 1 and Tier 2 support. A significant language change is upgrading the `semicolon_in_expressions_from_macros` lint to deny.

1.90.0Breaking3 fixes12 features
Sep 18, 2025

This release introduces finer-grained diagnostic lints, stabilizes several integer arithmetic methods for signed subtraction, and updates compiler defaults like using `lld` on Linux x86_64.

1.89.0Breaking9 fixes18 features
Aug 7, 2025

This release stabilizes many language features, including generic argument inference and `repr(u128)`, stabilizes numerous APIs like file locking and `NonNull` methods, and introduces new Tier-3 targets for LoongArch.

1.88.0Breaking3 fixes15 features
Jun 26, 2025

This release stabilizes several language features like `let_chains` and `naked_functions`, stabilizes numerous APIs including `extract_if` for collections and new slice chunking methods, and introduces breaking changes related to the removal of the `#[bench]` attribute and stricter borrow checking.

1.87.0Breaking26 features
May 15, 2025

This release stabilizes several language features, including `asm_goto`, and introduces significant API stabilization in the standard library, notably the anonymous pipe API and various slice/pointer manipulation methods. The compiler also enforces SSE2 for i686 targets and removes support for the i586 Windows target.

1.86.0Breaking1 fix24 features
Apr 3, 2025

This release stabilizes several useful APIs like `next_up`/`next_down` for floats and disjoint mutable slice access, introduces new compiler checks for double negations, and expands platform support with numerous new tier 3 targets. It also hardens error conditions related to `wasm_c_abi` and enum casting.

1.85.15 fixes
Mar 23, 2025

This patch release (1.85.1) addresses several bugs, including fixes for doctest merging, documentation generation checks, and issues with `std::fs::rename` on older Windows versions.

1.85.0Breaking4 fixes21 features
Feb 20, 2025

This release stabilizes the Rust 2024 Edition and async closures, alongside numerous API stabilizations and compiler improvements. A key compatibility change involves how `core::ffi::c_char` signedness is determined and how the `test` cfg is handled.

1.84.18 fixes
Jan 31, 2025

This patch release focuses on fixing various bugs, including issues in diagnostics, incremental rebuilds, trait solver performance, and several fixes related to building Rust from source distributions.

Common Errors

FromSolverError2 reports

FromSolverError usually indicates an unexpected success or failure within the trait solver, often triggered by incorrect assumptions about goal satisfiability during type checking or const evaluation. To fix it, carefully examine the code path leading to the error, ensuring that goals are properly normalized and that the solver's success/failure states align with the expected outcome. Double-check trait bounds and const generics involved in the problematic goal for inconsistencies or missing implementations.

NextSolverError2 reports

NextSolverError typically arises when the type solver encounters an unexpected successful goal state while trying to resolve ambiguity or handle complex type constraints, especially with features like `impl Trait` or generic constants. The fix involves carefully examining the type checking logic around the reported location to identify incorrect assumptions about goal states, and ensuring that error handling gracefully manages seemingly successful goals that actually indicate unresolved ambiguity. This might require refining the solver's logic to correctly identify genuinely resolved types and prevent premature success signals.

ScrubbedTraitError2 reports

`ScrubbedTraitError` usually arises when a trait bound needed during monomorphization or const evaluation has been removed or is unavailable. Ensure that all required trait bounds are present and visible at the point where the generic function or constant is used. If a trait is conditionally implemented, verify the necessary conditions hold at usage sites.

SerialConnectionError1 report

SerialConnectionError in Rust often indicates issues establishing or maintaining a serial port connection, possibly due to incorrect port names or insufficient permissions. Fix this by verifying the serial port path is correct and accessible by your user, for example /dev/ttyUSB0; you might need to add your user to the dialout group (`sudo usermod -a -G dialout $USER`) and relogin. Consider adding error handling with `Result` and handling timeouts for more robust connection management.

AnotherError1 report

The "AnotherError" error usually arises when using the `?` operator (try operator) to propagate errors, but the error type of the function doesn't match or isn't compatible with the error type being returned by the expression. Ensure your function's return type is `Result<T, E>` where `E` can accommodate the error type of the expression preceding `?`, often by implementing `From`/`Into` traits for error conversion or using a common error enum. Consider using `map_err` if a direct conversion isn't possible.

ParseFloatError1 report

ParseFloatError usually arises when attempting to parse a string that does not represent a valid floating-point number according to Rust's parsing rules. Ensure the input string contains only digits, a single decimal point (.), an optional sign (+ or -), and optional exponent notation (e.g., "1.0e-5"). If the string contains other characters like commas or non-numeric symbols, remove them before parsing or use a more lenient parsing approach if these characters are intended as separators.

Related Dev Tools Packages

Subscribe to Updates

Get notified when new versions are released

RSS Feed