Rust 1.54 Programming Language Release

Die vrystelling van die stelselprogrammeertaal Rust 1.54, wat deur die Mozilla-projek gestig is, maar nou ontwikkel is onder die vaandel van die onafhanklike nie-winsgewende organisasie Rust Foundation, is gepubliseer. Die taal fokus op geheueveiligheid, verskaf outomatiese geheuebestuur en bied die middele om hoΓ« taakparallellisme te bereik sonder om 'n vullisverwyderaar of looptyd te gebruik (looptyd word verminder tot basiese inisialisering en instandhouding van die standaardbiblioteek).

Rust se outomatiese geheuebestuur red die ontwikkelaar van foute wanneer wysers gemanipuleer word en beskerm teen probleme wat ontstaan ​​as gevolg van laevlakgeheuemanipulasie, soos toegang tot 'n geheuearea nadat dit vrygestel is, herkenning van nulwysers, bufferoorskryding, 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.

Belangrikste innovasies:

  • Bygevoeg die vermoΓ« om funksie-agtige makro's binne eienskappe te gebruik (prosedurele makro's en makro's geskep met behulp van die "makro_reΓ«ls!" makro). Sulke makro's word van funksies onderskei deur die simbool "!" na die naam (makro!(...)) en vervang die makro-bronteks in plaas daarvan om 'n funksie-oproep te genereer. Om makro's binne kenmerke op te roep, kan nuttig wees om inhoud van ander lΓͺers by die dokumentasie van kommentaar in te sluit. Byvoorbeeld, om die inhoud van die README-lΓͺer en die resultaat van die scriptuitvoering in te voeg, kan jy spesifiseer: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR) "), "/generated.rs" )] mod gegenereer;
  • Die ingeboude samestellerfunksies (Intrinsics) vir die wasm32-platform is gestabiliseer, wat die gebruik van SIMD-instruksies in WebAssembly moontlik maak. Die meeste funksies, soos v128_bitselect, is beskikbaar in "veilige" modus, maar sommige funksies wat met wysers werk (byvoorbeeld v128_load) bly "onveilig".
  • Die verstekgebruik van inkrementele samestelling het teruggekeer, wat jou toelaat om slegs die veranderde dele van die kode te herbou, wat die tyd wat dit neem om 'n projek te bou, aansienlik kan verminder wanneer jy hersaamstel nadat jy klein veranderinge aangebring het. Inkrementele samestelling is in vrystelling 1.52.1 gedeaktiveer as gevolg van versteekte foute wat opgeduik het nadat 'n bykomende kontrole bygevoeg is vir die laai van data vanaf die skyfkas.
  • 'n Nuwe gedeelte van API's is na die stabiele kategorie oorgedra, insluitend die volgende gestabiliseer:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • boog::wasm32
    • VecDeque::binΓͺre_soektog
    • VecDeque::binΓͺre_soek_deur
    • VecDeque::binΓͺre_soek_deur_sleutel
    • VecDeque :: partisiepunt
  • Opsies is by vragboom bygevoeg: "β€”snoei " om 'n pakket van die afhanklikheidsgrafiek te verwyder, "β€”diepte" om slegs elemente van 'n gegewe nesvlak in die afhanklikheidsboom te vertoon, "β€”rands no-proc- makro" om afhanklikhede van prosedurele makro's te verberg.

Bron: opennet.ru

Voeg 'n opmerking