Umhlwa 1.44 Ukukhutshwa koLwimi lweNkqubo

ipapashiwe inkqubo yolwimi ukukhululwa Umhlwa 1.44, yasekwa yiprojekthi yeMozilla. Ulwimi lujolise ekukhuselweni kwememori, lubonelela ngolawulo lwememori oluzenzekelayo, kwaye lubonelela ngezixhobo zokuphumeza umsebenzi ophezulu wokuhambelana ngaphandle kokusebenzisa umqokeleli wenkunkuma kunye. ixesha lokuqalisa.

Ulawulo lwenkumbulo oluzenzekelayo lwe-Rust lususa iimpazamo xa ulawula izikhombisi kwaye ukhusela kwiingxaki ezivela kulawulo lwenkumbulo olukwinqanaba elisezantsi, njengokufikelela kwindawo yememori emva kokuba ikhululiwe, ukulahlwa kwesalathiso esingenanto, ukugqithiswa kwe-buffer, njl. Umphathi wephakheji uyaphuhliswa ukuze asasaze amathala eencwadi, aqinisekise ukudibanisa kunye nokulawula ukuxhomekeka kwiprojekthi. Cargo, ikuvumela ukuba ufumane amathala eencwadi afunekayo kudweliso lwenkqubo ngonqakrazo olunye. Uvimba uyaxhaswa ukubamba amathala eencwadi iikhreyithi.io.

Π’ тСкстС анонса Π½ΠΎΠ²ΠΎΠ³ΠΎ выпуска Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΈ Rust ввязались Π² ΠΏΠΎΠ»ΠΈΡ‚ΠΈΠΊΡƒ ΠΈ дСмонстративно ΠΎΡ‚ΠΊΠ°Π·Π°Π»ΠΈΡΡŒ ΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±Π·ΠΎΡ€ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ Π² Rust 1.44 Π² Π·Π½Π°ΠΊ солидарности с ΠΏΡ€ΠΎΡ‚Π΅ΡΡ‚ΡƒΡŽΡ‰ΠΈΠΌΠΈ ΠΏΡ€ΠΎΡ‚ΠΈΠ² полицСйского насилия, ΡƒΠΊΠ°Π·Π°Π², Ρ‡Ρ‚ΠΎ этот вопрос Π²Π°ΠΆΠ½Π΅Π΅ ΠΎΠ±ΠΌΠ΅Π½Π° тСхничСскими знаниями. ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ ezintsha:

  • Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Cargo ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«cargo treeΒ», выводящая Π΄Ρ€Π΅Π²ΠΎΠ²ΠΈΠ΄Π½Ρ‹ΠΉ Π³Ρ€Π°Ρ„ зависимостСй. Π’Π°ΠΊΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° опция Β«β€”duplicatesΒ» (Β«cargo tree -dΒ»), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π°Ρ ΠΎΡ†Π΅Π½ΠΈΡ‚ΡŒ зависимости Π² Ρ€Π°Π·Π½Ρ‹Ρ… вСрсиях ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

    mdbook v0.3.2 (/Users/src/rust/mdbook)
    β”œβ”€β”€ ammonia 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
    β”‚ β”‚ β”‚ [build-dependencies] β”‚ β”‚ β”‚ └── version_check v0.1.5
    ...

  • Для ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π΅ привязанных ΠΊ std (Β«#![no_std]Β»), Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ² асинхронного программирования, основанных Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«asyncΒ», Π±Π»ΠΎΠΊΠ΅ async move { … } ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π΅ Β«.awaitΒ», ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΡƒΠΏΡ€ΠΎΡ‰Π°ΡŽΡ‚ написаниС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ², Π½Π΅ Π±Π»ΠΎΠΊΠΈΡ€ΡƒΡŽΡ‰ΠΈΡ… основной ΠΏΠΎΡ‚ΠΎΠΊ ΠΊΠΎΠΌΠ°Π½Π΄.
  • Π’ парсСр Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Ρ€Π°ΡΡˆΠΈΡ€ΡΠ΅ΠΌΠΎΠΉ схСмы опрСдСлСния ΠΈΠ΅Ρ€Π°Ρ€Ρ…ΠΈΠΈ ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ. НапримСр, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ конструкция Π½Π΅ ΠΏΡ€ΠΈΠ²Π΅Π΄Ρ‘Ρ‚ ΠΊ Π²Ρ‹Π²ΠΎΠ΄Ρƒ ошибки, нСсмотря Π½Π° фактичСскоС отсутствиС модуля Β«foo/bar/baz.rsΒ» (сСмантичСски конструкция ΠΏΠΎ-ΠΏΡ€Π΅ΠΆΠ½Π΅ΠΌΡƒ нСдопустима ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΎΡˆΠΈΠ±ΠΊΡƒ, Π½ΠΎ измСнСния ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΈ Ρ€Π°Π·ΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ макросов ΠΈ условной компиляции):

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

  • Π’ компиляторС rustc Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Ρ„Π»Π°Π³Π° Β«-C codegen-unitsΒ» Π² ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅. ΠŸΠ΅Ρ€Π΅Ρ€Π°Π±ΠΎΡ‚Π°Π½Π° рСализация catch_unwind, которая Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ Π½Π΅ ΠΎΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ влияния Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ, Ссли ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Ρ‘Π½ процСсс Β«Ρ€Π°Π·ΠΌΠΎΡ‚ΠΊΠΈΒ» (unwinding) ΠΈ Π½Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ‚ ΠΈΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΉ.
  • ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ Ρ‚Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈ для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ aarch64-unknown-none, aarch64-unknown-none-softfloat, arm64-apple-tvos ΠΈ x86_64-apple-tvos. Π’Ρ€Π΅Ρ‚ΠΈΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π΅Ρ‚ Π±Π°Π·ΠΎΠ²ΡƒΡŽ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ, Π½ΠΎ Π±Π΅Π· Π°Π²Ρ‚ΠΎΠΌΠ°Ρ‚ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ тСстирования ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΎΡ„ΠΈΡ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Ρ… сборок.
  • Inxalenye entsha ye-APIs idluliselwe kwinqanaba elizinzile, kubandakanywa nokuzinza
    PathBuf::with_capacity,
    PathBuf::capacity,
    PathBuf::clear,
    PathBuf::reserve,
    PathBuf::reserve_exact,
    PathBuf::shrink_to_fit,
    {f32|f64}::to_int_unchecked,
    Layout::align_to,
    Layout::pad_to_align,
    Layout::array ΠΈ
    Layout::extend.

  • Imisebenzi eyandisiweyo yethala leencwadi elisemgangathweni:
    • Π”ΠΎΠ±Π°Π²Π»Π΅Π½ ΡΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΉ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Β«vec![]Β», Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚Ρ€Π°ΠΆΠ°Π΅ΠΌΡ‹ΠΉ Π² Vec::new(), Ρ‡Ρ‚ΠΎ позволяСт ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Β«vec![]Β» Π² контСкстС вмСсто констант.
    • Π’ convert::Infallible Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° рСализация (impl) Ρ‚ΠΈΠΏΠ°ΠΆΠ° Hash.
    • Π’ OsString Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ ΡƒΠΌΠ½Ρ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ DerefMut ΠΈ IndexMut, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠ΅ Β«&mut OsStrΒ».
    • Inkxaso eyongeziweyo ye-Unicode 13.
    • Π’ String Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ From<&mut str>.
    • Π’ IoSlice Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ Ρ‚ΠΈΠΏΠ°ΠΆ ikopi.
    • Π’ Vec<T> Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½ From<[T; N]>.
    • Π’ proc_macro::LexError Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Ρ‹ fmt::Display ΠΈ Error.
  • ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ Β«constΒ», ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π² любом контСкстС вмСсто констант, ΠΏΡ€ΠΈΠΌΠ΅Π½Ρ‘Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π°Ρ… from_le_bytes, to_le_bytes, from_be_bytes, to_be_bytes, from_ne_bytes ΠΈ to_ne_bytes для всСх цСлочислСнных Ρ‚ΠΈΠΏΠΎΠ².
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ статичСских Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅ Β«.aΒ» вмСсто Β«.libΒ» для GNU-ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ для Windows.
  • ΠœΠΈΠ½ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΠΊ LLVM подняты Π΄ΠΎ вСрсии LLVM 8.

umthombo: opennet.ru

Yongeza izimvo