Versió del llenguatge de programació Rust 1.35

tingué lloc llançament del llenguatge de programació del sistema Rovell 1.35desenvolupat pel projecte Mozilla. El llenguatge se centra en la gestió segura de la memòria, proporciona una gestió automàtica de la memòria i proporciona els mitjans per aconseguir un paral·lelisme elevat de treballs evitant l'ús d'un col·lector d'escombraries i temps d'execució.

La gestió automàtica de la memòria de Rust estalvia al desenvolupador de manipular punters i protegeix dels problemes derivats de la manipulació de la memòria de baix nivell, com ara accedir a una àrea de memòria després d'haver-se alliberat, desreferenciar punters nuls, desbordaments de memòria intermèdia, etc. Per distribuir biblioteques, assegurar el muntatge i gestionar les dependències, el projecte desenvolupa un gestor de paquets Càrrega, que us permet obtenir les biblioteques que necessiteu per al programa amb un sol clic. S'admet un dipòsit per allotjar biblioteques caixes.io.

El principal innovacions:

  • Типажи (trait) FnOnce, FnMut и Fn реализованы для размещаемых в куче boxed-типов Box‹dyn FnOnce›, Box‹dyn FnMut› и Box‹dyn Fn›;
  • Afegit oportunitat приведения замыканий к небезопасным указателям на функции (unsafe fn);
  • Реализована возможность вызова макроса «dbg!» без аргументов для отображения в stderr имени файла и номера строки без инспектирования переменной, что удобно для отладки срабатывания условных выражений;
  • В типы для чисел с плавающей запятой f32 и f64 добавлен метод «copysign» для копирования знака из одного числа в другое;
  • В типы Range* добавлен метод «conté«, позволяющий проверить попадание указанного значения в диапазон;
  • Mètode afegit Ref:Cell:map_split, позволяющие отразить и разделить заимствованное значение RefCell для разных компонентов заимствованных данных;
  • Mètode afegit RefCell::replace_with для замены текущего значения RefCell и возвращения старого значения в качестве результата;
  • Mètode afegit ptr::hash для хэширования указателя или ссылки по адресу, а не адресуемому значению;
  • Mètode afegit Option::copied для копирования содержимого опций Option‹&T› или Option‹&mut T›;
  • S'ha transferit una nova part de les API a la categoria estable, inclosos els mètodes que s'han estabilitzat
    f32::copysign,
    f64::copysign,
    RefCell::replace_with,
    RefCell::map_split,
    ptr::hash,
    Range::contains,
    RangeFrom::contains,
    RangeTo::contains,
    RangeInclusive::contains,
    RangeToInclusive::contains и
    Option::copied;

  • В clippy (linter) добавлена проверка drop_bounds, срабатывающая при добавлении привязки «T: Drop» в функцию;
  • В компилятор добавлена поддержка новой целевой платформы
    wasm32-unknown-wasi (интерфейс Wasi для использования WebAssembly вне браузера);

  • Инструментарий Rust адаптирован для дистрибутивов на основе стандартной Си-библиотеки Musl.

Font: opennet.ru

Afegeix comentari