Lëshimi i Rust 1.97. Një bërthamë Zinnia e shkruar në Rust dhe sistemi P2P Iroh me adresimin sipas çelçave

ËshtĂ« publikuar versioni i gjuhĂ«s sĂ« programimit Rust 1.97, e cila ishte e bazuar nĂ« projektin Mozilla, por tani zhvillohet nĂ«n mbĂ«shtetje tĂ« njĂ« organizate tĂ« pavarur jofitimprurĂ«se, Rust Foundation. Gjuha fokusohet nĂ« punĂ«n e sigurt me kujtesĂ«n dhe ofron mjete pĂ«r arritjen e paralelizmit tĂ« lartĂ« nĂ« kryerjen e detyrave, duke mos pĂ«rdorur mbledhĂ«s plehrash dhe runtime (runtime reduktohet nĂ« inicializimin fillestar dhe mbĂ«shtetje pĂ«r bibliotekĂ«n standarde).

Metodat e punës me memorie në Rust janë të orientuara për të eliminuar gabimet gjatë manipulimit të treguesve dhe për të mbrojtur nga problemet që lindin nga puna me nivel të ulët me memorinë, siç janë akseset në zona memorien pas lirimit të saj, dereferencimi i treguesve null, tejkalimi i kufijve të bufeve etj. Për shpërndarjen e bibliotekave, sigurinë e ndërtimit dhe menaxhimin e varësive, projekti zhvillohet me ndihmën e menaxherit të paketave Cargo. Mbështetet një depo për bibliotekat, crates.io.

Puna e sigurt me kujtesën sigurohet në Rust gjatë kompilimit përmes verifikimit të referencave, ndjekjes së pronësisë së objekteve, llogaritjes së kohëzgjatjes së jetës së objekteve (fushave të dukshmërisë) dhe vlerësimit të saktësisë së qasjes në kujtesë gjatë ekzekutimit të kodit. Rust gjithashtu ofron mjete për mbrojtjen nga tejkalimet e numrave të plotë, kërkon inicializimin e detyrueshëm të vlerave të variablave para përdorimit, trajton më mirë gabimet në bibliotekën standarde, aplikon konceptin e referencave dhe variablave të pandryshueshëm (immutable) si standard dhe ofron tipizimin e fortë statik për të minimizuar gabimet logjike.

Novitetet kryesore:

  • Dizajni i ri i emrave, pĂ«r funksionet, variablat globale dhe strukturat e tĂ« dhĂ«nave nĂ« skedarĂ«t e prodhuar objekt dhe ekzekutiv, Ă«shtĂ« aktivizuar si standard (-Csymbol-mangling-version=v0). Emrat i nĂ«nshtrohen dekorimit pĂ«r tĂ« parandaluar konfliktet gjatĂ« lidhjes sĂ« programeve tĂ« ndryshme, duke i bashkĂ«ngjitur njĂ« kontekst specifik, siç Ă«shtĂ« rruga pĂ«r modul dhe emri i paketĂ«s crate.

    Schemat e mëparshme të dekorimit të emrave, të bazuar në Itanium ABI, kishin disa disavantazhe, siç janë zëvendësimi i parametrave të gjenerikëve me hash-e të palexueshme dhe ekzistenca e pjesëve të kompilatorit që nuk përdorin Itanium ABI, që kërkonte përdorimin e dekoduesve specifikë për Rust. Në Rust 1.97, një skemë dekorimi e zhvilluar posaçërisht për Rust është aktivizuar si standard dhe është e lirë nga këto disavantazhe. Schemat e vjetra planifikohen të hiqen në një nga lëshimet e ardhshme.

  • Menaxheri i paketave cargo pĂ«rmban mundĂ«sinĂ« pĂ«r tĂ« menaxhuar reagimin nĂ« gjenerimin e paralajmĂ«rimeve nga kompilatori gjatĂ« ndĂ«rtimit. ËshtĂ« shtuar variabla e ambientit CARGO_BUILD_WARNINGS, e cila mund tĂ« marrĂ« tre vlera: warn (standard) — pĂ«r tĂ« shfaqur paralajmĂ«rimin nĂ« ekran; allow — pĂ«r tĂ« fshehur paralajmĂ«rimet; deny — pĂ«r tĂ« trajtuar paralajmĂ«rimet si gabime qĂ« ndalojnĂ« ndĂ«rtimin.

    Në versionet e mëparshme, për të përfunduar ndërtimin pas shfaqjes së një paralajmërimi duhej të specifikohej «-Dwarnings» në RUSTFLAGS për kompilatorin, por me ndryshimin e RUSTFLAGS, menaxheri i paketave cargo e përshkonte ndërtimin si të ri, pa marrë parasysh të dhënat në memory dhe ripërtrinte të gjithë projektin nga e para. Kalimi i këtij rregullimi në anën e cargo përjashton fshirjen e caches dhe nevojën për një ripërpunim të plotë me ndryshimin e modalitetit të trajtimit të paralajmërimeve, si dhe thjeshton aktivizimin e trajtimit të paralajmërimeve si gabime në sistemet e integrimit të vazhdueshëm.

  • GjatĂ« ndĂ«rtimit, shfaqja e mesazheve tĂ« prodhuara nga lidhĂ«si aktivizohet si parazgjedhje. Mesazhet shfaqen si paralajmĂ«rime pĂ«rmes njĂ« rregulli tĂ« veçantĂ« lint «linker_messages», i cili nuk pĂ«rfshihet nĂ« grupin standard «warnings». NĂ« kĂ«tĂ« mĂ«nyrĂ«, rustc filtroi mesazhet qĂ« janĂ« rFalse pozita tĂ« tipit ose sjellje normale, duke lĂ«nĂ« paralajmĂ«rime qĂ« mund tĂ« tregojnĂ« pĂ«r probleme, siç janĂ« paralajmĂ«rimet pĂ«r opsionet e skaduara dhe parametrat e padĂ«shiruar. MĂ« parĂ«, informacioni nga lidhĂ«si tregoheshin vetĂ«m nĂ«se pĂ«rfundimi kishte dĂ«shtuar, ndryshe tĂ« gjitha mesazhet ishin fshehur. PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r, mund tĂ« shtoni nĂ« Cargo.toml: [lints.rust] linker_messages = «allow»
  • NjĂ« grup i ri API u kalua nĂ« kategorinĂ« e stabilizuar, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« trait-Ă«ve:
    • Parazgjedhja pĂ«r RepeatN
    • Kopje pĂ«r ffi::FromBytesUntilNulError
    • DĂ«rgo pĂ«r std::fs::File pĂ«r UEFI
    • ::izolo_kujt_max
    • ::izolo_kujt_min
    • ::kujt_max
    • ::kujt_min
    • ::gjerĂ«sia_bit
    • NonZero::izolo_kujt_max
    • NonZero::izolo_kujt_min
    • NonZero::kujt_max
    • NonZero::kujt_min
    • NonZero::gjerĂ«sia_bit
  • Simboli «const» Ă«shtĂ« aplikuar nĂ« metodĂ«n char::is_control.

Gjithashtu mund të theksohet projektet dhe ngjarjet e shpallura së fundmi të lidhura me Rust:

  • Projekti zinnia zhvillon njĂ« bĂ«rthamĂ« modulare tĂ« ngjashme me Unix, e shkruar nĂ« gjuhĂ«n Rust dhe e shpĂ«rndarĂ« nĂ«n licencĂ«n GPLv2. BĂ«rthama mbĂ«shtet ndĂ«rfaqet POSIX dhe disa zgjerime nga BSD dhe Linux, siç janĂ« epoll dhe timerfd. PĂ«r vizatimin dhe organizimin e hyrjes janĂ« nĂ« dispozicion drejtues DRM (Direct Rendering Manager) dhe evdev. Funksionaliteti e cila Ă«shtĂ« e realizuar Ă«shtĂ« e mjaftueshme pĂ«r tĂ« drejtuar njĂ« mjedis desktopi Xfce nĂ«n kontrollin e serverit X dhe kompozit. serverĂ« Weston mbi bazĂ«n e Wayland. MbĂ«shtetet ngarkimi si nĂ« emulatorin QEMU, ashtu edhe nĂ« pajisje reale, si laptopi ThinkPad E14 G7.
  • ËshtĂ« prezantuar lĂ«shimi i bibliotekĂ«s komunikuese iroh 1.0, e cila lejon vendosjen e lidhjeve rrjetĂ«sore midis aplikacioneve nĂ« hoste tĂ« ndryshĂ«m me lidhje pĂ«rmes çelĂ«save shtesĂ«, nĂ« vend tĂ« IP-adresat (pĂ«rcaktohet çelĂ«si me tĂ« cilin duhet tĂ« lidhet dhe iroh gjen hostin e lidhur me tĂ« dhe vendos njĂ« lidhje tĂ« kriptuar duke pĂ«rdorur protokollin QUIC). Kur Ă«shtĂ« e mundur, krijohen lidhje direkte P2P, por nĂ«se kjo nuk Ă«shtĂ« e mundur, bĂ«het kalimi nĂ« punĂ«n pĂ«rmes releve, tĂ« cilat gjithashtu pĂ«rdoren pĂ«r zbuluar hostet pĂ«rmes çelĂ«save. ËshtĂ« e mundur tĂ« filloni relen tuaj ose tĂ« lidhni me rele tĂ« publikuara qĂ« mbĂ«shteten nga komuniteti.

    Mes azhurnuar: mbështetje për Multipath QUIC për dërgimin e pacove në të njëjtën kohë përmes disa rrugëve, mundësia e funksionimit përmes NAT, regjimi i konfigurimit të qëndrueshëm për t'u lidhur me pajisjet lokale pa qasje në internet, mundësia e ndërtimit në kodin ndërmjetës WASM për t'u ekzekutuar brenda shfletuesit, mbështetje për krijimin e transporteve të veta, për shembull, për t'u lidhur përmes Bluetooth, WiFi Aware ose LoRa. Kodi është shkruar në Rust dhe shpërndahet nën licencat Apache-2.0 dhe MIT. Janë në dispozicion lidhjet për Python, Node.js, Kotlin dhe Swift.

  • Autori i platformĂ«s server-side JavaScript Bun shpalli njĂ« artikull qĂ« shqyrton projektin e ridĂ«rgimit tĂ« Bun nga gjuha Zig nĂ« Rust, duke pĂ«rdorur modelin AI Claude Fable. VĂ«rehet se Bun 1.3.14 do tĂ« jetĂ« rrethi i fundit nĂ« Zig, dhe versioni i ardhshĂ«m Bun 1.4.0 do tĂ« jetĂ« nĂ« Rust. Sipas testeve tĂ« kryera, versioni nĂ« Rust konsumon ndjeshĂ«m mĂ« pak memorie dhe Ă«shtĂ« 2-5% mĂ« i shpejtĂ« se versioni nĂ« Zig. MadhĂ«sia e skedarit ekzekutues nĂ« versionin nĂ« Rust Ă«shtĂ« zvogĂ«luar me 20%.

Burimi: opennet.ru

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster