Rust 1.67 Programméiersprooch Fräisetzung

D'Verëffentlechung vun der Rust 1.67 allgemeng Zweck Programméierungssprooch, gegrënnt vum Mozilla-Projet, awer elo entwéckelt ënner der Regie vun der onofhängeger Asbl Rust Foundation, gouf publizéiert. D'Sprooch konzentréiert sech op d'Erënnerungssécherheet a stellt d'Moyene fir en héije Jobparallelismus z'erreechen, während d'Benotzung vun engem Gerempels a Runtime vermeit (Runtime gëtt op Basisinitialiséierung an Ënnerhalt vun der Standardbibliothéik reduzéiert).

Rust d'Erënnerungsveraarbechtungsmethoden retten den Entwéckler vu Feeler beim Manipulatioun vu Pointer a schützt géint Probleemer déi entstinn wéinst nidderegen Niveau Memory Handhabung, sou wéi Zougang zu engem Erënnerungsberäich nodeems se befreit gouf, Nullpointer ofgeleent, Pufferiwwerschlag, etc. Fir Bibliothéiken ze verdeelen, Builds ze bidden an Ofhängegkeeten ze managen, entwéckelt de Projet de Cargo Package Manager. De crates.io Repository gëtt ënnerstëtzt fir Bibliothéiken ze hosten.

Gedächtnissécherheet gëtt a Rust zur Zesummesetzungszäit zur Verfügung gestallt duerch Referenzprüfung, Verfollegung vum Objektbesëtzer, Verfollegung vun Objektliewenszäiten (Scope), an d'Korrektheet vum Gedächtniszougang wärend der Code Ausféierung bewäerten. Rust bitt och Schutz géint ganz Zuelen Iwwerschwemmungen, erfuerdert obligatoresch Initialiséierung vu variabelen Wäerter virum Gebrauch, handhabt Feeler besser an der Standardbibliothéik, applizéiert d'Konzept vun onverännerleche Referenzen a Variablen als Standard, bitt staark statesch Tippen fir logesch Feeler ze minimiséieren.

Haaptinnovatiounen:

  • Для функций async с Future::Output реализована возможность указания аннотаций «#[must_use]», включающих вывод предупреждения в случае игнорирования возвращаемого значения, что помогает выявить ошибки, вызванные предположением, что функция изменит значения, а не вернёт новое значение. #[must_use] async fn bar() -> u32 { 0 } async fn caller() { bar().await; } warning: unused output of future returned by `bar` that must be used —> src/lib.rs:5:5 | 5 | bar().await; | ^^^^^^^^^^^ | = note: `#[warn(unused_must_use)]` on by default
  • Обновлена реализация FIFO-очередей std::sync::mpsc (multi-producer single-consumer), которая переведена на использование модуля crossbeam-channel с сохранением прежнего API. Новая реализация отличается решением ряда проблем, более высокой производительностью и упрощением сопровождения кода.
  • En neien Deel vun der API gouf an d'Kategorie vum Stall geplënnert, dorënner d'Methoden an d'Implementatioune vun de Charaktere goufen stabiliséiert:
    • {integer}::checked_ilog
    • {integer}::checked_ilog2
    • {integer}::checked_ilog10
    • {integer}::ilog
    • {integer}::ilog2
    • {integer}::ilog10
    • NonZeroU*::ilog2
    • NonZeroU*::ilog10
    • NonZero*::BITS
  • Den Attribut "const", wat d'Méiglechkeet bestëmmt et an all Kontext ze benotzen anstatt Konstanten, gëtt a Funktiounen benotzt:
    • char::vum_u32
    • char::from_digit
    • char::to_digit
    • core::char::from_u32
    • core::char::from_digit
  • Реализован третий уровень поддержки для использования Rust в ядре Linux (linuxkernel), а также для платформ Sony PlayStation 1 (mipsel-sony-psx), PowerPC с AIX (powerpc64-ibm-aix), QNX Neutrino RTOS (aarch64-unknown-nto-qnx710, x86_64-pc-nto-qnx710). Третий уровень подразумевает базовую поддержку, но без автоматизированного тестирования, публикации официальных сборок и проверки возможности сборки кода.

Дополнительно можно отметить публикацию компанией ARM патчей, позволяющих использовать язык Rust для разработки драйверов и модулей ядра Linux, собираемых для систем на базе архитектуры AArch64.

Source: opennet.ru

Setzt e Commentaire