Руст 1.69 Издание за програмски јазик

Објавено е објавувањето на програмскиот јазик за општа намена Rust 1.69, основан од проектот Mozilla, но сега развиен под покровителство на независната непрофитна организација Rust Foundation. Јазикот се фокусира на безбедноста на меморијата и обезбедува средства за постигнување на висок паралелизам на работните места, притоа избегнувајќи употреба на собирач на ѓубре и време на работа (времето на работа е сведено на основна иницијализација и одржување на стандардната библиотека).

Методите за ракување со меморијата на Rust го спасуваат развивачот од грешки при манипулирање со покажувачите и го штитат од проблеми што се јавуваат поради ракување со меморијата на ниско ниво, како што се пристап до мемориската област откако ќе се ослободи, дереференцирање на нула покажувачи, пречекорувања на баферот итн. За да се дистрибуираат библиотеки, да се обезбедат градби и да управуваат со зависности, проектот го развива менаџерот на пакети Cargo. Репозиториумот crates.io е поддржан за хостирање библиотеки.

Безбедноста на меморијата е обезбедена во Rust за време на компајлирањето преку проверка на референци, следење на сопственоста на објектот, следење на животниот век на објектите (обеми) и проценка на исправноста на пристапот до меморијата за време на извршувањето на кодот. Rust исто така обезбедува заштита од прелевање на цели броеви, бара задолжителна иницијализација на вредностите на променливите пред употреба, подобро се справува со грешките во стандардната библиотека, стандардно го применува концептот на непроменливи референци и променливи, нуди силно статичко пишување за да се минимизираат логичките грешки.

Главните иновации:

  • В пакетном менеджере Cargo реализовано определение предупреждений, которые могут быть автоматически устранены, и вывод соответствующих рекомендаций по запуску «cargo fix» или «cargo clippy —fix». warning: unused import: ‘std::hash::Hash’ —> src/main.rs:1:5 | 1 | use std::hash::Hash; | ^^^^^^^^^^^^^^^ | = note: ‘#[warn(unused_imports)]’ on by default warning: ‘foo’ (bin «foo») generated 1 warning (run ‘cargo fix —bin «foo»‘ to apply 1 suggestion)
  • В Cargo добавлен вывод рекомендации по использованию команды «cargo add» при попытке установки библиотеки командой «cargo install».
  • Для сокращения времени компиляции по умолчанию прекращено включение отладочной информации в сборочных скриптах. При успешном выполнении сборочных скриптов изменение не приводит к каким-то видимым отличиям, но в случае сбоев дамп с обратной трассировкой будет содержать меньше информации. Для возвращения старого поведения в Cargo.toml следует добавить: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • Нов дел од API е преместен во категоријата стабилни, вклучувајќи ги и методите и имплементацијата на карактеристиките се стабилизирани:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Атрибутот „const“, кој ја одредува можноста да се користи во кој било контекст наместо константи, се користи во функции:
    • SocketAddr::new
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::new
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::new
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • Добавлена возможность использования флагов true и false в аргументах компилятора.

Извор: opennet.ru

Додадете коментар