Lëshimi i Rust 1.97. Bërthama Zinnia e shkruar në Rust dhe sistemi P2P Iroh me adresim përmes çelësave

ËshtĂ« publikuar lĂ«shimi i gjuhĂ«s sĂ« programimit Rust 1.97, e cila Ă«shtĂ« zhvilluar fillimisht nga projekti Mozilla, por tani zhvillohet nĂ«n mbikĂ«qyrjen e organizatĂ«s jo fitimprurĂ«se Rust Foundation. Gjuha fokusohet nĂ« punĂ«n e sigurt me memorien dhe ofron mjete pĂ«r tĂ« arritur njĂ« paralelizĂ«m tĂ« lartĂ« nĂ« ekzekutimin e detyrave, duke shmangur pĂ«rdorimin e mbledhĂ«sit tĂ« plehrave dhe runtime (runtime reduktohet nĂ« inicializimin bazĂ« dhe mbĂ«shtetje pĂ«r librarinĂ« standarde).

Metodat e punës me memorien në Rust kanë si objektiv të ekskludojnë gabimet gjatë manipulimit të treguesve dhe të mbrojnë nga problemet që lindin për shkak të punës me memorien në nivel të ulët, siç janë qasja në hapësirën e memories pas çlirimit të saj, dereferencimi i treguesve zero, dalja jashtë kufijve të tamponit, etj. Për shpërndarjen e librarive, sigurimin e ndërtimit dhe menaxhimin e varësive, projekti zhvillohet me menaxherin e paketave Cargo. Për mbështetje të librarive, mbahet repozitori crates.io.

Përdorimi i sigurt i memories sigurohet në Rust gjatë kompilimit përmes verifikimit të lidhjeve, gjurmimit të pronësisë së objekteve, përllogaritjes së kohëzgjatjes së objekteve (fushave të dukshmërisë) dhe vlerësimit të saktësisë së qasjes në memorie gjatë ekzekutimit të kodit. Rust gjithashtu ofron mjete për mbrojtje nga tejkalimet e numrave të plotë, kërkon inicializim të detyrueshëm të vlerave të variablave para përdorimit, menaxhon më mirë gabimet në bibliotekën standarde, aplikon konceptin e lidhjeve dhe variablave të pandryshueshëm (immutable) si parazgjedhje, dhe ofron tipizim të fortë statik për minimizimin e gabimeve logjike.

TĂ« rejat kryesore:

  • NjĂ« plan i ri i dekorimit (mangling) tĂ« emrave tĂ« funksioneve, variablave globale dhe strukturave tĂ« dhĂ«nash nĂ« skedarĂ«t objekt dhe ekzekutues Ă«shtĂ« aktivizuar si parazgjedhje (-Csymbol-mangling-version=v0). Emrat dekorohen pĂ«r tĂ« parandaluar konflikte gjatĂ« lidhjes sĂ« programeve tĂ« ndryshme, duke i bashkangjitur njĂ« kontekst specifik, si rruga nĂ« modul dhe emri i paketĂ«s crate.

    Skema e mëparshme e dekodimit të emrave, e bazuar në Itanium ABI, kishte disavantazhe si zëvendësimi i parametrave të gjenerikëve me hash-e të palexueshme dhe praninë e pjesëve të kompilatorit që nuk përdornin Itanium ABI, gjë që kërkonte përdorimin e dekodifikuesve të emrave specifik për Rust. Në Rust 1.97, skema e dekodimit të projektuar posaçërisht për Rust është e aktivizuar si parazgjedhje dhe është liruar nga të metat e përmendura. Skema e vjetër pritet të hiqet në një nga lëshimet e ardhshme.

  • Menaxheri i paketave cargo ka integruar mundĂ«sinĂ« pĂ«r tĂ« menaxhuar reagimin ndaj gjenerimit tĂ« paralajmĂ«rimeve nga kompilatori gjatĂ« ndĂ«rtimit. NjĂ« variabĂ«l mjedisore e re, CARGO_BUILD_WARNINGS, Ă«shtĂ« shtuar dhe mund tĂ« marrĂ« tre vlera: warn (parazgjedhje) — shfaq paralajmĂ«rimin nĂ« ekran; allow — fsheh shfaqjen e paralajmĂ«rimeve; deny — trajton paralajmĂ«rimet si gabime qĂ« ndalojnĂ« ndĂ«rtimin.

    Në versionet e kaluara, për të përfunduar ndërtimin pas daljes së paralajmërimit, ishte e nevojshme të specifikohej «-Dwarnings» në RUSTFLAGS për kompilatorin, por kur RUSTFLAGS ndryshonte, menaxheri i paketave cargo e konsideronte ndërtimin si të ri, nuk merrte parasysh të dhënat në cache dhe rindërtonte të gjithë projektin nga fillimi. Duke e zhvendosur konfigurimin në anën e cargo, u eliminuar nevoja për të pastruar cache-n dhe nevojën për një rikompilim të plotë kur modifikoheshin mënyrat e trajtimit të paralajmërimeve, si dhe u thjeshtua aktivizimi i trajtimit të paralajmërimeve si gabime në sistemet e integrimit të vazhdueshëm.

  • Kur ndihmĂ«zimi Ă«shtĂ« i aktivizuar, mesazhet e printuara nga ndihmĂ«zimi shfaqen si paralajmĂ«rime pĂ«rmes njĂ« rregulli tĂ« veçantĂ« lint-i "linker_messages" qĂ« nuk bĂ«n pjesĂ« nĂ« grupin standard tĂ« "warnings". NĂ« kĂ«tĂ« rast, rustc filtroi mesazhet qĂ« janĂ« ndihmesĂ« false tipike ose sjellje normale, duke lĂ«nĂ« paralajmĂ«rimet qĂ« mund tĂ« tregojnĂ« probleme, siç janĂ« paralajmĂ«rimet pĂ«r opsione tĂ« pĂ«rjetshme dhe konfigurime tĂ« padĂ«shiruara. MĂ« parĂ«, informacioni nga ndihmĂ«zimi shfaqej vetĂ«m nĂ« rast çështjesh me gabime, ndryshe tĂ« gjitha mesazhet ishin tĂ« fshehura. PĂ«r tĂ« kthyer sjelljen e vjetĂ«r, mund tĂ« shtoni nĂ« Cargo.toml: [lints.rust] linker_messages = "allow"
  • NjĂ« sasi e re API Ă«shtĂ« kaluar nĂ« kategorinĂ« stabile, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« tipazheve:
    • Default pĂ«r RepeatN
    • Kopje pĂ«r ffi::FromBytesUntilNulError
    • DĂ«rgesĂ« pĂ«r std::fs::File pĂ«r UEFI
    • ::isolate_highest_one
    • ::isolate_lowest_one
    • ::highest_one
    • ::lowest_one
    • ::bit_width
    • NonZero::isolate_highest_one
    • NonZero::isolate_lowest_one
    • NonZero::highest_one
    • NonZero::lowest_one
    • NonZero::bit_width
  • CilĂ«sia "const" Ă«shtĂ« aplikuar nĂ« metodĂ«n char::is_control.

