Umhlwa 1.35 Ukukhutshwa koLwimi lweNkqubo

yathatha indawo inkqubo yolwimi ukukhululwa Umhlwa 1.35, ephuhliswe yiprojekthi yeMozilla. Ulwimi lujolise ekukhuselweni kwememori, lubonelela ngolawulo lwememori oluzenzekelayo, kwaye lubonelela ngeendlela zokufezekisa ukuhambelana okuphezulu komsebenzi ngaphandle kokusebenzisa umqokeleli wenkunkuma okanye ixesha lokuqhuba.

Ulawulo lwenkumbulo oluzenzekelayo lwe-Rust lukhulula umphuhlisi ekusetyenzisweni kwesalathisi kwaye ikhusela kwiingxaki ezivela kulawulo lwenkumbulo olukwinqanaba elisezantsi, elifana nofikelelo lwememori yasemva kwe-free, izalathisi ezingenanto, ukugqithiswa kwe-buffer, nokunye okunjalo. Umphathi wephakheji uyaphuhliswa ukuze asasaze amathala eencwadi, aqinisekise ukudibanisa kunye nokulawula ukuxhomekeka kwiprojekthi. Cargo, ikuvumela ukuba ufumane amathala eencwadi afunekayo kudweliso lwenkqubo ngonqakrazo olunye. Uvimba uyaxhaswa ukubamba amathala eencwadi iikhreyithi.io.

Siseko ezintsha:

  • Типажи (trait) FnOnce, FnMut и Fn реализованы для размещаемых в куче boxed-типов Box‹dyn FnOnce›, Box‹dyn FnMut› и Box‹dyn Fn›;
  • Yongeziwe ithuba приведения замыканий к небезопасным указателям на функции (unsafe fn);
  • Реализована возможность вызова макроса «dbg!» без аргументов для отображения в stderr имени файла и номера строки без инспектирования переменной, что удобно для отладки срабатывания условных выражений;
  • В типы для чисел с плавающей запятой f32 и f64 добавлен метод «copysign» для копирования знака из одного числа в другое;
  • В типы Range* добавлен метод «iqulethwe«, позволяющий проверить попадание указанного значения в диапазон;
  • Indlela eyongeziweyo Ref:Cell:map_split, позволяющие отразить и разделить заимствованное значение RefCell для разных компонентов заимствованных данных;
  • Indlela eyongeziweyo RefCell::replace_with для замены текущего значения RefCell и возвращения старого значения в качестве результата;
  • Indlela eyongeziweyo ptr::hash для хэширования указателя или ссылки по адресу, а не адресуемому значению;
  • Indlela eyongeziweyo Option::copied для копирования содержимого опций Option‹&T› или Option‹&mut T›;
  • Inxalenye entsha ye-APIs idluliselwe kwinqanaba elizinzile, kubandakanywa neendlela ezizinzile
    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 (интерфейс UWAYI для использования WebAssembly вне браузера);

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

umthombo: opennet.ru

Yongeza izimvo