Lëshimi i gjuhës së programimit Rust 1.68

ËshtĂ« publikuar versioni i gjuhĂ«s sĂ« programimit Rust 1.68, e cila u zhvillua fillimisht nga projekti Mozilla, por tani Ă«shtĂ« nĂ«n mbĂ«shtetje tĂ« njĂ« organizate tĂ« pavarur jo-fitimprurĂ«se, Rust Foundation. Gjuha fokusohet nĂ« sigurimin e menaxhimit tĂ« memories dhe ofron mjete pĂ«r arritjen e njĂ« paralelizmi tĂ« lartĂ« nĂ« ekzekutimin e detyrave, duke u anashkaluar pĂ«rdorimin e mbledhĂ«sit tĂ« plehrave dhe runtime (runtime reduktohet nĂ« inicializimin bazĂ« dhe mbĂ«shtetje tĂ« bibliotekĂ«s standarde).

Metodat e punës me kujtesën në Rust e çlirojnë zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbrojnë nga problemet që lindin nga puna me nivel të ulët me kujtesën, siç janë referimi në një zonë kujtese pas çlirimit të saj, dereferimi i treguesve null, tejkalimi i kufijve të tamponëve etj. Për shpërndarjen e biblioteka, për të siguruar ndërtimin dhe menaxhimin e varësive, projekti zhvillon menaxherin e paketave Cargo. Për ruajtjen e bibliotekave, mbështetet depoja 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:

  • NĂ« menaxherin e paketave Cargo dhe nĂ« repositorin crates.io, Ă«shtĂ« stabilizuar mbĂ«shtetja pĂ«r protokollin Sparse, i cili pĂ«rcakton njĂ« mĂ«nyrĂ« tĂ« re pĂ«r tĂ« punuar me indeksin, i cili pasqyron versionet e disponueshme tĂ« tĂ« gjitha paketave ekzistuese nĂ« repo. Protokolli i ri lejon njĂ« rritje tĂ« konsiderueshme tĂ« shpejtĂ«sisĂ« sĂ« punĂ«s me crates.io dhe zgjidh probleme me shkallĂ«zimin nĂ« rritjen e numrit tĂ« paketimeve nĂ« repo.

    Për të reduktuar vonesat që lindin nga ngarkimi i indeksit të plotë, në Sparse, përveç qasjes në indeks me Git, është përdorur shkarkimi direkt përmes HTTPS i vetëm të dhënave të nevojshme të indeksit që mbulojnë varësitë e projektit specifik. Për ofrimin e të dhënave të indeksit është përdorur një shërbim i ri, index.crates.io. Si parazgjedhje, protokolli i ri planifikohet të vendoset në degën Rust 1.70, ndërsa deri në atë kohë, për ta aktivizuar mund të vendosni variablin e ambientit "CARGO_REGISTRIES_CRATES_IO_PROTOCOL=sparse" ose të shtoni në seksionin "[registries.crates-io]" të skedarit .cargo/config.toml parametrin 'protocol = "sparse"'.

  • ËshtĂ« shtuar makrosi "pin!", i cili lejon krijimin e njĂ« strukture Pin nga shprehja "T" me njĂ« pĂ«rfiks tĂ« lokalizuar tĂ« gjendjes sĂ« saj (ndryshe nga Box::pin, nuk e alokuar kujtesĂ« nĂ« heap, por kryen lidhjen nĂ« nivelin e stack-ut).
  • ËshtĂ« propozuar njĂ« trajtim i gabimeve nĂ« alokimin e memories, i cili pĂ«rdoret me paketĂ«n standarde alloc. Aplikacionet qĂ« aktivizojnĂ« vetĂ«m alloc (pa std) do tĂ« thĂ«rrasin prej tani e tutje trajtuesin "panic!" kur ndodhin dĂ«shtime tĂ« alokimit tĂ« memories, i cili sipas dĂ«shirĂ«s mund tĂ« kapet me anĂ« tĂ« "#[panic_handler]". Programet qĂ« pĂ«rdorin bibliotekĂ«n std do tĂ« vazhdojnĂ« tĂ« nxjerrin informacion nĂ« lidhje me gabimin nĂ« stderr dhe do tĂ« pĂ«rfundojnĂ« ngjarjen nĂ« mĂ«nyrĂ« emergjente.
  • NjĂ« sasi e re API Ă«shtĂ« kaluar nĂ« kategorinĂ« stabile, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« tipazheve:
    • {core,std}::pin::pin!
    • impl From pĂ«r {f32,f64}
    • std::path::MAIN_SEPARATOR_STR
    • impl DerefMut pĂ«r PathBuf
  • Shenja "const", e cila pĂ«rcakton mundĂ«sinĂ« e pĂ«rdorimit nĂ« çdo kontekst nĂ« vend tĂ« konstantave, Ă«shtĂ« aplikuar nĂ« funksionin VecDeque::new.
  • PĂ«r pĂ«rdorim nĂ« platformĂ«n Android tani kĂ«rkohet tĂ« paktĂ«n NDK r25 (API 19), pra, versioni minimal i mbĂ«shtetur tĂ« rritet nĂ« 4.4 (KitKat).
  • ËshtĂ« realizuar niveli i tretĂ« i mbĂ«shtetjes pĂ«r platformĂ«n Sony PlayStation Vita (armv7-sony-vita-newlibeabihf). Niveli i tretĂ« nĂ«nkupton mbĂ«shtetje bazike, por pa teste automatike, publikimin e ndĂ«rtimeve zyrtare dhe verifikimin e mundĂ«sisĂ« sĂ« ndĂ«rtimit tĂ« kodit.

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