The release of the general purpose programming language Rust 1.63, founded by the Mozilla project, now developed under the auspices of the independent non -profit organization Rust Foundation. The language is focused on safe memory work and provides means to achieve a high parallelism of the tasks, while dispensing with the use of the garbage collector and Runtime (Runtime comes down to basic initialization and accompanying the standard library).
Memitory working methods in RUST save the developer from errors when manipulating with signs and protect against problems arising due to low-level memory, such as an appeal to the memory area after its release, the extension of the zero signs, exit beyond the buffer, etc. .P. To distribute libraries, ensure the assembly and management of dependence, the Cargo package manager develops. To place the libraries, the repository is supported by crates.io .
Safe memory work is ensured in RUST during compilation through references checking, tracking the ownership of objects, taking into account the lifetime of objects (visibility) and assessment of the correctness of access to memory during code execution. RUST also provides means to protect against integer overflow, requires mandatory initialization of variables before use, better processes errors in a standard library, applies the concept of irreplaceability (Immutable) links and default variables, offers strong static typification to minimize logical errors.
The main innovations :
- The requirements for the Linux environment in the compiler, the Cargo package manager and the Libstd Standard Library – the minimum requirements for Glibc are raised from version 2.11 to 2.17, and Linux cores from version 2.6.32 to 3.2. The restrictions also apply to executable RUST-application files collected from LIBSTDD. The distributions of RHEL 7, Sles 12-SP5, Debian 8 and Ubuntu 14.04 meet the new requirements. The support of RHEL 6, Sles 11-SP4, Debian 7 and Ubuntu 12.04 will be discontinued. Users who use the RUST-collected files in the environment with the old Linux nucleus, it is proposed to update their systems, stay on the old compiler issues or independently maintain their libstd branch with layers to maintain compatibility. Limited resources to continue supporting compatibility with old environment. Support for old GLIBC requires the use of old tools when checking in a continuous integration system, under the conditions of increasing the requirements for Versens in LLVM and cross-compilation utilities. Improving the requirements for the nucleus version is associated with the possibility of using new system calls in Libstd without the need to maintain the layers to ensure compatibility with old nuclei.