Published release system programming language Rust 1.54, based Mozilla project, but is now developing under the auspices of an independent non-profit organization Rust Foundation. Language is focused on the safe operation of the memory, provides automatic memory management and provides the means to achieve high concurrency assignments, thus dispensing with the use of garbage collection and runtime (runtime is reduced to the basic initialization and maintenance of the standard library).
The automatic memory management in Rust frees the developer from error when handling pointers and prevents problems due to the low level of memory, such as memory handling after her release, null pointer dereference, the output of the buffer boundaries, and so on. NS. To distribute the library, assembly and maintenance of project management dependence develops Cargo package manager. To accommodate the libraries supported repository crates.io .
- Added the ability to use macros within the attributes that resemble functions (procedural macros and macros created using the macro “macro_rules!”). From features like macros differ symbol “!” after the name (macro! (…)) and the substitution of the original text, instead of generating a macro function call. Call macros within attribute might be useful to include in the document the contents of the comments from other files. For example, to insert the README file’s contents and the result of execution of the script, you can specify: # [doc = include_str ( “README.md”)!] # [Path = concat (env ( “OUT_DIR”), “/generated.rs”!!! )] mod generated;
- to stabilize the built-in functions of the compiler (Intrinsics) for wasm32 platform, allowing to use SIMD instructions WebAssembly. Most of the features, such as v128_bitselect, available in “safe” mode, but some functions work with a pointer (eg, v128_load) are “unsafe”.
- Returned use the default incremental compilation, which allows to recompile only the changed parts of the code, which significantly reduces the project build time when recompiling after making minor changes. Incremental compilation has been disabled in the release of 1.52.1 for detection of hidden errors, surfaced after performing additional validation of load data from the disk cache.
- In the category of stable translated the new portion of the API, including stabilized:
- BTreeMap :: into_keys
- BTreeMap :: into_values
- HashMap :: into_keys
- HashMap :: into_values
- arch :: wasm32
- VecDeque :: binary_search
- VecDeque :: binary_search_by
- VecDeque :: binary_search_by_key
- VecDeque :: partition_point