Publikimi i gjuhës programuese Rust 1.44

botuar lëshimi i gjuhës programuese të sistemit Ndryshku 1.44, e themeluar nga projekti Mozilla. Gjuha fokusohet në sigurinë e kujtesës, siguron menaxhimin automatik të kujtesës dhe ofron mjete për arritjen e paralelizmit të lartë të detyrave pa përdorur një grumbullues mbeturinash dhe Runtime.

Menaxhimi automatik i kujtesës i Rust eliminon gabimet gjatë manipulimit të treguesve dhe mbron nga problemet që lindin nga manipulimi i nivelit të ulët të memories, të tilla si qasja në një rajon memorie pasi të jetë liruar, mosreferencat e treguesit null, tejkalimet e buferit, etj. Një menaxher paketash po zhvillohet për të shpërndarë bibliotekat, për të siguruar montimin dhe për të menaxhuar varësitë nga projekti. ngarkesë, duke ju lejuar të merrni bibliotekat e nevojshme për programin me një klik. Një depo mbështetet për të pritur bibliotekat arka.io.

Në tekstin e njoftimit të versionit të ri, zhvilluesit e Rust u përfshinë në politikë dhe refuzuan të publikonin një përmbledhje të plotë të ndryshimeve në Rust 1.44 si shenjë solidariteti me protestuesit kundër dhunës policore, duke treguar se kjo çështje është më e rëndësishme sesa shkëmbimi i njohurive teknike. bazë risitë:

  • Menaxheri i paketĂ«s sĂ« ngarkesave integron komandĂ«n "pema e ngarkesave", e cila shfaq njĂ« grafik varĂ«sie tĂ« ngjashme me pemĂ«n. Shtohet gjithashtu opsioni "—duplicates" ("pema e ngarkesave -d"), i cili ju lejon tĂ« vlerĂ«soni varĂ«sitĂ« nĂ« versione tĂ« ndryshme tĂ« sĂ« njĂ«jtĂ«s paketĂ«.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    ├── amoniak v3.0.0
    │ ├── html5ever v0.24.0
    │ │ ├── log v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ├── mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ├── log v0.4.8 (*)
    │ │ ├── phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ├── siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [varĂ«si ndĂ«rtimi] │ │ │ └── version_check v0.1.5
    ...

  • PĂ«r aplikacionet qĂ« nuk lidhen me njĂ« std ("#![no_std]"), mbĂ«shtetja pĂ«r teknikat e programimit asinkron zbatohet bazuar nĂ« funksionin "async", bllokun async move { ... } dhe operatorin ".wait", i cili thjeshtoni shkrimin e rrjedhĂ«s kryesore tĂ« komandave tĂ« mbajtĂ«sve jo-bllokues.
  • MbĂ«shtetja pĂ«r njĂ« skemĂ« tĂ« pĂ«rkufizimit tĂ« hierarkisĂ« sĂ« modulit tĂ« zgjeruar Ă«shtĂ« shtuar nĂ« analizues. PĂ«r shembull, konstrukti i mĂ«poshtĂ«m nuk do tĂ« prodhojĂ« njĂ« gabim, pavarĂ«sisht mungesĂ«s aktuale tĂ« modulit "foo/bar/baz.rs" (konstrukti Ă«shtĂ« ende semantikisht i pavlefshĂ«m dhe mund tĂ« shkaktojĂ« njĂ« gabim, por ndryshimet mund tĂ« shihen dhe analizohen nĂ« niveli i kompilimit makro dhe i kushtĂ«zuar):

    #[cfg(FALSE)] mod foo {
    shiriti i modalitetit {
    mod baz;
    }
    }

  • PĂ«rpiluesi rustc ka shtuar aftĂ«sinĂ« pĂ«r tĂ« pĂ«rdorur flamurin "-C codegen-units" nĂ« modalitetin incremental. Zbatimi i catch_unwind Ă«shtĂ« ripunuar nĂ« mĂ«nyrĂ« qĂ« tĂ« mos ketĂ« ndikim nĂ« performancĂ« nĂ«se procesi i shthurjes çaktivizohet dhe nuk bĂ«hen pĂ«rjashtime.
  • MbĂ«shtetja e nivelit 64 Ă«shtĂ« ofruar pĂ«r platformat aarch64-unknown-none, aarch64-unknown-none-softfloat, arm86-apple-tvos dhe x64_XNUMX-apple-tvos. Niveli i tretĂ« pĂ«rfshin mbĂ«shtetjen bazĂ«, por pa testime dhe publikime tĂ« automatizuara tĂ« ndĂ«rtimeve zyrtare.
  • NjĂ« pjesĂ« e re e API-ve Ă«shtĂ« transferuar nĂ« kategorinĂ« e qĂ«ndrueshme, duke pĂ«rfshirĂ« tĂ« stabilizuar
    PathBuf::me_kapacitet,
    PathBuf:: Kapaciteti,
    PathBuf:: qartë,
    PathBuf::rezervë,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_uncheked,
    Layout::align_to,
    Layout::pad_to_align,
    Layout::array dhe
    Paraqitja::zgjero.
  • Funksionet e zgjeruara tĂ« bibliotekĂ«s standarde:
    • U shtua njĂ« variant i veçantĂ« "vec![]" qĂ« pasqyrohet drejtpĂ«rdrejt nĂ« Vec::new(), duke lejuar qĂ« "vec![]" tĂ« pĂ«rdoret nĂ« kontekst nĂ« vend tĂ« konstanteve.
    • NjĂ« zbatim (impl) i tiparit Ă«shtĂ« shtuar pĂ«r tĂ« konvertuar::I pagabueshĂ«m hashish.
    • OsString zbaton tregues inteligjentĂ« DerefMut Đž IndexMut, duke kthyer "&mut OsStr".
    • MbĂ«shtetje e shtuar pĂ«r Unicode 13.
    • Zbatuar nĂ« String Nga<&mut str>.
    • IoSlice zbaton tiparin Copy.
    • Vec zbatuar Nga<[T; N]>.
    • proc_macro::LexError zbaton fmt::Display dhe Error.
  • Atributi “const”, i cili pĂ«rcakton nĂ«se mund tĂ« pĂ«rdoret nĂ« çdo kontekst nĂ« vend tĂ« konstanteve, pĂ«rdoret nĂ« metodat nga_le_bytes, nĂ«_le_bytes, nga_be_bytes, nĂ«_be_bytes, nga_ne_bytes dhe nĂ«_ne_bytes pĂ«r tĂ« gjitha llojet e numrave tĂ« plotĂ«.
  • U shtua mbĂ«shtetje pĂ«r gjenerimin e bibliotekave statike nĂ« formatin ".a" nĂ« vend tĂ« ".lib" pĂ«r platformat GNU nĂ« Windows.
  • KĂ«rkesat minimale pĂ«r LLVM janĂ« ngritur nĂ« versionin 8 tĂ« LLVM.

Burimi: opennet.ru

Shto një koment