релиз на системния език за програмиране , развиван от проекта Mozilla. Езикът е фокусиран върху безопасната работа с паметта, осигурява автоматично управление на паметта и предоставя средства за постигане на висок паралелизъм при изпълнението на задачи, без да използва събирач на боклук и runtime.
Автоматичното управление на паметта в Rust освобождава разработчика от манипулиране с указатели и го защитава от проблеми, произтичащи от ниско ниво работа с паметта, като достъп до зона на паметта след нейното освобождаване, разименуване на нулеви указатели, излизане извън границите на буфера и т.н. За разпространение на библиотеки, осигуряване на компилация и управление на зависимости, проектът се развива чрез пакетен мениджър. , който позволява да получите необходимите библиотеки за програмата с едно кликване. За хостване на библиотеки се поддържа хранилище .
Основни :
- Типажи (trait) , и реализирани за heap-място Box‹dyn FnOnce›, Box‹dyn FnMut› и Box‹dyn Fn›;
- Добавено привеждане на замикания до небезопасни указатели на функции (unsafe fn);
- Реализирана е възможността за извикване на макроса «dbg!» без аргументи, за да се покаже името на файла и номера на реда в stderr без инспектиране на променлива, което е удобно за отстраняване на грешки в условни изрази;
- В типовете за числа с плаваща запетая f32 и f64 е добавен метод «» за копиране на знака от едно число в друго;
- В типовете Range* е добавен метод ««, позволяващ проверка дали посоченото значение попада в диапазона;
- Добавен е метод , позволяващ отразяване и разделяне на заеманото значение RefCell за различни компоненти на заеманите данни;
- Добавен е метод за замяна на текущото значение на RefCell и връщане на старото значение като резултат;
- Добавен е метод за хеширане на указател или референция по адрес, а не на адресирана стойност;
- Добавен е метод за копиране на съдържанието на опции Option‹&T› или Option‹&mut T›;
- В разряд стабилни е преведена нова порция API, в това число стабилизирани методи
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 (интерфейс за използване на WebAssembly извън браузъра); - Инструментариумът Rust е адаптиран за дистрибуции на базата на стандартната библиотека на Си Musl.
Източник: opennet.ru
