Rust 1.37 Fa'apolokalame Gagana Fa'asa'oloto

lomia faasalalau fa'asa'olotoga gagana polokalame Ele 1.37, na faavaeina e le poloketi Mozilla. O le gagana e taulaΚ»i i le saogalemu o manatuaga, e maua ai le pulega otometi manatua, ma maua ai se auala e ausia ai le maualuga o galuega tutusa e aunoa ma le faΚ»aogaina o le lapisi poΚ»o le taΚ»avale.

Ole pulega otometi a le Rust e fa'asa'olotoina ai le tagata e faia le fa'aogaina o le fa'asinomaga ma puipuia mai fa'afitauli e tula'i mai i le fa'aogaina o mafaufauga maualalo, e pei ole fa'aogaina ole manatua e leai se totogi, fa'aletonu le fa'asinoala, fa'alavelave fa'alavelave, ma isi mea faapena. O lo'o fa'atupuina se pule o pusa e tufatufa faletusi, fa'amautinoa le fa'apotopotoina ma fa'afoe fa'alagolago e le poloketi. uta, e mafai ai ona e mauaina faletusi e manaΚ»omia mo le polokalame i le kiliki e tasi. E lagolagoina se fale teu oloa e talimalo ai faletusi crates.io.

tele mea fou:

  • Π’ компиляторС rustc saunia ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° основС Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² профилирования ΠΊΠΎΠ΄Π° (PGO, Profile-Guided Optimization),
    ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΡ… Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π±ΠΎΠ»Π΅Π΅ ΠΎΠΏΡ‚ΠΈΠΌΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠΎΠ΄ Π½Π° основС Π°Π½Π°Π»ΠΈΠ·Π° статистики, Π½Π°ΠΊΠΎΠΏΠ»Π΅Π½Π½ΠΎΠΉ Π² процСссС выполнСния ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Для Π³Π΅Π½Π΅Ρ€Π°Ρ†ΠΈΠΈ профиля прСдусмотрСн Ρ„Π»Π°Π³ Β«-C profile-generateΒ», Π° для использования профиля ΠΏΡ€ΠΈ сборкС β€” Β«-C profile-useΒ» (Π²Π½Π°Ρ‡Π°Π»Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° собираСтся с ΠΏΠ΅Ρ€Π²Ρ‹ΠΌ Ρ„Π»Π°Π³ΠΎΠΌ, обкатываСтся ΠΈ послС создания профиля собираСтся ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ со Π²Ρ‚ΠΎΡ€Ρ‹ΠΌ Ρ„Π»Π°Π³ΠΎΠΌ);

  • ΠŸΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Β«cargo runΒ», ΠΊΠΎΡ‚ΠΎΡ€ΡƒΡŽ ΡƒΠ΄ΠΎΠ±Π½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для быстрого тСстирования ΠΊΠΎΠ½ΡΠΎΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ автоматичСского Π²Ρ‹Π±ΠΎΡ€Π° исполняСмого Ρ„Π°ΠΉΠ»Π° для запуска, Π² случаС Ссли Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ присутствуСт нСсколько исполняСмых Ρ„Π°ΠΉΠ»ΠΎΠ². ВыполняСмый ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Ρ„Π°ΠΉΠ» опрСдСляСтся Ρ‡Π΅Ρ€Π΅Π· Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Ρƒ default-run Π² сСкции [package] с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π°ΠΌΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π°, которая позволяСт ΠΎΠ±ΠΎΠΉΡ‚ΠΈΡΡŒ Π±Π΅Π· явного указания ΠΈΠΌΠ΅Π½ΠΈ Ρ„Π°ΠΉΠ»Π° Ρ‡Π΅Ρ€Π΅Π· Ρ„Π»Π°Π³ Β«β€”binΒ» ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ запускС Β«cargo runΒ»;
  • Π’ ΠΏΠ°ΠΊΠ΅Ρ‚Π½Ρ‹ΠΉ ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ Cargo ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€ΠΎΠ²Π°Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π° Β«cargo vendorΒ», Ρ€Π°Π½Π΅Π΅ поставляСмая Π² Π²ΠΈΠ΄Π΅ ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠ³ΠΎ ΠΏΠ°ΠΊΠ΅Ρ‚Π°. Команда позволяСт ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΎΠ²Π°Ρ‚ΡŒ Ρ€Π°Π±ΠΎΡ‚Ρƒ с локальной ΠΊΠΎΠΏΠΈΠ΅ΠΉ зависимостСй β€” послС выполнСния Β«cargo vendorΒ» всС исходныС тСксты зависимостСй ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π°Π³Ρ€ΡƒΠΆΠ°ΡŽΡ‚ΡΡ с crates.io Π² Π»ΠΎΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ для Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π±Π΅Π· обращСния ΠΊ crates.io (послС выполнСния ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ показываСтся подсказка ΠΏΠΎ измСнСнию ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΈ для использования ΠΊΠ°Ρ‚Π°Π»ΠΎΠ³Π° ΠΏΡ€ΠΈ сборках). Указанная Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΠΆΠ΅ примСняСтся для ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΠΈ поставки компилятора rustc с ΡƒΠΏΠ°ΠΊΠΎΠ²ΠΊΠΎΠΉ всСх зависимостСй Π² ΠΎΠ΄ΠΈΠ½ Π°Ρ€Ρ…ΠΈΠ² с Ρ€Π΅Π»ΠΈΠ·ΠΎΠΌ;
  • Появилась Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания ссылок Π½Π° Π²Π°Ρ€ΠΈΠ°Π½Ρ‚Ρ‹ пСрСчислСний (enum), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ псСвдонимы Ρ‚ΠΈΠΏΠ° (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π² Ρ‚Π΅Π»Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Β«fn increment_or_zero(x: ByteOption) ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ Β«ByteOption::None => 0Β»), конструкции вычислСния Ρ‚ΠΈΠΏΠΎΠ² (β€ΉMyTypeβ€Ή..β€Ίβ€Ί::Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ => N) ΠΈΠ»ΠΈ обращСния Self (Π² Π±Π»ΠΎΠΊΠ°Ρ… c &self ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ Β«Self::Quarter => 25Β»);
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ создания Π½Π΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½Π½Ρ‹Ρ… констант Π² макросах. ВмСсто опрСдСлСния ΠΈΠΌΠ΅Π½ΠΈ элСмСнта Π² Β«constΒ» Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ символ Β«_Β» для динамичСского Π²Ρ‹Π±ΠΎΡ€Π° Π½Π΅ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡΡŽΡ‰Π΅Π³ΠΎΡΡ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€Π°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π° ΠΈΠΌΡ‘Π½ ΠΏΡ€ΠΈ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌ Π²Ρ‹Π·ΠΎΠ²Π΅ макроса;
  • Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π° Β«#[repr(align(N))Β» с пСрСчислСниями (enums), ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ синтаксис, Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½Ρ‹ΠΉ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΡŽ структуры AlignNβ€ΉTβ€Ί с Π²Ρ‹Ρ€Π°Π²Π½ΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌΡƒ использованию AlignNβ€ΉMyEnumβ€Ί;
  • Π’ разряд ΡΡ‚Π°Π±ΠΈΠ»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅Π²Π΅Π΄Π΅Π½Π° новая порция API, Π² Ρ‚ΠΎΠΌ числС стабилизированы ΠΌΠ΅Ρ‚ΠΎΠ΄Ρ‹ BufReader::buffer, BufWriter::buffer,
    Cell::from_mut,
    Cell::as_slice_of_cells,
    DoubleEndedIterator::nth_back,
    Option::xor,
    {i,u}{8,16,64,128,size}::reverse_bits, Wrapping::reverse_bits ΠΈ
    slice::copy_within.

E le gata i lea, e mafai ona matauina amata ole su'ega le poloketi Async-std, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π³ΠΎ асинхронный Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ стандартной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Rust (ΠΏΠΎΡ€Ρ‚ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ std, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ всС интСрфСйсы ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½Ρ‹ Π² вСрсии с async ΠΈ Π³ΠΎΡ‚ΠΎΠ²Ρ‹ для использования с синтаксисом async/await).

puna: opennet.ru

Faaopoopo i ai se faamatalaga