Rust 1.54 Whakaputa Reo Papatono

Ko te tukunga o te reo hootaka punaha Rust 1.54, i hangaia e te kaupapa Mozilla, engari kua whakawhanakehia inaianei i raro i te maru o te whakahaere kore-painga motuhake Rust Foundation, kua whakaputaina. Ka aro te reo ki te haumaru mahara, ka whakarato i te whakahaere mahara aunoa, me te whakarato i nga huarahi ki te whakatutuki i te whakarara mahi teitei me te kore e whakamahi i te kaikohi paru, i te wa whakahaere ranei (ka whakaitihia te wa whakahaere ki te arataki me te tiaki i te whare pukapuka paerewa).

Ko te whakahaere mahara aunoa a Rust ka whakaora i te kaiwhakawhanake mai i nga hapa i te wa e raweke ana i nga tohu tohu me te whakamarumaru mai i nga raru ka puta mai na te raweke mahara taumata-iti, penei i te urunga ki tetahi waahi mahara i muri i te wetewetetanga, te whakakore i nga tohu tohu kore, te paopao, me era atu. Hei tohatoha whare pukapuka, whakarato hanga me te whakahaere i nga whakawhirinakitanga, ka whakawhanakehia e te kaupapa te kaiwhakahaere kete Uta. Kei te tautokohia te putunga crates.io mo te manaaki whare pukapuka.

Nga mahi hou:

  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² макросов, Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°ΡŽΡ‰ΠΈΡ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Π΅ макросы ΠΈ макросы, созданныС ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ макроса Β«macro_rules!Β»). ΠžΡ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΏΠΎΠ΄ΠΎΠ±Π½Ρ‹Π΅ макросы ΠΎΡ‚Π»ΠΈΡ‡Π°ΡŽΡ‚ΡΡ символом Β«!Β» послС ΠΈΠΌΠ΅Π½ΠΈ (macro!(…)) ΠΈ подстановкой исходного тСкста макроса вмСсто гСнСрирования Π²Ρ‹Π·ΠΎΠ²Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π’Ρ‹Π·ΠΎΠ² макросов Π²Π½ΡƒΡ‚Ρ€ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ‹ΠΌ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ Π² Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ содСрТимого ΠΈΠ· Π΄Ρ€ΡƒΠ³ΠΈΡ… Ρ„Π°ΠΉΠ»ΠΎΠ². НапримСр, для вставки содСрТимого Ρ„Π°ΠΉΠ»Π° README ΠΈ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π° выполнСния скрипта ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ: #![doc = include_str!(Β«README.mdΒ»)] #[path = concat!(env!(Β«OUT_DIRΒ»), Β«/generated.rsΒ»)] mod generated;
  • Π‘Ρ‚Π°Π±ΠΈΠ»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ встроСнныС Π² компилятор Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Intrinsics) для ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΡ‹ wasm32, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ инструкции SIMD Π² WebAssembly. Π‘ΠΎΠ»ΡŒΡˆΠ°Ρ Ρ‡Π°ΡΡ‚ΡŒ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, Ρ‚Π°ΠΊΠΈΡ… ΠΊΠ°ΠΊ v128_bitselect, доступны Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ Β«safeΒ», Π½ΠΎ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰ΠΈΠ΅ с указатСлями (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, v128_load) ΠΎΡΡ‚Π°ΡŽΡ‚ΡΡ Β«unsafeΒ».
  • Π’ΠΎΠ·Π²Ρ€Π°Ρ‰Π΅Π½ΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½ΠΎΠΉ компиляции, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅ΠΉ ΠΏΠ΅Ρ€Π΅ΡΠΎΠ±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ измСнившиСся части ΠΊΠΎΠ΄Π°, Ρ‡Ρ‚ΠΎ позволяСт Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ ΡΠΎΠΊΡ€Π°Ρ‚ΠΈΡ‚ΡŒ врСмя сборки ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΉ компиляции послС внСсСния ΠΌΠ΅Π»ΠΊΠΈΡ… ΠΏΡ€Π°Π²ΠΎΠΊ. Π˜Π½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚Π°Π»ΡŒΠ½Π°Ρ компиляция Π±Ρ‹Π»Π° ΠΎΡ‚ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π² выпускС 1.52.1 ΠΈΠ·-Π·Π° выявлСния скрытых ошибок, Π²ΡΠΏΠ»Ρ‹Π²ΡˆΠΈΡ… послС добавлСния Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠΈ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· дискового кэша.
  • He waahanga hou o nga API kua whakawhitia ki te waahanga pumau, tae atu ki nga mea e whai ake nei:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • arch::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • Π’ cargo-tree Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ‹ ΠΎΠΏΡ†ΠΈΠΈ: Β«β€”prune <spec>Β» для удалСния ΠΏΠ°ΠΊΠ΅Ρ‚Π° ΠΈΠ· Π³Ρ€Π°Ρ„Π° зависимостСй, Β«β€”depthΒ» для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ элСмСнтов Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ уровня влоТСнности Π² Π΄Π΅Ρ€Π΅Π²Π΅ зависимостСй, Β«β€”edges no-proc-macroΒ» для скрытия зависимостСй ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π½Ρ‹Ρ… макросов.

Source: opennet.ru

Tāpiri i te kōrero