Gjithashtu, mund të theksojmë projektet dhe ngjarjet e sapo shpallura që lidhen me Rust:

  • Projekti zinnia zhvillon njĂ« bĂ«rthamĂ« modulare Unix-like, e shkruar 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 epoll dhe timerfd. PĂ«r renderimin dhe organizimin e hyrjes, janĂ« tĂ« disponueshme drajtverĂ«t DRM (Direct Rendering Manager) dhe evdev. Funksionaliteti i zbatuar Ă«shtĂ« i mjaftueshĂ«m pĂ«r tĂ« nisur mjedisin e desktopit Xfce nĂ«n menaxherin e ekranit X-server dhe kompozitorin server Weston mbi 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 komunikacioni iroh 1.0, qĂ« lejon vendosjen e lidhjeve rrjetĂ«rore ndĂ«rmjet aplikacioneve nĂ« hoste tĂ« ndryshme duke u lidhur me çelĂ«sa kriptografikĂ«, nĂ« vend tĂ« IP-adresave (specifikohet çelĂ«si me tĂ« cilin duhet tĂ« lidhet dhe iroh gjen hostin e lidhur me tĂ« dhe krijon njĂ« lidhje tĂ« enkriptuar duke pĂ«rdorur protokollin QUIC). Kur Ă«shtĂ« e mundur, krijohen lidhje P2P direkte, por nĂ«se kjo nuk Ă«shtĂ« e mundur, zbatohet rĂ«nia pĂ«r tĂ« punuar pĂ«rmes rilivave, tĂ« cilat gjithashtu pĂ«rdoren pĂ«r tĂ« zbuluar hostet pĂ«rmes çelĂ«save. ËshtĂ« e mundur tĂ« niset njĂ« riliv i vetĂ« dhe tĂ« lidhet me rilivat publike tĂ« mbĂ«shtetura nga komuniteti.

    Mes mundësive të avancuara: mbështetje për Multipath QUIC për shpërndarjen e pakove në të njëjtën kohë përmes disa rrugëve, mundësia e punës nën NAT, gjendja e konfigurimit statik për t'u lidhur me pajisje lokale pa qasje në internet, mundësia e ndërtimit në kodin ndërmjetësor WASM për ekzekutimin 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 licensat Apache-2.0 dhe MIT. Disponohen lidhje për Python, Node.js, Kotlin dhe Swift.

  • Autori i platformĂ«s serverike JavaScript Bun publikoi njĂ« artikull qĂ« analizon projektin e ridizajnimit tĂ« Bun nga gjuhĂ«n Zig nĂ« Rust, duke pĂ«rdorur modelin AI Claude Fable. Shtohet se Bun 1.3.14 do tĂ« jetĂ« versioni i fundit nĂ« Zig dhe versioni i ardhshĂ«m Bun 1.4.0 do tĂ« jetĂ« nĂ« Rust. Sipas testeve tĂ« kryera, versione nĂ« Rust konsumon dukshĂ«m mĂ« pak memorie dhe Ă«shtĂ« 2-5% mĂ« e shpejtĂ« se versioni nĂ« Zig. MadhĂ«sia e skedarit ekzekutiv nĂ« versionin Rust Ă«shtĂ« zvogĂ«luar me 20%.

Burimi: opennet.ru

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