Rust 1.67 Programming Language Release

Die algemene programmeertaal Rust 1.67, wat deur die Mozilla-projek gestig is, maar nou ontwikkel is onder die beskerming van die onafhanklike nie-winsgewende organisasie Rust Foundation, is vrygestel. Die taal fokus op geheueveiligheid en bied die middele om hoΓ« werkparallelisme te bereik terwyl die gebruik van 'n vullisverwyderaar en looptyd vermy word (looptyd word verminder tot basiese inisialisering en instandhouding van die standaardbiblioteek).

Rust se geheue hantering metodes red die ontwikkelaar van foute wanneer wysers gemanipuleer word en beskerm teen probleme wat ontstaan ​​as gevolg van laevlak geheue manipulasie, soos toegang tot 'n geheue area nadat dit vrygestel is, herkenning van nulwysers, buffer oorskryding, ens. Om biblioteke te versprei, bouwerk te verskaf en afhanklikhede te bestuur, ontwikkel die projek die Cargo-pakketbestuurder. Die crates.io-bewaarplek word ondersteun vir die aanbieding van biblioteke.

Geheueveiligheid word tydens samestellingstyd in Rust verskaf deur verwysingskontrolering, tred te hou met objekeienaarskap, tred te hou met objekleeftye (bestekke), en die korrektheid van geheuetoegang tydens kode-uitvoering te assesseer. Roes bied ook beskerming teen heelgetal oorvloei, vereis verpligte inisialisering van veranderlike waardes voor gebruik, hanteer foute beter in die standaard biblioteek, pas die konsep van onveranderlike verwysings en veranderlikes by verstek toe, bied sterk statiese tik om logiese foute te minimaliseer.

Belangrikste innovasies:

  • Vir asynchrone funksies met Future::Output, is dit nou moontlik om "#[must_use]"-aantekeninge te spesifiseer wat 'n waarskuwing insluit as die terugkeerwaarde geΓ―gnoreer word, wat help om foute te identifiseer wat veroorsaak word deur die aanname dat die funksie die waardes sal verander eerder as om 'n nuwe waarde terug te gee. #[must_use] asinc fn bar() -> u32 { 0 } async fn caller() { bar().await; } waarskuwing: ongebruikte uitvoer van toekoms teruggestuur deur `bar` wat gebruik moet word β€”> src/lib.rs:5:5 | 5 | bar().wag; | ^^^^^^^^^^^^ | = let wel: `#[waarsku(unused_must_use)]` is by verstek aan
  • Die implementering van EIEU-toue std::sync::mpsc (multi-produsent enkelverbruiker) is opgedateer, wat oorgeskakel is na die gebruik van die dwarsbalkkanaalmodule terwyl die vorige API gehandhaaf is. Die nuwe implementering word onderskei deur 'n aantal probleme op te los, hoΓ«r werkverrigting en vereenvoudigde kode-instandhouding.
  • 'n Nuwe gedeelte van die API is na die kategorie stal geskuif, insluitend die metodes en implementering van eienskappe is gestabiliseer:
    • {heelgetal}::checked_ilog
    • {heelgetal}::checked_ilog2
    • {heelgetal}::checked_ilog10
    • {heelgetal}::ilog
    • {heelgetal}::ilog2
    • {heelgetal}::ilog10
    • NieNulU*::ilog2
    • NieNulU*::ilog10
    • Nienul*::BITS
  • Die "const"-kenmerk, wat die moontlikheid bepaal om dit in enige konteks in plaas van konstantes te gebruik, word in funksies gebruik:
    • char::from_u32
    • char::van_syfer
    • char::to_digit
    • kern::char::from_u32
    • kern::char::van_syfer
  • 'n Derde vlak van ondersteuning is geΓ―mplementeer vir die gebruik van Rust in die Linux-kern (linuxkernel), sowel as vir die Sony PlayStation 1 (mipsel-sony-psx), PowerPC met AIX (powerpc64-ibm-aix), QNX Neutrino RTOS ( aarch64-unknown-nto-) platforms qnx710, x86_64-pc-nto-qnx710). Die derde vlak behels basiese ondersteuning, maar sonder outomatiese toetsing, publisering van amptelike bouwerk, of kontrolering of die kode gebou kan word.

Daarbenewens kan ons let op die publikasie deur ARM van pleisters wat die gebruik van die Rust-taal toelaat om drywers en Linux-kernmodules te ontwikkel wat saamgestel is vir stelsels gebaseer op die AArch64-argitektuur.

Bron: opennet.ru

Voeg 'n opmerking