Руст 1.78 Π΅ објавСн. Π‘ΠΎΡ€Π³ΠΎ јазик кој Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° силнитС страни Π½Π° Go ΠΈ Rust

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

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

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

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

  • ΠŸΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ Π½ΠΎΠ² имСнски простор Π·Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ β€ž#[Π΄ΠΈΡ˜Π°Π³Π½ΠΎΡΡ‚ΠΈΡ‡ΠΊΠ°]β€œ, ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π°Ρ˜ΡœΠΈ срСдство Π·Π° влијаниС Π²Ρ€Π· ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ ΠΎΠ΄ ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚. ΠŸΡ€Π²ΠΈΠΎΡ‚ Π²ΠΎ Π½ΠΎΠ²ΠΈΠΎΡ‚ простор Π΅ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ β€ž#[diagnostic::on_unimplemented]β€œ, кој ΠΌΠΎΠΆΠ΅ Π΄Π° сС користи Π·Π° ΠΏΡ€ΠΈΡΠΏΠΎΡΠΎΠ±ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΡ€Π°ΠΊΠΈΡ‚Π΅ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ° Ρ„Ρ€Π»Π΅Π½ΠΈ Π²ΠΎ ΡΠΈΡ‚ΡƒΠ°Ρ†ΠΈΡ˜Π° ΠΊΠΎΠ³Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° користитС карактСристика ΡˆΡ‚ΠΎ Π½Π΅ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π·Π° Ρ‚ΠΈΠΏΠΎΡ‚. #[diagnostic::on_unimplemented( message = "ΠœΠΎΡ˜Π°Ρ‚Π° ΠΏΠΎΡ€Π°ΠΊΠ° Π·Π° `Π’Π°ΠΆΠ½Π° карактСристика<{A}>` Π½Π΅ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π·Π° `{Self}`", label = "My Label", note = "Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠ° 1", note = "Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠ° 2" )] особина ImportantTrait {} fn use_my_trait(_: impl ImportantTrait ) {} fn main() { use_my_trait(String::new()); } Π³Ρ€Π΅ΡˆΠΊΠ°[E32]: Моја ΠΏΠΎΡ€Π°ΠΊΠ° Π·Π° `Π’Π°ΠΆΠ½Π° карактСристика ` Π½Π΅ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π·Π° `String` β€”> src/main.rs:0277:32 | 12 | use_my_trait(String::new()); | β€”β€”β€”β€” ^^^^^^^^^^^^^ My Label | | | сС Π±Π°Ρ€Π° ΠΎΠ΄ страна Π½Π° ΠΎΠ±Π²Ρ€Π·Π°Π½Π° Π²ΠΎΠ²Π΅Π΄Π΅Π½Π° со овој ΠΏΠΎΠ²ΠΈΠΊ | = помош: особина `Π’Π°ΠΆΠ½Π° особина ` Π½Π΅ Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π·Π° `String` = забСлСшка: Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠ° 18 = забСлСшка: Π—Π°Π±Π΅Π»Π΅ΡˆΠΊΠ° 12
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅ Π·Π° ΠΏΡ€Π΅Ρ‚Ρ…ΠΎΠ΄Π½ΠΎ Π½Π°Π²Π΅Π΄ΡƒΠ²Π°ΡšΠ΅ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Ρ‚ΠΈ Π½Π° Π½Π΅Π±Π΅Π·Π±Π΅Π΄Π½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сСга ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΠ΄Π»ΠΎΠΆΠ°Ρ‚ Π΄ΠΎ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΡšΠ΅ Π½Π° ΠΊΠΎΠ΄, ΡˆΡ‚ΠΎ ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΡƒΠ²Π° ΠΎΠ²ΠΈΠ΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π΄Π° сС Π²Ρ€ΡˆΠ°Ρ‚ Π±Π΅Π· ΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° Π²ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠΎΡ‚ β€ž#[cfg(debug_assertions)]β€œ. Π—Π° Π΄Π° сС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π°Ρ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈΡ‚Π΅, сСга Π΅ Π΄ΠΎΠ²ΠΎΠ»Π½ΠΎ Π΄Π° сС ΠΎΠ²ΠΎΠ·ΠΌΠΎΠΆΠ°Ρ‚ Ρ‚Π²Ρ€Π΄Π΅ΡšΠ°Ρ‚Π° Π·Π° ΠΎΡ‚ΡΡ‚Ρ€Π°Π½ΡƒΠ²Π°ΡšΠ΅ Π³Ρ€Π΅ΡˆΠΊΠΈ Π·Π° Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅ ΠΈΠ»ΠΈ Π΄Π΅Π±Π°Π³ΠΈΡ€Π°ΡšΠ΅ Π½Π° Π²Π°ΡˆΠΈΠΎΡ‚ ΠΊΠΎΠ΄.
  • ΠžΠ΄Π½Π΅ΡΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π²ΠΎ стандардната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΊΠΎΠΈ Π²Π»ΠΈΡ˜Π°Π°Ρ‚ Π½Π° ΠΏΠΎΡ€Π°ΠΌΠ½ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΈΡ‚Π΅ ΠΈ ΠΏΠ°Ρ€Ρ‡ΠΈΡšΠ°Ρ‚Π° сСга Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄Π»ΠΈΠ²ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·Π²Ρ€ΡˆΡƒΠ²Π°ΡšΠ΅ ΠΈ зависи ΠΎΠ΄ Π²Π»Π΅Π·Π½ΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. Ѐункцискиот ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡::align_offset, кој Π³ΠΎ прСсмСтува ΠΏΠΎΠΌΠ΅ΡΡ‚ΡƒΠ²Π°ΡšΠ΅Ρ‚ΠΎ Π·Π° ΠΏΠΎΡ€Π°ΠΌΠ½ΡƒΠ²Π°ΡšΠ΅ Π½Π° ΠΏΠΎΠΊΠ°ΠΆΡƒΠ²Π°Ρ‡ΠΎΡ‚, сСга Π²Ρ€Π°ΡœΠ° usize::MAX само Π°ΠΊΠΎ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΡ˜Π°Ρ‚Π° Π½Π΅ успСС. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ slice::align_to ΠΈ slice::align_to_mut Π΄Π²Π΅Ρ‚Π΅, ΠΊΠΎΠΈ Π³ΠΈ трансформираат ΠΏΠ°Ρ€Ρ‡ΠΈΡšΠ°Ρ‚Π° Π²ΠΎ прСтстава со ΠΏΠΎΡ€Π°ΠΌΠ½Π΅Ρ‚ срСдСн ΠΏΠ°Ρ€Ρ‡Π΅ ΠΈ ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ ΠΏΠΎΡ‡Π΅Ρ‚Π½ΠΈ ΠΈ ΠΊΡ€Π°Ρ˜Π½ΠΈ ΠΏΠ°Ρ€Ρ‡ΠΈΡšΠ°, сСга сСкогаш Π³ΠΎ Π²Ρ€Π°ΡœΠ°Π°Ρ‚ Π½Π°Ρ˜Π³ΠΎΠ»Π΅ΠΌΠΈΠΎΡ‚ срСдСн Π΄Π΅Π».
  • Π‘Π»Π΅Π΄Π½ΠΈΠ²Π΅ Π±Π΅Π° ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Π½ΠΈ Π²ΠΎ стабилна ΠΊΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡ˜Π°:
    • ΠΈΠΌΠΏΠ» Π§ΠΈΡ‚Π°Ρ˜ Π·Π° &Stdin
    • Π”ΠΎΠ·Π²ΠΎΠ»Π΅Ρ‚Π΅ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π½Π° нСстатички (нСстатички) Π²Π΅ΠΊ Π·Π° Π½Π΅ΠΊΠΎΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ std::error::Error.
    • Π˜ΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΡ˜Π° Π΄ΠΎΠ·Π²ΠΎΠ»Π΅Π½ΠΎ Π΅ Π΄Π° сС користи врСдноста ?Sized.
    • ΠΈΠΌΠΏΠ» Од Π·Π° io:: Π“Ρ€Π΅ΡˆΠΊΠ°
  • Π€ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π°Ρ‚Π° Barrier::new() Π΅ стабилизирана Π·Π° Π΄Π° сС користи со Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΡ‚ β€žconstβ€œ Π²ΠΎ кој Π±ΠΈΠ»ΠΎ контСкст намСсто константи.
  • Π—Π° Ρ†Π΅Π»Π½ΠΈΡ‚Π΅ ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈ x86_64-pc-windows-msvc, i686-pc-windows-msvc, x86_64-pc-windows-gnu, i686-pc-windows-gnu, x86_64-pc-windows-gnullvm ΠΈ i686vwinllm-p сСга Π±Π°Ρ€Π° Π½Π°Ρ˜ΠΌΠ°Π»ΠΊΡƒ Π²Π΅Ρ€Π·ΠΈΡ˜Π° Π½Π° Windows 10.
  • Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ Π·Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠΈΡ‚Π΅ wasm32-wasip2, arm64ec-pc-windows-msvc, armv8r-none-eabihf ΠΈ loongarch64-unknown-linux-musl. Π’Ρ€Π΅Ρ‚ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° основна ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ°, Π½ΠΎ Π±Π΅Π· автоматско Ρ‚Π΅ΡΡ‚ΠΈΡ€Π°ΡšΠ΅, ΠΎΠ±Ρ˜Π°Π²ΡƒΠ²Π°ΡšΠ΅ ΠΎΡ„ΠΈΡ†ΠΈΡ˜Π°Π»Π½ΠΈ изданија ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π΄Π°Π»ΠΈ ΠΊΠΎΠ΄ΠΎΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·Π³Ρ€Π°Π΄ΠΈ.
  • Π’Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π·Π° Ρ†Π΅Π»Π½Π°Ρ‚Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Add wasm32-wasip1 Π΅ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΎ. Π’Ρ‚ΠΎΡ€ΠΎΡ‚ΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡˆΠΊΠ° Π²ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π° Π³Π°Ρ€Π°Π½Ρ†ΠΈΡ˜Π° Π·Π° ΡΠΊΠ»ΠΎΠΏΡƒΠ²Π°ΡšΠ΅.
  • ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° wasm32-wasi-preview1-threads Π΅ ΠΏΡ€Π΅ΠΈΠΌΠ΅Π½ΡƒΠ²Π°Π½Π° Π²ΠΎ wasm32-wasip1-threads.
  • ΠšΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π΅ ΠΏΡ€Π΅Ρ„Ρ€Π»Π΅Π½ Π΄Π° користи LLVM 18. Кога сС користи LLVM 18 Π·Π° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€ΠΈ x86-32 ΠΈ x86-64, ABI ΠΏΠΎΠ²Ρ€Π·Π°Π½ со Ρ‚ΠΈΠΏΠΎΠ²ΠΈΡ‚Π΅ u128 ΠΈ i128 Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π΅Ρ‚.
  • Π’ΠΎ ΠΌΠ΅Π½Π°ΡŸΠ΅Ρ€ΠΎΡ‚ Π½Π° ΠΏΠ°ΠΊΡ‚ Π·Π° ΠΊΠ°Ρ€Π³ΠΎ, Π²Π΅Ρ€Π·ΠΈΡ˜Π°Ρ‚Π° 4 Π½Π° Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠΈΡ‚Π΅ Π·Π° Π·Π°ΠΊΠ»ΡƒΡ‡ΡƒΠ²Π°ΡšΠ΅ (lockfile v4) Π΅ стабилизирана.
  • ΠšΠ°Ρ€Π³ΠΎ ΠΈΠΌΠ° стабилизиран Π³Π»ΠΎΠ±Π°Π»Π΅Π½ кСш со ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ Π·Π° Π½Π°Ρ˜Π½ΠΎΠ²ΠΎΡ‚ΠΎ ΠΊΠΎΡ€ΠΈΡΡ‚Π΅ΡšΠ΅ Π½Π° ΠΏΠΎΠ΄Π°Ρ‚ΠΎΡ†ΠΈ. ΠšΠ΅ΡˆΠΎΡ‚ Π΅ хостиран Π²ΠΎ ΠΊΠ΅ΡˆΠΎΡ‚ $CARGO_HOME/.global со помош Π½Π° SQLite ΠΈ сС Π°ΠΆΡƒΡ€ΠΈΡ€Π° автоматски Π·Π° Π΄Π° Π³ΠΈ ΠΎΠ΄Ρ€Π°Π·ΠΈ Π½Π°Ρ˜Π½ΠΎΠ²ΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π²ΠΎ индСксот, Π΄Π°Ρ‚ΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π° Π·Π° гајба, Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΡƒΠΌΠΎΡ‚ со ΠΊΠΎΠ΄ΠΎΠ²ΠΈ, git ΠΊΠ»ΠΎΠ½ΠΎΡ‚ ΠΈ git checkout.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ, програмскиот јазик Borgo сС ΠΎΠ±ΠΈΠ΄ΡƒΠ²Π° Π΄Π° Π±ΠΈΠ΄Π΅ поСкспрСсивСн ΠΎΠ΄ Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Go, Π½ΠΎ ΠΏΠΎΠΌΠ°Π»ΠΊΡƒ слоТСн ΠΎΠ΄ Ρ˜Π°Π·ΠΈΠΊΠΎΡ‚ Rust. Borgo Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Π½Π°Ρ˜Π΄ΠΎΠ±Ρ€ΠΈΡ‚Π΅ карактСристики Π½Π° Go ΠΈ Rust, Π½Π°Π΄ΠΎΠΏΠΎΠ»Π½ΡƒΠ²Π°Ρ˜ΡœΠΈ Π³ΠΈ нСдостатоцитС Π½Π° сСкој јазик. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Go Π΅ СдноставСн ΠΈ јасСн, Π½ΠΎ Π½Π΅ ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° Π½Π°ΠΏΡ€Π΅Π΄Π½ΠΈ бСзбСдносни карактСристики. ΠˆΠ°Π·ΠΈΠΊΠΎΡ‚ Rust ΠΎΠ±Π΅Π·Π±Π΅Π΄ΡƒΠ²Π° Π°Π»Π°Ρ‚ΠΊΠΈ Π·Π° Π±Π΅Π·Π±Π΅Π΄Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°ΡšΠ΅, Π½ΠΎ Π΅ ΠΏΡ€Π΅ΠΌΠ½ΠΎΠ³Ρƒ ΠΊΠΎΠΌΠΏΠ»ΠΈΡ†ΠΈΡ€Π°Π½. ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΠΎΡ‚ Π³ΠΎ Ρ€Π°Π·Π²ΠΈΠ²Π° ΠœΠ°Ρ€ΠΊΠΎ Π‘Π°ΠΌΠΏΠ΅Π»Π΅Π³Ρ€ΠΈΠ½ΠΈ, Π°Π²Ρ‚ΠΎΡ€ Π½Π° β€žThe Simple Haskell Handbookβ€œ ΠΈ Ρ€Π°Π·Π²ΠΈΠ²Π°Ρ‡ Π½Π° систСмот Π·Π° ΠΊΠΎΠ½Ρ‚ΠΈΠ½ΡƒΠΈΡ€Π°Π½Π° ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ˜Π° Quad CI.

