Руст 1.55 ИзданиС Π·Π° програмски јазик

ОбјавСно Π΅ ΠΈΠ·Π΄Π°Π²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° систСмскиот програмски јазик Rust 1.55, основан ΠΎΠ΄ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Mozilla, Π½ΠΎ сСга Ρ€Π°Π·Π²ΠΈΠ΅Π½ ΠΏΠΎΠ΄ покровитСлство Π½Π° нСзависната Π½Π΅ΠΏΡ€ΠΎΡ„ΠΈΡ‚Π½Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° Rust Foundation. ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ сС фокусира Π½Π° бСзбСдноста Π½Π° ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π°, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° автоматско ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ΠΈ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° срСдства Π·Π° ΠΏΠΎΡΡ‚ΠΈΠ³Π½ΡƒΠ²Π°ΡšΠ΅ висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·Π°ΠΌ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈΡ‚Π΅ Π±Π΅Π· ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° собирач Π½Π° Ρ“ΡƒΠ±Ρ€Π΅ ΠΈΠ»ΠΈ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Ρ€Π°Π±ΠΎΡ‚Π° (Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° Ρ‚Ρ€Π°Π΅ΡšΠ΅ Π΅ свСдСно Π½Π° основна ΠΈΠ½ΠΈΡ†ΠΈΡ˜Π°Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π° ΠΈ ΠΎΠ΄Ρ€ΠΆΡƒΠ²Π°ΡšΠ΅ Π½Π° стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°).

Автоматското ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π°ΡšΠ΅ со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° Rust Π³ΠΈ Π΅Π»ΠΈΠΌΠΈΠ½ΠΈΡ€Π° Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°ΡšΠ΅ со ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ ΠΈ Π·Π°ΡˆΡ‚ΠΈΡ‚ΡƒΠ²Π° ΠΎΠ΄ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ ΡˆΡ‚ΠΎ ΠΏΡ€ΠΎΠΈΠ·Π»Π΅Π³ΡƒΠ²Π°Π°Ρ‚ ΠΎΠ΄ ΠΌΠ°Π½ΠΈΠΏΡƒΠ»Π°Ρ†ΠΈΡ˜Π° со ΠΌΠ΅ΠΌΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° Π½Π° ниско Π½ΠΈΠ²ΠΎ, ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС пристап Π΄ΠΎ мСмориски Ρ€Π΅Π³ΠΈΠΎΠ½ ΠΎΡ‚ΠΊΠ°ΠΊΠΎ ќС сС ослободи, Π΄Π΅Ρ€Π΅Ρ„Π΅Ρ€Π΅Π½Ρ†ΠΈΠΈ Π½Π° Π½ΡƒΠ»Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡, ΠΏΡ€Π΅Ρ‡Π΅ΠΊΠΎΡ€ΡƒΠ²Π°ΡšΠ° Π½Π° Π±Π°Ρ„Π΅Ρ€ΠΎΡ‚ ΠΈΡ‚Π½. Π—Π° Π΄Π° сС дистрибуираат Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ, Π΄Π° сС ΠΎΠ±Π΅Π·Π±Π΅Π΄ΠΈ ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅ ΠΈ Π΄Π° сС ΡƒΠΏΡ€Π°Π²ΡƒΠ²Π° со зависности, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ΠΎΡ‚ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Cargo. Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ crates.io Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΠΆΠ°Π½ Π·Π° Ρ…ΠΎΡΡ‚ΠΈΡ€Π°ΡšΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ.

