Izdaja programskega jezika Rust 1.46

Objavljeno izdaja 1.46 sistemskega programskega jezika Rust, ki ga je ustanovil projekt Mozilla. Jezik se osredotoča na varnost pomnilnika, zagotavlja samodejno upravljanje pomnilnika in ponuja orodja za doseganje visoke vzporednosti nalog brez uporabe zbiralnika smeti in runtime.

Samodejno upravljanje pomnilnika Rust odpravlja napake pri manipulaciji s kazalci in ščiti pred težavami, ki izhajajo iz manipulacije s pomnilnikom na nizki ravni, kot je dostop do območja pomnilnika, potem ko je bilo osvobojeno, dereferenciranje ničelnega kazalca, prekoračitev medpomnilnika itd. Upravljalnik paketov se razvija za distribucijo knjižnic, zagotavljanje sestavljanja in upravljanje odvisnosti s projektom. Cargo, ki vam omogoča, da z enim klikom pridobite knjižnice, ki jih potrebujete za program. Repozitorij je podprt za gostovanje knjižnic zaboji.io.

Glavni inovacije:

  • Razširjene so bile zmožnosti funkcij, definiranih z izrazom »const fn«, ki jih je mogoče imenovati ne samo kot običajne funkcije, ampak jih uporabiti tudi v katerem koli kontekstu namesto konstant. Te funkcije se izračunajo v času prevajanja, ne med izvajanjem, zato zanje veljajo določene omejitve, na primer zmožnost branja samo iz konstant.

    Nova izdaja odpravlja prepoved uporabe logičnih operatorjev (»&&« in »||«) v takih funkcijah in dovoljuje uporabo konstruktov »if«, »if let«, »match«,
    "while", "while let" in "loop", ponuja pa tudi možnost pretvorbe v rezine (rezine, dinamična polja) z uporabo izraza "&[T]". Uporaba teh funkcij v funkcijah »const fn« vam omogoča, da premaknete nekatere operacije, ki zahtevajo veliko virov, na stopnjo prevajanja. Izvedba »const-sha1« na primer omogoča izračun zgoščenih vrednosti SHA-1 v času prevajanja, kar povzroči skoraj 40-kratno pospešitev povezav WinRT za Rust.

  • Da bi bila sporočila o napakah bolj informativna, je bila stabilizirana podpora za atribut »#[track_caller]«, ki je uporaben za funkcije, kot je unwrap, ki lahko povzroči paniko, če so tipi uporabljeni nepravilno. Naveden atribut bo uporabil upravljavec panike za tiskanje lokacije klicatelja v sporočilu o napaki.
  • V metodi std::mem::forget se uporablja atribut “const”, ki določa možnost uporabe v poljubnem kontekstu namesto konstant.
  • Nov del API-ja je bil premaknjen v stabilno kategorijo, vključno s stabiliziranima Option::zip in vec::Drain::as_slice.
  • V upravitelju paketov Cargo dodano podpora za nove spremenljivke okolja, nastavljene pri prevajanju paketa: CARGO_BIN_NAME (ime nastale izvršljive datoteke), CARGO_CRATE_NAME (ime paketa), CARGO_PKG_LICENSE (licenca navedena v manifestu), CARGO_PKG_LICENSE_FILE (pot do licenčne datoteke).

Vir: opennet.ru

Dodaj komentar