Руст 1.78 Π΅ објавСн. Π‘ΠΎΡ€Π³ΠΎ јазик кој Π³ΠΈ ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° силнитС страни Π½Π° Go ΠΈ Rust

Borgo користи статичко ΠΏΠΈΡˆΡƒΠ²Π°ΡšΠ΅, Ρ‚ΠΈΠΏΠΎΠ²ΠΈ слични Π½Π° Go ΠΈ синтакса слична Π½Π° Rust. Π—Π°ΠΏΠΈΡ€ΠΊΠΈΡ‚Π΅ сС ΠΎΠΏΡ†ΠΈΠΎΠ½Π°Π»Π½ΠΈ Π½Π° ΠΊΡ€Π°Ρ˜ΠΎΡ‚ ΠΎΠ΄ Ρ€Π΅Π΄ΠΎΠ²ΠΈΡ‚Π΅ Π²ΠΎ ΠΊΠΎΠ΄ΠΎΡ‚ Π‘ΠΎΡ€Π³ΠΎ. ΠšΠΎΠ΄ΠΎΡ‚ Π½Π° Borgo сС ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»ΠΈΡ€Π° Π²ΠΎ ΠΏΡ€Π΅Ρ‚ΡΡ‚Π°Π²ΡƒΠ²Π°ΡšΠ΅ Go ΡˆΡ‚ΠΎ Π΅ цСлосно ΠΊΠΎΠΌΠΏΠ°Ρ‚ΠΈΠ±ΠΈΠ»Π½ΠΎ со постоСчкитС Go ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ. ΠšΠΎΠ΄ΠΎΡ‚ Π½Π° ΠΊΠΎΠΌΠΏΠ°Ρ˜Π»Π΅Ρ€ΠΎΡ‚ Π΅ напишан Π²ΠΎ Rust ΠΈ сС дистрибуира ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Ρ†Π°Ρ‚Π° ISC. користСтС fmt enum NetworkState { Loading, Failed(int), Success(T), } struct Response { title: string, duration: int, } fn main() { let res = Response { title: β€œHello world”, duration: 0, } let state = NetworkState.Success(res) let msg = match state { NetworkState.Loading => β€žΡΓ¨ ΡƒΡˆΡ‚Π΅ сС Π²Ρ‡ΠΈΡ‚ΡƒΠ²Π°β€œ, NetworkState.Failed(code) => fmt.Sprintf(β€žΠ”ΠΎΠ±ΠΈΠ² ΠΊΠΎΠ΄ Π·Π° Π³Ρ€Π΅ΡˆΠΊΠ°: %dβ€œ, ΠΊΠΎΠ΄), NetworkState.Success (res) => res.title, } fmt.Println(msg) }

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

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