Π“Π»Π°Π²Π½ΠΈΡ‚Π΅ ΠΈΠ½ΠΎΠ²Π°Ρ†ΠΈΠΈ:

  • Π£ΠΏΡ€Π°Π²ΡƒΠ²Π°Ρ‡ΠΎΡ‚ со ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Cargo ΠΈΠΌΠ° моТност Π΄Π° спои Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ° ΡˆΡ‚ΠΎ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π·Π° Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·Π³Ρ€Π°Π΄Π±Π°Ρ‚Π°. ΠŸΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС β€žcargo testβ€œ ΠΈ β€žcargo check --all-targetsβ€œ ΠΊΠΎΠΈ Ρ€Π΅Π·ΡƒΠ»Ρ‚ΠΈΡ€Π°Π°Ρ‚ со ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΈ Π³Ρ€Π°Π΄Π±ΠΈ Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ со Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ, Π½Π° корисникот сСга ΠΌΡƒ сС ΠΏΡ€ΠΈΠΊΠ°ΠΆΡƒΠ²Π° Ρ€Π΅Π·ΠΈΠΌΠ΅ Π½Π° ΠΏΠΎΡ˜Π°Π²Π°Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ кој сС ΠΏΠΎΠ²Ρ‚ΠΎΡ€ΡƒΠ²Π°, намСсто Π΄Π° Π±ΠΈΠ΄Π΅ ΠΏΡ€ΠΈΠΊΠ°ΠΆΠ°Π½ ΠΏΠΎΠ²Π΅ΡœΠ΅ΠΊΡ€Π°Ρ‚Π½ΠΈ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ° ΠΏΡ€ΠΈ ΠΏΠΎΡΡ‚ΠΎΡ˜Π°Π½ΠΎ Π³Ρ€Π°Π΄Π΅ΡšΠ΅ Π½Π° истото.Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°. $ cargo +1.55.0 check β€”all-targets ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° foo v0.1.0 ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅: Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° никогаш Π½Π΅ сС користи: 'foo' β€”> src/lib.rs:9:4 | 9 | fn foo() {} | ^^^ | = забСлСшка: '#[warn(dead_code)]' стандардно Π΅ Π²ΠΊΠ»ΡƒΡ‡Π΅Π½ΠΎ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅: 'foo' (lib) Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° 1 ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅: 'foo' (lib тСст) Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° 1 ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ (1 Π΄ΡƒΠΏΠ»ΠΈΠΊΠ°Ρ‚) Π—Π°Π²Ρ€ΡˆΠ΅Π½ ΡƒΡ€Π΅Π΄ [Π½Π΅ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ + Π΄Π΅Π±Π°Π³ΠΈΠ½Ρ„ΠΎ] Ρ†Π΅Π» (s) Π·Π° 0.84 сСкунди
  • ΠšΠΎΠ΄ΠΎΡ‚ Π·Π° ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ со ΠΏΠΎΠ΄Π²ΠΈΠΆΠ½Π° Π·Π°ΠΏΠΈΡ€ΠΊΠ° Π²ΠΎ стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π΅ прСмСстСн Π·Π° Π΄Π° сС користи ΠΏΠΎΠ±Ρ€Π·ΠΈΠΎΡ‚ ΠΈ ΠΏΠΎΠΏΡ€Π΅Ρ†ΠΈΠ·Π΅Π½ Π°Π»Π³ΠΎΡ€ΠΈΡ‚Π°ΠΌ АјзСл-Π›Π΅ΠΌΠΈΡ€, кој Ρ€Π΅ΡˆΠΈ Π½Π΅ΠΊΠΎΠΈ ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ Π·Π°Π±Π΅Π»Π΅ΠΆΠ°Π½ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ со Π·Π°ΠΎΠΊΡ€ΡƒΠΆΡƒΠ²Π°ΡšΠ΅ ΠΈ ΠΏΠ°Ρ€ΡΠΈΡ€Π°ΡšΠ΅ Π½Π° Π±Ρ€ΠΎΠ΅Π²ΠΈ со ΠΌΠ½ΠΎΠ³Ρƒ Π³ΠΎΠ»Π΅ΠΌ Π±Ρ€ΠΎΡ˜ Ρ†ΠΈΡ„Ρ€ΠΈ.
  • Бпособноста Π΄Π° сС спСцифицираат Π½Π΅Π·Π°Ρ‚Π²ΠΎΡ€Π΅Π½ΠΈ опсСзи Π²ΠΎ ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ Π΅ стабилизирана (β€žX..β€œ сС Ρ‚ΠΎΠ»ΠΊΡƒΠ²Π° ΠΊΠ°ΠΊΠΎ опсСг ΡˆΡ‚ΠΎ Π·Π°ΠΏΠΎΡ‡Π½ΡƒΠ²Π° со врСдноста X ΠΈ Π·Π°Π²Ρ€ΡˆΡƒΠ²Π° со максималната врСдност ΠΎΠ΄ Ρ‚ΠΈΠΏΠΎΡ‚ Π½Π° Ρ†Π΅Π» Π±Ρ€ΠΎΡ˜): ΠΏΠΎΠΊΠ»ΠΎΠΏΠΈ x ΠΊΠ°ΠΊΠΎ u32 { 0 => println! (β€žΠ½ΡƒΠ»Π°!β€œ), 1.. => println! (β€žΠΏΠΎΠ·ΠΈΡ‚ΠΈΠ²Π΅Π½ Π±Ρ€ΠΎΡ˜!β€œ), }
  • ΠŸΡ€ΠΎΡˆΠΈΡ€Π΅Π½ΠΈ Π²Π°Ρ€ΠΈΡ˜Π°Π½Ρ‚ΠΈ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΎΠΏΡ„Π°Ρ‚Π΅Π½ΠΈ со std::io::ErrorKind (Π³ΠΈ класифицира Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ ΠΊΠ°ΠΊΠΎ ΡˆΡ‚ΠΎ сС NotFound ΠΈ WouldBlock). ΠŸΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ, Π³Ρ€Π΅ΡˆΠΊΠΈΡ‚Π΅ ΡˆΡ‚ΠΎ Π½Π΅ сС Π²ΠΊΠ»ΠΎΠΏΡƒΠ²Π°Π° Π²ΠΎ постоСчкитС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ спаѓаа Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ErrorKind::Other, која исто Ρ‚Π°ΠΊΠ° сС ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡˆΠ΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΎΠ΄ Ρ‚Ρ€Π΅Ρ‚Π° страна. Π‘Π΅Π³Π° постои посСбна Π²Π½Π°Ρ‚Ρ€Π΅ΡˆΠ½Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π° ErrorKind::НСкатСгоризирана Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΊΠΎΠΈ Π½Π΅ сС Π²ΠΊΠ»ΠΎΠΏΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ постоСчкитС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΠΈ, Π° ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ErrorKind::Other Π΅ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΡˆΡ‚ΠΎ Π½Π΅ сС ΠΏΠΎΡ˜Π°Π²ΡƒΠ²Π°Π°Ρ‚ Π²ΠΎ стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° (стандардни Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅Ρ‡Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΡˆΡ‚ΠΎ Π²Ρ€Π°ΡœΠ°Π°Ρ‚ io:: Error повСќС Π½Π΅ ја користСтС ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° ErrorKind:: Π”Ρ€ΡƒΠ³ΠΎ).
  • Нов Π΄Π΅Π» ΠΎΠ΄ API Π΅ прСмСстСн Π²ΠΎ ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°Ρ‚Π° стабилни, Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π° карактСристикитС сС стабилизирани:
    • Π’Ρ€Π·Π°Π½ΠΈ::ΠΊΠ»ΠΎΠ½ΠΈΡ€Π°Π½ΠΈ
    • Одвод::ΠΊΠ°ΠΊΠΎ_ΡƒΠ»
    • IntoInnerError::into_error
    • IntoInnerError::into_parts
    • МоТСбиUninit::assume_init_mut
    • МоТСбиUninit::assume_init_ref
    • МоТСби Uninit::write
    • Π½ΠΈΠ·Π°::ΠΌΠ°ΠΏΠ°
    • ops::ControlFlow
    • x86::_bittest
    • x86::_bittestandΠΊΠΎΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚
    • x86::_bittestandreset
    • x86::_bittestandset
    • x86_64::_bittest64
    • x86_64::_bittestandcomplement64
    • x86_64::_bittestandreset64
    • x86_64::_bittestandset64
  • Атрибутот β€žconstβ€œ, кој ја ΠΎΠ΄Ρ€Π΅Π΄ΡƒΠ²Π° моТноста Π΄Π° сС користи Π²ΠΎ кој Π±ΠΈΠ»ΠΎ контСкст намСсто константи, сС користи Π²ΠΎ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΡ‚ str::from_utf8_unchecked.
  • Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° powerpc64le-unknown-freebsd. Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° основна ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°, Π½ΠΎ Π±Π΅Π· автоматско Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈ изданија ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ.

Π˜Π·Π²ΠΎΡ€: opennet.ru

Π”ΠΎΠ΄Π°Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€