The Rust Foundation has released version 1.73 of its general purpose programming language, Rust. Originally founded by the Mozilla project, Rust is now developed under the auspices of the independent non-profit organization. This release focuses on safe memory work and achieving high parallelism of tasks without the need for a garbage collector and Runtime.
Rust ensures safe memory work by preventing errors and protecting against problems related to low-level memory manipulation, such as accessing memory after its release or extending beyond the buffer. The language uses methods to check references, track object ownership, consider object lifetime, and assess memory access correctness during code execution. It also provides means to protect against integer overflow, requires variable initialization before use, handles errors in the standard library, applies the concept of immutable links and default variables, and offers strong static typification to minimize logical errors.
For library distribution and dependency management, Rust utilizes the Cargo package manager. Libraries can be hosted on the crates.io repository.
The main innovations included in version 1.73 of Rust are:
- Processing messages issued by the Panic macro, which is used for emergency program completion. The macro now displays the message on a separate line without quotation marks, improving readability and avoiding confusion when nested quotes or multiple lines are involved. Example:
fn main() { let file = "Ferris.txt"; panic!("Oh no! {File:?} not found!"); }
The previous output:Thread 'Main' panicked at 'Oh no! "Ferris.txt" not found!', src/main.rs:3:5
. The new output:Thread 'Main' panicked at src/main.rs:3:5: Oh no! "Ferris.txt" not found!
. - Displaying messages when the Assert_eq and Assert_ne macros are triggered. Example:
fn main() { assert_eq!("🦀", "🐟", "Ferris is not a fish"); }
The previous output:Thread 'Main' panicked at 'assertion failed: `(left == right)`, left: `🦀`, right: `🐟`: Ferris is not a fish', src/main.rs:2:2: 2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2:2