Rust 1.44 programmēŔanas valodas izlaidums

publicēts sistēmas programmēŔanas valodas izlaidums 1.44. rÅ«sa, ko dibināja Mozilla projekts. Valoda koncentrējas uz atmiņas droŔību, nodroÅ”ina automātisku atmiņas pārvaldÄ«bu un nodroÅ”ina rÄ«kus augsta uzdevumu paralēlisma sasniegÅ”anai, neizmantojot atkritumu savācēju un runtime.

Rust automātiskā atmiņas pārvaldÄ«ba novērÅ” kļūdas, manipulējot ar rādÄ«tājiem, un aizsargā pret problēmām, kas rodas no zema lÄ«meņa atmiņas manipulācijām, piemēram, piekļuves atmiņas apgabalam pēc tā atbrÄ«voÅ”anas, nulles rādÄ«tāju novirzēm, bufera pārtēriņiem utt. Tiek izstrādāts pakotņu pārvaldnieks, lai izplatÄ«tu bibliotēkas, nodroÅ”inātu montāžu un pārvaldÄ«tu projekta atkarÄ«bas. krava, kas ļauj ar vienu klikŔķi iegÅ«t programmai nepiecieÅ”amās bibliotēkas. Repozitorijs tiek atbalstÄ«ts bibliotēku mitināŔanai crates.io.

Jaunās versijas paziņojuma tekstā Rust izstrādātāji iegāja politizētā nostājā un, solidarizējoties ar protestētājiem pret policijas vardarbÄ«bu, atklāti atteicās publicēt pilnÄ«gu Rust 1.44 izmaiņu pārskatu, norādot, ka Å”is jautājums ir svarÄ«gāks par tehnisko zināŔanu apmaiņu. jauninājumiem:

  • Cargo pakotņu pārvaldniekā tagad ir iekļauta komanda "cargo tree", kas attēlo atkarÄ«bu koka formas grafiku. Pievienota arÄ« opcija "--duplicates" (cargo tree -d), kas ļauj novērtēt atkarÄ«bas dažādās vienas pakotnes versijās.

    mdbook v0.3.2 (/Lietotāji/src/rust/mdbook)
    ā”œā”€ā”€ amonjaks v3.0.0
    │ ā”œā”€ā”€ html5ever v0.24.0
    │ │ ā”œā”€ā”€ žurnāls v0.4.8
    │ │ │ └── cfg-if v0.1.9
    │ │ ā”œā”€ā”€ mac v0.1.1
    │ │ └── markup5ever v0.9.0
    │ │ ā”œā”€ā”€ žurnāls v0.4.8 (*)
    │ │ ā”œā”€ā”€ phf v0.7.24
    │ │ │ └── phf_shared v0.7.24
    │ │ │ ā”œā”€ā”€ siphasher v0.2.3
    │ │ │ └── unicase v1.4.2
    │ │ │ [veidoÅ”anas-atkarÄ«bas] │ │ │ └── versijas_pārbaude v0.1.5
    ...

  • Lietojumprogrammām, kas nav piesaistÄ«tas standartam ("#![no_std]"), ir ieviests atbalsts asinhronās programmēŔanas metodēm, kuru pamatā ir funkcija "async", bloks "async move { ... }" un operators ".await", kas atvieglo tādu apstrādātāju rakstīŔanu, kas nebloķē galveno komandu plÅ«smu.
  • Parsētājs tagad atbalsta paplaÅ”ināmu moduļu hierarhijas definÄ«cijas shēmu. Piemēram, Ŕāda konstrukcija neradÄ«s kļūdu, neskatoties uz moduļa "foo/bar/baz.rs" faktisko neesamÄ«bu (semantiski konstrukcija joprojām ir nederÄ«ga un var Ä£enerēt kļūdu, taču izmaiņas var redzēt un parsēt makro un nosacÄ«juma kompilācijas lÄ«menÄ«):

    #[cfg(FALSE)] mod foo {
    mod josla {
    mod baz;
    }
    }

  • Rustc kompilators tagad atbalsta karodziņu "-C codegen-units" inkrementālā režīmā. `catch_unwind` ievieÅ”ana ir pārstrādāta, lai nodroÅ”inātu, ka tai nav ietekmes uz veiktspēju, ja atbloķēŔana ir atspējota un netiek pieļauti izņēmumi.
  • 3. lÄ«meņa atbalsts ir iespējots platformām aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos un x86_64-apple-tvos. 3. lÄ«menis nodroÅ”ina pamata atbalstu, bet bez automatizētas testēŔanas vai oficiālām versiju izlaidumiem.
  • Jauna API daļa ir pārcelta uz stabilo kategoriju, tostarp stabilizētā
    PathBuf::ar_ietilpību,
    PathBuf::kapacitāte,
    PathBuf::clear,
    PathBuf::rezerve,
    PathBuf::rezerve_precīzs,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Izkārtojums::align_to,
    Izkārtojums::pad_to_align,
    Layout::array un
    Izkārtojums::paplaŔināt.
  • Standarta bibliotēkas paplaÅ”inātās funkcijas:
    • Pievienots Ä«paÅ”s "vec![]" variants, kas ir tieÅ”i atspoguļots Vec::new(), ļaujot kontekstā izmantot "vec![]" konstantu vietā.
    • Pievienota iezÄ«mes ievieÅ”ana (impl), lai convert::Infallible Saputrot.
    • OsString ievieÅ” viedos rādÄ«tājus DerefMut Šø IndexMut, atgriežot "&mut OsStr".
    • Pievienots Unicode 13 atbalsts.
    • Ieviests virknē No<&mut str>.
    • IoSlice ievieÅ” Ä«paŔību kopija.
    • Vecā ieviests no <[T; N]>.
    • proc_macro::LexError ievieÅ” fmt::Display un Error.
  • KarodziņŔ "const", kas nosaka lietoÅ”anas iespēju jebkurā kontekstā konstantu vietā, tiek lietots metodēs from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes un to_ne_bytes visiem veselu skaitļu tipiem.
  • Pievienots atbalsts statisko bibliotēku Ä£enerēŔanai ".a" formātā ".lib" vietā GNU platformām operētājsistēmā Windows.
  • LLVM minimālās prasÄ«bas ir paaugstinātas lÄ«dz LLVM 8.

Avots: opennet.ru

Pievieno komentāru