Rust 1.34 forritunarmálsútgáfa

fór fram útgáfu forritunarmáls kerfisins Ryð 1.34, þróað af Mozilla verkefninu. Tungumálið leggur áherslu á minnisöryggi, veitir sjálfvirka minnisstjórnun og veitir leið til að ná mikilli samsvörun verkefna án þess að nota sorphirðu eða keyrslutíma.

Sjálfvirk minnisstjórnun Rust leysir þróunaraðilann við bendil meðhöndlunar og verndar gegn vandamálum sem stafa af minni meðhöndlun á lágu stigi, eins og eftir-frjáls minni aðgangur, núll bendilinn afvísun, biðminni framúrkeyrsla, og þess háttar. Verið er að þróa pakkastjóra til að dreifa bókasöfnum, tryggja samsetningu og stjórna ósjálfstæði verkefnisins. Hleðsla, sem gerir þér kleift að fá þau bókasöfn sem þarf fyrir forritið með einum smelli. Geymsla er studd til að hýsa bókasöfn crates.io.

Helstu nýjungar:

  • Cargo pakkastjórinn hefur bætt við verkfærum til að vinna með öðrum pakkaskrám sem geta verið samhliða crates.io opinberu skránni. Til dæmis geta forritarar sérforrita nú notað sína eigin einkaskrá, sem hægt er að nota við skráningu á ósjálfstæði í Cargo.toml, og notað útgáfulíkan svipað og crates.io fyrir vörur sínar, auk þess að vísa ósjálfstæði til beggja grindanna. io og í eigin skrásetningu.

    Til að bæta ytri skrám við .cargo/config (staðsett í $HOME eða í pakkaskránni)
    veitt kafla „[skráningar]“, og til að nota ytri skrásetningu hefur „skráning“ valmöguleikinn birst í lýsingu á hverri ósjálfstæði í Cargo.toml. Til að tengjast viðbótarskránni skaltu einfaldlega setja auðkenningartáknið í ~/.cargo/credentials skrána og keyra skipunina
    "cargo login --registry=my-registry" og til að birta pakka -
    "cargo publish -registry=my-registry";

  • Bætti við fullum stuðningi við notkun "?" símafyrirtækisins. í prófum doktorspróf, sem gerir þér kleift að nota dæmi kóða úr skjölunum sem próf. Áður rekstraraðili
    "?" gæti aðeins verið notað til að meðhöndla villur meðan á prófun stendur þegar „fn main()“ aðgerðin er til staðar eða í „#[próf]“ aðgerðunum;

  • Í sérsniðnum eiginleikum sem eru skilgreindir með því að nota málsmeðferðarfjölva veitt hæfileikinn til að nota handahófskenndar sett af táknum („#[attr($tákn)]“, „#[attr[$tákn]] og #[attr{$tákn}]“). Áður var aðeins hægt að tilgreina þætti í tré/endurkvæmt form með því að nota strengjabókstafi, til dæmis „#[foo(bar, baz(quux, foo = „bar“))]“, en nú er hægt að nota upptalningar (' #[svið(0. .10)]') og smíði eins og „#[bundið(T: MyTrait)]“;
  • Stöðugar tegundir (eiginleiki) PrófaðuFrom и Prófaðu inn, sem gerir kleift að breyta tegundum með villumeðferð. Til dæmis nota aðferðir eins og from_be_bytes með heiltölutegundum fylki sem inntak, en gögnin koma oft í Slice gerð, og erfitt er að breyta milli fylkja og sneiða handvirkt. Með hjálp nýrra eiginleika er hægt að framkvæma tilgreinda aðgerð á flugi með því að hringja í .try_into(), til dæmis „let num = u32::from_be_bytes(slice.try_into()?)“. Fyrir viðskipti sem alltaf heppnast (til dæmis frá gerð u8 til u32) hefur villutegund verið bætt við Ósigur, sem gerir gagnsæja notkun kleift
    TryFrom fyrir allar núverandi útfærslur á "From";

  • Virkni hefur verið úrelt CommandExt::before_exec, sem gerði kleift að keyra meðhöndlun áður en keyrsla var keyrð, sem var keyrð í samhengi við undirferli sem gafflað var eftir fork() kallið. Við slíkar aðstæður gætu sum tilföng foreldraferlisins, eins og skráarlýsingar og kortlögð minnissvæði, verið afrituð, sem gæti leitt til óskilgreindrar hegðunar og rangrar notkunar á bókasöfnum.
    Mælt er með því að nota óörugga aðgerð í stað before_exec CommandExt::pre_exec.

  • Stöðugar gerðir með og óundirrituðum atómheiltölum á bilinu 8 til 64 bita (til dæmis, AtomicU8), sem og áritaðar tegundir NonZeroI[8|16|32|64|128].
  • Nýr hluti af API hefur verið færður í stöðugan flokk, þar á meðal Any::type_id, Error::type_id, slice::sort_by_cached_key, str::escape_*, str::split_ascii_whitespace, Instant::checked_[add|sub] ] og SystemTime aðferðir hafa verið stöðugar ::checked_[add|sub]. Iter::from_fn og iter::arftaki aðgerðir hafa verið stöðugar;
  • Fyrir allar heiltölugerðir eru checked_pow, saturating_pow, wrapping_pow og overflowing_pow aðferðirnar útfærðar;
  • Bætti við möguleikanum til að virkja hagræðingu á tengingarstigi með því að tilgreina „-C linker-plugin-lto“ byggingarvalkostinn.

Heimild: opennet.ru

Bæta við athugasemd