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

U publikua versioni i gjuhës së programimit Rust 1.52, i bazuar në projektin Mozilla, por tani zhvillohet nën mbështetje të organizatës së pavarur jo-fitimprurëse Rust Foundation. Gjuha fokusohet në punën e sigurt me memorien, siguron menaxhim automatike të memorjes dhe ofron mjete për arritjen e një paralelizmi 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 bibliotekën standarde).

Menaxhimi automatik i memories në Rust e shpëton zhvilluesin nga gabimet gjatë manipulimit të treguesve dhe mbron nga probleme që lindin nga puna në nivel të ulët me memorien, si aksesimi në një zonë të memories pas çlirimit të saj, dereferimi i treguesve nul, dalja jashtë kufijve të buffers dhe të tjerë. Për shpërndarjen e bibliotekave, sigurinë e ndërtimit dhe menaxhimin e varësive, projekti zhvillon menaxherin e pakove Cargo. Për hostimin e bibliotekave, mbështetet repozitari crates.io.

TĂ« rejat kryesore:

  • ËshtĂ« hequr lidhja me rendin e ekzekutimit tĂ« komandave "cargo check" dhe "cargo clippy". MĂ« parĂ«, thirrja "cargo clippy" pas "cargo check" nuk sillte fillimin e utilitarit clippy (linter) pĂ«r shkak tĂ« mungesĂ«s sĂ« ndarjes sĂ« cache pĂ«r kĂ«to moda verifikimi. Tani kjo problem Ă«shtĂ« zgjidhur dhe rendi i thirrjes "cargo clippy" dhe "cargo check" ka humbur rĂ«ndĂ«sinĂ«.
  • NjĂ« grup i ri API-sh Ă«shtĂ« transferuar nĂ« klasĂ«n e stabilizuar, duke pĂ«rfshirĂ« stabilizimin e metodave:
    • Arguments::as_str
    • char::MAX
    • char::REPLACEMENT_CHARACTER
    • char::UNICODE_VERSION
    • char::decode_utf16
    • char::from_digit
    • char::from_u32_unchecked
    • char::from_u32
    • slice::partition_point
    • str::rsplit_once
    • str::split_once
  • Tregu «const», qĂ« pĂ«rcakton mundĂ«sinĂ« e pĂ«rdorimit nĂ« çdo kontekst nĂ« vend tĂ« konstantave, aplikohet nĂ« metodat:
    • char::len_utf8
    • char::len_utf16
    • char::to_ascii_uppercase
    • char::to_ascii_lowercase
    • char::eq_ignore_ascii_case
    • u8::to_ascii_uppercase
    • u8::to_ascii_lowercase
    • u8::eq_ignore_ascii_case
  • Shtohet kontrolli lint i unsafe_op_in_unsafe_fn pĂ«r tĂ« pĂ«rcaktuar inkuadrimin e kodit unsafe tĂ« pĂ«rdorur nĂ« funksionet unsafe.
  • Lejohet konvertimi i treguesve mutable nĂ« vargje nĂ« formĂ«n e treguesve pĂ«r llojin tĂ« cilit i pĂ«rket elementi i vargut. let mut x: [usize; 2] = [0, 0]; let p = &mut x si *mut usize; let p = &mut x si *const usize;
  • NĂ« clippy (linter) janĂ« shtuar 9 kontrolle tĂ« reja.
  • NĂ« menaxherin e paketave cargo pĂ«r paketat Ă«shtĂ« implementuar mbĂ«shtetje pĂ«r fushĂ«n «manifest_path» nĂ« JSON. NĂ« depozitĂ«n crates.io Ă«shtĂ« shtuar mbĂ«shtetje pĂ«r specifikimin e informacionit mbi licencat nĂ« formatin SPDX 3.11.
  • Lejohet specifikimi i disa filtrave gjatĂ« ekzekutimit tĂ« testeve, pĂ«r shembull, ekzekutimi i «cargo test — foo bar» do tĂ« ekzekutojĂ« tĂ« gjitha testet qĂ« pĂ«rputhen me maskat «foo» dhe «bar».
  • Mjetet LLVM qĂ« pĂ«rdoren si parazgjedhje janĂ« azhurnuar nĂ« versionin LLVM 12.
  • U realizua niveli i tretĂ« i mbĂ«shtetjes pĂ«r platformat s390x-unknown-linux-musl, riscv32gc-unknown-linux-musl, riscv64gc-unknown-linux-musl dhe powerpc-unknown-openbsd. Niveli i tretĂ« parashikon mbĂ«shtetje bazike, por pa testimin automatizuar, publikimin e ndĂ«rtimeve zyrtare dhe verifikimin e mundĂ«sisĂ« pĂ«r ndĂ«rtimin e 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