Útgáfa forritunarmálsins Rust 2021 (1.56)

Útgáfa kerfisforritunarmálsins Rust 1.56, stofnað af Mozilla verkefninu, en nú þróað undir merkjum óháðu sjálfseignarstofnunarinnar Rust Foundation, hefur verið gefin út. Til viðbótar við venjulega útgáfunúmerið er útgáfan einnig nefnd Rust 2021 og markar stöðugleika á breytingum sem lagðar hafa verið til undanfarin þrjú ár. Rust 2021 mun einnig þjóna sem grundvöllur fyrir aukinni virkni á næstu þremur árum, svipað og útgáfa Rust 2018 varð grundvöllur þróunar tungumálsins undanfarin þrjú ár.

Til að viðhalda eindrægni geta forritarar notað „2015“, „2018“ og „2021“ merki í forritum sínum, sem gerir kleift að tengja forrit við tungumálaástandssneiðar sem samsvara völdum útgáfum af Rust. Útgáfur voru kynntar til að aðgreina ósamrýmanlegar breytingar og eru stilltar í lýsigögnum farmpakka í gegnum reitinn „útgáfa“ í „[pakki]“ hlutanum. Til dæmis inniheldur „2018“ útgáfan virkni sem hefur verið stöðug í lok árs 2018 og nær einnig yfir allar frekari breytingar sem brjóta ekki eindrægni. 2021 útgáfan inniheldur að auki samvirknibrjótandi eiginleika sem lagðar eru til í núverandi 1.56 útgáfu og samþykktar fyrir framtíðarútfærslu. Auk tungumálsins sjálfs taka ritstjórar einnig tillit til stöðu tækja og skjala.

Mikill ósamrýmanleiki skráð í Rust 2021:

  • Aðskilin handtaka í lokunum - Lokanir geta nú fanga einstök svæðisnöfn í stað alls auðkennisins. Til dæmis, "|| ax + 1" mun aðeins fanga "ax" í stað "a".
  • IntoIterator-eiginleikinn fyrir fylki: array.into_iter() gerir þér kleift að endurtaka þætti fylkis eftir gildum, frekar en tilvísunum.
  • Vinnsla á „|“ tjáningum hefur verið breytt í macro_rules (Boolean OR) í mynstrum - ":pat" forskriftin í samsvörun virðir nú "A | B".
  • Farmpakkastjórinn inniheldur sjálfgefið aðra útgáfu af eiginleikalausnaranum, stuðningur við hana birtist í Rust 1.51.
  • TryFrom, TryInto og FromIterator eiginleikanum hefur verið bætt við prelude staðlaða bókasafnseininguna.
  • Panic!(..) og assert!(expr, ..) fjölvi nota nú alltaf format_args!(..) til að forsníða strengi, svipað og println!().
  • Orðin ident#, ident»..." og ident'...' eru frátekin í setningafræði tungumálsins.
  • Færðu bare_trait_objects og ellipsis_inclusive_range_patterns viðvaranir í villur.

Nýtt í Rust 1.56:

  • Í Cargo.toml, í hlutanum „[pakki]“, hefur ryðútgáfureitnum verið bætt við, þar sem þú getur ákvarðað lágmarksstudda útgáfu af ryð fyrir kassapakkann. Ef núverandi útgáfa passar ekki við tilgreinda færibreytu mun Cargo hætta að virka með villuboðum.
  • Þegar mynstursamsvörun er notuð með „binding @ mynstur“ tjáningum er veittur stuðningur við að tilgreina viðbótarbindingar (til dæmis „let matrix @ Matrix { row_len, .. } = get_matrix();“).
  • 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:
    • std::os::unix::fs::chroot
    • UnsafeCell::raw_get
    • BufWriter::into_parts
    • core::panic::{UnwindSafe, RefUnwindSafe, AssertUnwindSafe}
    • Vec::shrink_to
    • Strengur::shrink_to
    • OsString::shrink_to
    • PathBuf::shrink_to
    • BinaryHeap::shrink_to
    • VecDeque::shrink_to
    • HashMap::shrink_to
    • HashSet::shrink_to
  • „const“ eigindin, sem ákvarðar möguleikann á að nota í hvaða samhengi sem er í stað fasta, er notaður í föllum
    • std::mem::transmute
    • [T]::fyrst
    • [T]::skipti_fyrst
    • [T]::síðast
    • [T]::skipti_síðast
  • Skipt hefur verið um þýðanda til að nota LLVM útgáfu 13.
  • Annað stig stuðnings hefur verið innleitt fyrir aarch64-apple-ios-sim pallinn og þriðja stigið fyrir powerpc-unknown-freebsd og riscv32imc-esp-espidf pallana. Þ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.

Mundu að Rust einbeitir sér að minnisöryggi, veitir sjálfvirka minnisstjórnun og veitir leið til að ná mikilli samsvörun í framkvæmd verks án þess að nota sorphirðu eða keyrslutíma (keyrslutími minnkar í grunnuppsetningu 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.

Heimild: opennet.ru

Bæta við athugasemd