Rust 1.55 forritunarmálsútgáfa

Útgáfa kerfisforritunarmálsins Rust 1.55, stofnað af Mozilla verkefninu, en nú þróað undir merkjum óháðu sjálfseignarstofnunarinnar Rust Foundation, hefur verið gefin út. Tungumálið einbeitir sér að minnisöryggi, veitir sjálfvirka minnisstjórnun og veitir aðferðina til að ná mikilli samsvörun verkefna án þess að nota sorphirðu eða keyrslutíma (keyrslutími minnkar í grunnuppstillingu og viðhald á venjulegu bókasafni).

Sjálfvirk minnisstjórnun Rust útilokar villur þegar verið er að meðhöndla ábendingar og verndar gegn vandamálum sem stafa af minni meðhöndlun á lágu stigi, eins og aðgangur að minnissvæði eftir að það hefur verið losað, frávísanir á núll bendi, offramkeyrsla á biðminni osfrv. Til að dreifa bókasöfnum, tryggja samsetningu og stjórna ósjálfstæði er verkefnið að þróa farmpakkastjórann. Crates.io geymslan er studd til að hýsa bókasöfn.

Helstu nýjungar:

  • Cargo pakkastjóri hefur getu til að sameina tvíteknar villur og viðvaranir sem eiga sér stað við smíði. Þegar verið er að framkvæma skipanir eins og "farmpróf" og "farmskoðun --allt-markmið" sem leiða til margra smíði pakka með mismunandi færibreytum, er notandanum nú sýnt samantekt um endurtekið vandamál, í stað þess að vera sýnt. margar eins viðvaranir þegar þú byggir sama hlutinn ítrekað.skrá. $ cargo +1.55.0 athuga —all-targets Athugun foo v0.1.0 viðvörun: fall er aldrei notað: 'foo' —> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = athugið: '#[warn(dead_code)]' á sjálfgefin viðvörun: 'foo' (lib) myndaði 1 viðvörun viðvörun: 'foo' (lib test) myndaði 1 viðvörun (1 afrit) Lokið dev [óoptimized + debuginfo] mark (s) eftir 0.84 sek
  • Flotapunktsþáttunarkóði í stöðluðu bókasafni hefur verið færður til að nota hraðari og nákvæmari Eisel-Lemire reiknirit, sem hefur leyst nokkur vandamál sem áður hafa komið fram við að námundun og þátta tölur með mjög miklum fjölda tölustafa.
  • Hæfni til að tilgreina ólokuð svið í sniðmátum hefur verið stöðug („X..” er túlkað sem svið sem byrjar á gildinu X og endar á hámarksgildi heiltölugerðarinnar): passa x sem u32 { 0 => println! ("núll!"), 1.. => println!("jákvæð tala!"), }
  • Stækkuð villuafbrigði sem falla undir std::io::ErrorKind (flokkar villur í flokka eins og NotFound og WouldBlock). Áður féllu villur sem pössuðu ekki inn í núverandi flokka í ErrorKind::Other flokkinn, sem einnig var notaður fyrir villur í kóða þriðja aðila. Það er nú sérstakur innri flokkur ErrorKind::Óflokkaður fyrir villur sem passa ekki inn í núverandi flokka, og ErrorKind::Other flokkurinn takmarkast við villur sem koma ekki fram í stöðluðu bókasafni (stöðluð bókasafnsaðgerðir sem skila io::Villa ekki lengur nota ErrorKind:: flokkinn Annað).
  • Nýr hluti af API hefur verið færður í flokkinn stöðugt, þar með talið aðferðir og útfærslur á eiginleikum hafa verið stöðugar:
    • Bundið::klónað
    • Afrennsli::as_str
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • MaybeUninit::assume_init_mut
    • MaybeUninit::assume_init_ref
    • MaybeUninit::skrifaðu
    • fylki::kort
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bitestandcomplement
    • x86::_bittestandendurstilla
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • „const“ eigindin, sem ákvarðar möguleikann á að nota hann í hvaða samhengi sem er í stað fasta, er notaður í str::from_utf8_unchecked aðferðinni.
  • Þriðja stig stuðnings hefur verið innleitt fyrir powerpc64le-unknown-freebsd pallinn. Þriðja stigið felur í sér grunnstuðning, en án sjálfvirkrar prófunar, útgáfu opinberra smíða eða athuga hvort hægt sé að smíða kóðann.

Heimild: opennet.ru

Bæta við athugasemd