Rust 1.78 je že izšel in to so njegove nove funkcije

logotip rje

Rust je večparadigemski, splošnonamenski prevedeni programski jezik.

Nova različica Rust 1.78 je že izšla in implementirane so nove funkcije, kot tudi stabilizacijo nekaterih API-jev, izboljšave v Cargo in drugo.

Tisti, ki tega programskega jezika ne poznajo, naj to vedo se osredotoča na varnost pomnilnika in zagotavlja sredstva za doseganje visoke vzporednosti opravil, hkrati pa se izogiba uporabi zbiralnika smeti in izvajalnega okolja (izvajalni čas je zmanjšan na osnovno inicializacijo in standardno vzdrževanje knjižnice).

Glavne nove funkcije Rust 1.78

V tej novi različici, ki jo je predstavil Rust 1.78 je povečal minimalne zahteve za Windows 10, Poleg tega prevajalnik je bil spremenjen za uporabo LLVM 18. Pri uporabi LLVM 18 za arhitekturi x86-32 in x86-64 je bil spremenjen ABI, povezan s tipoma u128 in i128.

Kar zadeva spremembe, je ena od značilnosti, ki izstopa, da Rust zdaj podpira imenski prostor atributov  «#[diagnoza]", kaj zagotavlja sredstvo za vplivanje na sporočila o napakah s strani prevajalnika. Ti se obravnavajo kot namigi, ki jih prevajalniku ni treba uporabiti, prav tako ni napaka, če podate diagnostiko, ki je prevajalnik ne prepozna. to omogoča izvorni kodi zagotavljanje diagnostike, tudi če jih ne podpirajo vsi prevajalniki, bodisi različne različice ali popolnoma različne izvedbe.

Poleg tega, globalni predpomnilnik je bil stabiliziran v Cargo ki shranjuje informacije o zadnji uporabi podatkov. Ta predpomnilnik se nahaja v $CARGO_HOME/.global-cache in uporablja SQLite za svojo implementacijo. Samodejno se posodablja, da odraža najnovejše spremembe indeksa, zaboja, imenika kode, git klona in git checkouta, s čimer izboljša učinkovitost in hitrost operacij upravljanja odvisnosti v razvojnih projektih.

Druga nova funkcija Rust 1.78 je standardna knjižnica Rust Različne izjave za predpogoje nevarnih funkcij ki se zdaj lahko odloži do generiranja kode. To omogoča izvajanje teh pregledov zgodovinsko so bili omogočeni samo v zgradbah «#[cfg(debug_assertions)]», da se izognete vplivanju na zmogljivost v različici za izdajo. S to spremembo lahko uporabniki zdaj zaznajo nedefinirano vedenje v svoji kodi, čeprav podrobnosti o tem, koliko je preverjeno, na splošno niso stabilne. Če želite omogočiti preverjanja, je zdaj dovolj, da omogočite trditve o odpravljanju napak za preizkusne ali razhroščevalne gradnje kode.

Poleg tega zdaj obnašanje funkcij standardne knjižnice ki vplivajo na poravnavo kazalcev in sektorjev zdaj je predvidljiv med izvajanjem in je odvisen od vhodnih podatkov. Funkcija kazalec::align_offset, ki izračuna odmik za poravnavo kazalca, se zdaj vrne uporaba::MAX le če operacija ne uspe. Funkcije slice::align_to in slice::align_to_mut, ki preoblikujejo rezine v predstavitev s poravnano srednjo rezino ter izvirnimi začetnimi in končnimi rezinami, zdaj vedno vrnejo največji srednji del.

Po drugi strani pa se omenja, da Naslednji API-ji so bili premaknjeni v kategorijo »stabilno«.: impl Branje za &Stdin, impl Od za io::Napaka in izvajanje impl ki omogoča uporabo ?Velikost.

Od Druge spremembe, ki izstopajo te nove različice:

  • Implementirana je bila druga raven podpore za ciljno platformo Add wasm32-wasip1. Druga raven podpore vključuje garancijo za montažo.
  • Platforma wasm32-wasi-preview1-threads je bila preimenovana v wasm32-wasip1-threads.
  • V upravitelju paketov Cargo je bila različica 4 zaklepnih datotek (lockfile v4) stabilizirana. Cargo zdaj uporablja to različico kot standard za zagotavljanje doslednosti in učinkovitega upravljanja odvisnosti med projekti.

Če ste zanima več o tem, podrobnosti lahko preverite v naslednjo povezavo.

Končno za tiste, ki so Zanima me nadgradnja s prejšnje različice Rust nameščen prek rustup, lahko dobite novo različico Rust 1.78 z:

rustup update stable

Če v sistemu še nimate nameščenega Rusta, lahko to storite tako, da v terminalu zaženete naslednji ukaz:

curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh