Rust 1.63 Programming Language Release

Ang pagpagawas sa Rust 1.63 nga kinatibuk-ang katuyoan nga programming language, nga gitukod sa proyekto sa Mozilla, apan karon naugmad ubos sa pagdumala sa independenteng non-profit nga organisasyon nga Rust Foundation, gimantala. Ang lengguwahe nagtutok sa kaluwasan sa panumduman ug naghatag sa mga paagi aron makab-ot ang taas nga paralelismo sa trabaho samtang naglikay sa paggamit sa usa ka tigkolekta sa basura ug runtime (ang runtime gikunhoran ngadto sa batakang pagsugod ug pagmentinar sa standard library).

Ang mga pamaagi sa pagdumala sa panumduman sa Rust nagluwas sa developer gikan sa mga sayup sa pagmaniobra sa mga pointer ug pagpanalipod batok sa mga problema nga motumaw tungod sa ubos nga lebel sa pagdumala sa panumduman, sama sa pag-access sa usa ka lugar sa panumduman human kini mapagawas, pagtangtang sa mga null pointer, pag-overrun sa buffer, ug uban pa. Sa pag-apod-apod sa mga librarya, paghatag og mga pagtukod ug pagdumala sa mga dependency, ang proyekto nagpalambo sa Cargo package manager. Gisuportahan ang crates.io repository alang sa pag-host sa mga librarya.

Ang kaluwasan sa panumduman gihatag sa Rust sa oras sa pag-compile pinaagi sa pagsusi sa reference, pagsubay sa pagpanag-iya sa butang, pagsubay sa mga kinabuhi sa butang (scopes), ug pagtimbang-timbang sa pagkahusto sa pag-access sa memorya sa panahon sa pagpatuman sa code. Naghatag usab ang Rust og proteksyon batok sa pag-awas sa integer, nanginahanglan mandatory nga pagsugod sa mga variable nga kantidad sa wala pa gamiton, pagdumala sa mga sayup nga mas maayo sa standard nga librarya, gipadapat ang konsepto sa dili mausab nga mga pakisayran ug mga variable nga default, nagtanyag kusog nga static nga pag-type aron maminusan ang mga lohikal nga sayup.

Panguna nga mga inobasyon:

  • Gidugang ang std::thread::scope API, nga nagtugot kanimo sa paghimo og mga scoped thread. Dili sama sa kaniadto nga magamit nga mga thread, ang bag-ong std::thread::scope API nagtugot sa pagpasa sa paghulam sa non-static nga data, samtang ang mga thread nga gihimo gamit ang classic std::thread::spawn API gikinahanglan nga manag-iya sa tanang argumento nga gipasa ug dili makadawat hinulaman nga mga variable. Ang std::thread::scope API nagsiguro nga ang bisan unsang spawned thread mahunong sa dili pa ibalik ang datos, nga maghatag ug igong seguridad alang sa mekanismo sa paghulam.
  • Bag-ong mga tipo sa wrapper alang sa mga deskriptor sa file ang gisugyot - BorrowedFd ug OwnedFd, nga naghatag og paghulam ug pagpanag-iya. Ang mga tipo gimarkahan og "#[repr(transparent)]", nga nagtugot kanila nga direktang magamit sa external C bindings sa paagi nga nahibaloan sa pagpanag-iya.
  • Gihatag ang abilidad sa pagtawag sa Condvar :: bag-o, Mutex :: bag-o ug RwLock :: bag-o sa konteksto sa mga constants sa paghimo sa global static nga Mutex, RwLock ug Condvar values ​​​​nga walay paggamit sa lazy_static packages.
  • Alang sa mga gimbuhaton sama sa fn foo (bili: T, f: impl Copy) ang syntax sama sa “foo::” gitugotan (32, 3)", tin-aw nga nagpakita sa matang sa generic.
  • Ang transisyon sa paggamit sa NLL (Non-Lexical Lifetimes) nga teknik aron mahibal-an ang mga problema sa mga variable sa paghulam nahuman na. Gikonsiderar sa NLL ang lebel sa usa ka hugpong sa mga pointer sa graph sa dagan sa pagpatuman, nga nagpaposible nga madugangan ang kalidad sa tseke alang sa mga variable sa paghulam (borrow checker) ug gitugotan ang pagpatuman sa pipila nga mga lahi sa husto nga code, ang paggamit sa nga kaniadto misangpot sa usa ka sayop. Ang suporta para sa daan nga mekanismo nga migamit sa lexical-level lifetime binding bug-os na nga gitangtang gikan sa rustc, ug ang paggamit sa bag-ong NLL gipatuman sa tibuok.
  • Usa ka bag-ong bahin sa API ang gibalhin sa kategorya nga stable, lakip ang mga pamaagi ug pagpatuman sa mga kinaiya nga na-stabilize:
    • array::gikan sa_fn
    • Kahon::into_pin
    • BinaryHeap::try_reserve
    • BinaryHeap::try_reserve_exact
    • OsString::try_reserve
    • OsString::try_reserve_exact
    • PathBuf::try_reserve
    • PathBuf::try_reserve_exact
    • Path::try_exists
    • Ref::filter_map
    • RefMut::filter_map
    • Dili Null::<[T]>::len
    • ToOwned::clone_into
    • IPv6Addr::to_ipv4_mapped
    • unix::io::AsFd
    • unix::io::GihulamFd<'fd>
    • unix::io::OwnedFd
    • windows::io::AsHandle
    • windows::io::BorrowedHandle

      Source: opennet.ru
Pagpalit kasaligan nga pag-host alang sa mga site nga adunay proteksyon sa DDoS, mga server sa VPS VDS 🔥 Pagpalit og kasaligang website hosting nga adunay proteksyon sa DDoS, VPS VDS servers | ProHoster