Publikimi i gjuhës së programimit Rust 1.69

ËshtĂ« publikuar njĂ« version i ri i gjuhĂ«s sĂ« programimit Rust 1.69, fillimisht i zhvilluar nga Mozilla, por tani nĂ«n mbikĂ«qyrjen e organizatĂ«s jo-fitimprurĂ«se Rust Foundation. Gjuha fokusohet nĂ« sigurinĂ« e punĂ«s me memorjen dhe ofron mjete pĂ«r arritjen e njĂ« paralelizmi tĂ« lartĂ« nĂ« ekzekutimin e detyrave, duke shmangur pĂ«rdorimin e mbledhĂ«sit tĂ« mbetjeve dhe runtime (runtime pĂ«rmbledh ndihmĂ«n themelore tĂ« inicializimit dhe mbĂ«shtetjes sĂ« 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 Ă«shtĂ« implementuar identifikimi i paralajmĂ«rimeve qĂ« mund tĂ« zgjidhen automatikisht, si dhe rekomandime pĂ«r ekzekutimin e «cargo fix» ose «cargo clippy —fix». warning: import i papĂ«rdorur: ‘std::hash::Hash’ —> src/main.rs:1:5 | 1 | use std::hash::Hash; | ^^^^^^^^^^^^^^^ | = note: ‘#[warn(unused_imports)]’ Ă«shtĂ« ndarĂ« automatikisht warning: ‘foo’ (bin «foo») ka gjeneruar 1 paralajmĂ«rim (ekzekutoni ‘cargo fix —bin «foo»’ pĂ«r tĂ« aplikuar 1 sugjerim)
  • NĂ« Cargo Ă«shtĂ« shtuar rekomandimi pĂ«r pĂ«rdorimin e komandĂ«s «cargo add» gjatĂ« pĂ«rpjekjes pĂ«r tĂ« instaluar njĂ« bibliotekĂ« me komandĂ«n «cargo install».
  • PĂ«r tĂ« shkurtuar kohĂ«n e kompilimit, Ă«shtĂ« ndĂ«rprerĂ« pĂ«rfshirja e informacionit pĂ«r debuggim nĂ« skenat e ndĂ«rtimit. NĂ«se skenat e ndĂ«rtimit pĂ«rfundojnĂ« me sukses, ndryshimi nuk do tĂ« sjellĂ« ndonjĂ« dallim tĂ« dukshĂ«m, por nĂ« rast tĂ« dĂ«shtimeve, dump me gjurmĂ« tĂ« prapme do tĂ« pĂ«rmbajĂ« mĂ« pak informacion. PĂ«r tĂ« rikthyer sjelljen e vjetĂ«r, duhet tĂ« shtoni nĂ« Cargo.toml: [profile.dev.build-override] debug = true [profile.release.build-override] debug = true
  • NjĂ« sasi e re API Ă«shtĂ« kaluar nĂ« kategorinĂ« stabile, pĂ«rfshirĂ« stabilizimin e metodave dhe implementimeve tĂ« tipazheve:
    • CStr::from_bytes_until_nul
    • core::ffi::FromBytesUntilNulError
  • Karakteristika «const», qĂ« pĂ«rcakton mundĂ«sinĂ« e pĂ«rdorimit nĂ« çdo kontekst nĂ« vend tĂ« konstantave, Ă«shtĂ« aplikuar nĂ« funksionet:
    • SocketAddr::new
    • SocketAddr::ip
    • SocketAddr::port
    • SocketAddr::is_ipv4
    • SocketAddr::is_ipv6
    • SocketAddrV4::new
    • SocketAddrV4::ip
    • SocketAddrV4::port
    • SocketAddrV6::new
    • SocketAddrV6::ip
    • SocketAddrV6::port
    • SocketAddrV6::flowinfo
    • SocketAddrV6::scope_id
  • ÈshtĂ« shtuar mundĂ«sia e pĂ«rdorimit tĂ« flag-Ă«ve true dhe false nĂ« argumentet e kompilatorit.

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