Rust 1.84.0 released
Version1.84.0 of the Rust language has been released. Changes includeimproved version selection for dependencies in Cargo, the beginning of themigration to a new trait solver, and some updated pointer-provenance APIs.
Most of the time, programmers do not need to worry much aboutprovenance, and it is very clear how a pointer gotderived. However, when casting pointers to integers and back, theprovenance of the resulting pointer is underspecified. With thisrelease, Rust is adding a set of APIs that can in many casesreplace the use of integer-pointer-casts, and therefore avoid theambiguities inherent to such casts. In particular, the pattern ofusing the lowest bits of an aligned pointer to store extrainformation can now be implemented without ever casting a pointerto an integer or back. This makes the code easier to reason about,easier to analyze for the compiler, and also benefits tools likeMiri and architectures like CHERI that aim to detect and diagnosepointer misuse.