Rust 1.54 Programming Language Release

De frijlitting fan de systeemprogrammearringstaal Rust 1.54, oprjochte troch it Mozilla-projekt, mar no ûntwikkele ûnder auspysjes fan de ûnôfhinklike non-profit organisaasje Rust Foundation, is publisearre. De taal rjochtet him op ûnthâld feilichheid, jout automatyske ûnthâld behear, en jout de middels te berikken hege taak parallelism sûnder in gebrûk garbage collector of runtime (runtime wurdt redusearre ta basis inisjalisaasje en ûnderhâld fan de standert bibleteek).

It automatyske ûnthâldbehear fan Rust elimineert flaters by it manipulearjen fan oanwizers en beskermet tsjin problemen dy't ûntsteane út manipulaasje fan ûnthâld op leech nivo, lykas tagong krije ta in ûnthâldregio nei't it is befrijd, nul-oanwizers dereferences, bufferoverruns, ensfh. Om bibleteken te fersprieden, assemblage te garandearjen en ôfhinklikens te behearjen, ûntwikkelet it projekt de Cargo-pakketbehearder. It crates.io repository wurdt stipe foar hosting fan bibleteken.

Wichtichste ynnovaasjes:

  • De mooglikheid tafoege om funksje-like makro's te brûken binnen attributen (prosedurele makro's en makro's makke mei de "macro_rules!"-makro). Sokke makro's wurde ûnderskieden fan funksjes troch it symboal "!" nei de namme (makro!(...)) en ferfange de makro boarne tekst ynstee fan it generearjen fan in funksje oprop. Makro's oproppe binnen attributen kinne nuttich wêze foar it opnimmen fan ynhâld fan oare bestannen yn it dokumintearjen fan opmerkingen. Bygelyks, om de ynhâld fan it README-bestân en it resultaat fan 'e skriptútfiering yn te foegjen, kinne jo opjaan: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR) "), "/generated.rs" )] mod oanmakke;
  • De ynboude kompilerfunksjes (Intrinsics) foar it wasm32-platfoarm binne stabilisearre, wêrtroch it gebrûk fan SIMD-ynstruksjes yn WebAssembly mooglik is. De measte funksjes, lykas v128_bitselect, binne beskikber yn "feilige" modus, mar guon funksjes dy't wurkje mei oanwizers (Bygelyks, v128_load) bliuwe "ûnfeilich".
  • It standertgebrûk fan inkrementele kompilaasje is weromkommen, wêrtroch jo allinich de feroare dielen fan 'e koade opnij kinne opbouwe, wat de tiid kin ferminderje dy't it nimt om in projekt te bouwen by it opnij kompilearjen nei it meitsjen fan lytse feroarings. Inkrementele kompilaasje waard útskeakele yn release 1.52.1 fanwegen ferburgen bugs dy't opdûkten nei it tafoegjen fan in ekstra kontrôle foar it laden fan gegevens fan 'e skiifcache.
  • In nij diel fan API's is oerbrocht nei de stabile kategory, ynklusyf de folgjende stabilisearre:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arch::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque :: partition_point
  • Opsjes binne tafoege oan frachtbeam: "—prune " om in pakket út 'e ôfhinklikensgrafyk te ferwiderjen, "—djipte" om allinich eleminten fan in opjûn nêstnivo yn 'e ôfhinklikensbeam wer te jaan, "—randen no-proc- makro" om ôfhinklikens fan prosedurele makro's te ferbergjen.

Boarne: opennet.ru

Add a comment