ИзданиС Rust 1.97. НаписанитС Π½Π° Rust ядро Zinnia ΠΈ P2P систСма Iroh с адрСсация ΠΏΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅

ΠŸΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π° Π΅ вСрсията Π½Π° програмния Π΅Π·ΠΈΠΊ Rust 1.97, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ ΠΏΡŠΡ€Π²ΠΎΠ½Π°Ρ‡Π°Π»Π½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Mozilla, Π½ΠΎ Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° сС Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΏΠΎΠ΄ покровитСлството Π½Π° нСзависима нСправитСлствСна организация - Rust Foundation. Π―Π·Ρ‹ΠΊΡŠΡ‚ Π΅ фокусиран Π²ΡŠΡ€Ρ…Ρƒ бСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° постиганС Π½Π° висок ΠΏΠ°Ρ€Π°Π»Π΅Π»ΠΈΠ·ΡŠΠΌ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Π·Π°Π΄Π°Ρ‡ΠΈ, Π±Π΅Π· Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° сборник Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ runtime (runtime сС свСТда Π΄ΠΎ базисна инициализация ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°).

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

БСзопасната Ρ€Π°Π±ΠΎΡ‚Π° с ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° Π² Rust сС осигурява ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° компилация Ρ‡Ρ€Π΅Π· ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ, прослСдяванС Π½Π° собствСността Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅, ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈΡ‚Π΅ (области Π½Π° видимост) ΠΈ ΠΎΡ†Π΅Π½ΠΊΠ° Π½Π° правилността Π½Π° Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π°. Rust ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΠΏΡ€Π΅Π΄Π»Π°Π³Π° срСдства Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ ΠΏΡ€Π΅ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Ρ†Π΅Π»ΠΈ числа, изисква Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π½Π° инициализация Π½Π° стойноститС Π½Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈΡ‚Π΅ ΠΏΡ€Π΅Π΄ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ, подобрява ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π² стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, ΠΏΡ€ΠΈΠ»Π°Π³Π° концСпцията Π·Π° нСизмСняСмост (immutable) Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΈ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° силна статична типизация, Π·Π° Π΄Π° сС ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Ρ‚ логичСскитС Π³Ρ€Π΅ΡˆΠΊΠΈ.

Основни нововъвСдСния:

  • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½Π° Π½ΠΎΠ²Π° схСма Π½Π° Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€Π°Π½Π΅ (mangling) Π½Π° ΠΈΠΌΠ΅Π½Π°Ρ‚Π° Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π³Π»ΠΎΠ±Π°Π»Π½ΠΈ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²ΠΈ ΠΈ структурни Π΄Π°Π½Π½ΠΈ Π² Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΈ ΠΈ изпълними Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ (-Csymbol-mangling-version=v0). Π˜ΠΌΠ΅Π½Π°Ρ‚Π° сС Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€Π°Ρ‚, Π·Π° Π΄Π° сС прСдотвратят ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΈ ΠΏΡ€ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ сС прикрСпя спСцифичСн контСкст, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡŠΡ‚Ρ към ΠΌΠΎΠ΄ΡƒΠ»Π° ΠΈ ΠΈΠΌΠ΅Ρ‚ΠΎ Π½Π° crate-ΠΏΠ°ΠΊΠ΅Ρ‚Π°.

    По-Ρ€Π°Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π°Ρ‚Π° схСма Π½Π° Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΈΠΌΠ΅Π½Π°, основана Π½Π° Itanium ABI, имашС Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ, ΠΊΠ°Ρ‚ΠΎ замяна Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° Π΄ΠΆΠ΅Π½Π΅Ρ€ΠΈΡ†ΠΈΡ‚Π΅ с Π½Π΅Ρ‡Π΅Ρ‚Π»ΠΈΠ²ΠΈ Ρ…Π΅ΡˆΠΎΠ²Π΅ ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅Ρ‚ΠΎ Π½Π° части ΠΎΡ‚ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Itanium ABI, ΠΊΠΎΠ΅Ρ‚ΠΎ изисквашС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° спСцифични Π·Π° Rust Π΄Π΅ΠΊΠΎΠ΄Π΅Ρ€ΠΈ Π½Π° ΠΈΠΌΠ΅Π½Π°. Π’ Rust 1.97 сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ схСма Π½Π° Π΄Π΅ΠΊΠΎΡ€ΠΈΡ€Π°Π½Π΅, ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈΡ€Π°Π½Π° спСциално Π·Π° Rust ΠΈ лишСна ΠΎΡ‚ посочСнитС Π½Π΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈ. Π‘Ρ‚Π°Ρ€Π°Ρ‚Π° схСма Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π° Π² Π΅Π΄ΠΈΠ½ ΠΎΡ‚ слСдващитС вСрсии.

  • Π’ пакСтния ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ cargo Π΅ ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½Π° Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° рСакцията Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π° ΠΏΡ€ΠΈ Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½Π΅ Π½Π° прСдупрСТдСния ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° сборка. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π° Π½Π° срСдата CARGO_BUILD_WARNINGS, която ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΡ€ΠΈΠ΅ΠΌΠ° Ρ‚Ρ€ΠΈ стойности: warn (ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅) - ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅ Π½Π° Π΅ΠΊΡ€Π°Π½Π°; allow - скриванС Π½Π° прСдупрСТдСнията; deny - ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° прСдупрСТдСнията ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ спират сборката.

    Π’ ΠΏΡ€Π΅Π΄ΠΈΡˆΠ½ΠΈΡ‚Π΅ вСрсии, Π·Π° Π΄Π° сС Π·Π°Π²ΡŠΡ€ΡˆΠΈ компилацията слСд ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΏΡ€Π΅Π΄ΡƒΠΏΡ€Π΅ΠΆΠ΄Π΅Π½ΠΈΠ΅, бСшС Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС Π·Π°Π΄Π°Π΄Π΅ β€ž-Dwarningsβ€œ Π² RUSTFLAGS Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€Π°, Π½ΠΎ ΠΏΡ€ΠΈ промяна Π½Π° RUSTFLAGS пакСтният ΠΌΠ΅Π½ΠΈΠ΄ΠΆΡŠΡ€ cargo ΡΡ‡ΠΈΡ‚Π°ΡˆΠ΅ компилацията Π·Π° Π½ΠΎΠ²Π°, Π½Π΅ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°ΡˆΠ΅ Π΄Π°Π½Π½ΠΈΡ‚Π΅ Π² кСша ΠΈ ΠΎΡ‚ Π½ΡƒΠ»Π°Ρ‚Π° ΠΏΡ€Π΅-ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°ΡˆΠ΅ цСлия ΠΏΡ€ΠΎΠ΅ΠΊΡ‚. ΠŸΡ€Π΅Ρ…Π²ΡŠΡ€Π»ΡΠ½Π΅Ρ‚ΠΎ Π½Π° настройката Π½Π° страна Π½Π° cargo ΠΈΠ·ΠΊΠ»ΡŽΡ‡ΠΈ Π½ΡƒΠ»ΠΈΡ€Π°Π½Π΅Ρ‚ΠΎ Π½Π° кСша ΠΈ нСобходимостта ΠΎΡ‚ пълна ΠΏΡ€Π΅-компилация ΠΏΡ€ΠΈ промяна Π½Π° Ρ€Π΅ΠΆΠΈΠΌΠ° Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° прСдупрСТдСнията, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° упростиха Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° прСдупрСТдСния ΠΊΠ°Ρ‚ΠΎ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² систСмитС Π·Π° Π½Π΅ΠΏΡ€Π΅ΠΊΡŠΡΠ½Π°Ρ‚Π° интСграция.

  • ΠŸΡ€ΠΈ компилацията Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΎ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΈ ΠΎΡ‚ Π»ΠΈΠ½ΠΊΠ΅Ρ€Π°. Π‘ΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π° сС ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Ρ‚ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° прСдупрСТдСния Ρ‡Ρ€Π΅Π· спСциално lint ΠΏΡ€Π°Π²ΠΈΠ»ΠΎ β€žlinker_messagesβ€œ, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½Π΅ Π΅ част ΠΎΡ‚ стандартната Π³Ρ€ΡƒΠΏΠ° β€žwarningsβ€œ. Π’ ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ rustc Ρ„ΠΈΠ»Ρ‚Ρ€ΠΈΡ€Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡΡ‚Π°, ΠΊΠΎΠΈΡ‚ΠΎ са Ρ‚ΠΈΠΏΠΎΠ²ΠΈ Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ сработвания ΠΈΠ»ΠΈ Π½ΠΎΡ€ΠΌΠ°Π»Π½ΠΎ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, оставяйки прСдупрСТдСнията, ΠΊΠΎΠΈΡ‚ΠΎ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° свидСтСлстват Π·Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠΈ, ΠΊΠ°Ρ‚ΠΎ прСдупрСТдСния Π·Π° остарСли ΠΎΠΏΡ†ΠΈΠΈ ΠΈ Π½Π΅ΠΆΠ΅Π»Π°Π½ΠΈ настройки. ΠŸΡ€Π΅Π΄ΠΈ информацията ΠΎΡ‚ Π»ΠΈΠ½ΠΊΠ΅Ρ€Π° бСшС ΠΏΠΎΠΊΠ°Π·Π²Π°Π½Π° само ΠΏΡ€ΠΈ Π·Π°Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅ с Π³Ρ€Π΅ΡˆΠΊΠ°, Π° Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай всички ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ бяха скривани. Π—Π° Π΄Π° сС Π²ΡŠΡ€Π½Π΅ старото ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, Π² Cargo.toml ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π΄ΠΎΠ±Π°Π²ΠΈ: [lints.rust] linker_messages = "allow"
  • Π’ катСгорията стабилни Π΅ ΠΏΡ€Π΅Π²Π΅Π΄Π΅Π½Π° Π½ΠΎΠ²Π° порция API, ΠΊΠ°Ρ‚ΠΎ са стабилизирани ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ‚ΠΈΠΏΠ°ΠΆΠΈΡ‚Π΅:
    • По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π·Π° RepeatN
    • КопиС Π·Π° ffi::FromBytesUntilNulError
    • Π˜Π·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π·Π° std::fs::File Π·Π° UEFI
    • ::isolate_highest_one
    • ::isolate_lowest_one
    • ::highest_one
    • ::lowest_one
    • ::bit_width
    • NonZero::isolate_highest_one
    • NonZero::isolate_lowest_one
    • NonZero::highest_one
    • NonZero::lowest_one
    • NonZero::bit_width
  • ΠŸΡ€ΠΈΠ·Π½Π°ΠΊ β€žconstβ€œ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ Π² ΠΌΠ΅Ρ‚ΠΎΠ΄Π° char::is_control.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΎΡ‚Π±Π΅Π»Π΅ΠΆΠΈ наскоро обявСнитС ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ ΠΈ ΡΡŠΠ±ΠΈΡ‚ΠΈΡ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Rust:

  • ΠŸΡ€ΠΎΠ΅ΠΊΡ‚ΡŠΡ‚ zinnia Ρ€Π°Π·Π²ΠΈΠ²Π° ΠΌΠΎΠ΄ΡƒΠ»Π½ΠΎ Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎ ядро, написано Π½Π° Π΅Π·ΠΈΠΊΠ° Rust ΠΈ разпространявано ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·Π° GPLv2. Π―Π΄Ρ€ΠΎΡ‚ΠΎ ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° POSIX интСрфСйси ΠΈ някои Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ ΠΎΡ‚ BSD ΠΈ Linux, ΠΊΠ°Ρ‚ΠΎ epoll ΠΈ timerfd. Π—Π° визуализация ΠΈ ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° Π²Ρ…ΠΎΠ΄Π° са Π½Π°Π»ΠΈΡ‡Π½ΠΈ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ DRM (Direct Rendering Manager) ΠΈ evdev. Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π°Ρ‚Π° функционалност Π΅ Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½Π° Π·Π° стартиранС Π½Π° Ρ€Π°Π±ΠΎΡ‚Π½Π° срСда Xfce ΠΏΠΎΠ΄ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° X-сСрвСр ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ·ΠΈΡ‚Π½ΠΎ ΡΡŠΡ€Π²ΡŠΡ€ Weston Π½Π° Π±Π°Π·Π°Ρ‚Π° Π½Π° Wayland. ΠŸΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° сС Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ ΠΊΠ°ΠΊΡ‚ΠΎ Π² Π΅ΠΌΡƒΠ»Π°Ρ‚ΠΎΡ€ QEMU, Ρ‚Π°ΠΊΠ° ΠΈ Π½Π° истинско ΠΎΠ±ΠΎΡ€ΡƒΠ΄Π²Π°Π½Π΅, ΠΊΠ°Ρ‚ΠΎ Π»Π°ΠΏΡ‚ΠΎΠΏ ThinkPad E14 G7.
  • ΠŸΡ€Π΅Π΄ΡΡ‚Π°Π²Π΅Π½ Π΅ Ρ€Π΅Π»ΠΈΠ· Π½Π° ΠΊΠΎΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° iroh 1.0, която позволява установяванС Π½Π° ΠΌΡ€Π΅ΠΆΠΎΠ²ΠΈ Π²Ρ€ΡŠΠ·ΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ прилоТСния Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ хостовС с ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° криптографски ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅, вмСсто IP адрСса (посочва сС ΠΊΠ»ΡŽΡ‡ΡŠΡ‚, към ΠΊΠΎΠΉΡ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π΄Π° сС ΡΠ²ΡŠΡ€ΠΆΠ΅Ρ‚Π΅, ΠΈ iroh Π½Π°ΠΌΠΈΡ€Π° ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈΡ с Π½Π΅Π³ΠΎ хост ΠΈ установява ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΠΊΠΎΠ» QUIC). По Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ сС установяват Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΈ P2P Π²Ρ€ΡŠΠ·ΠΊΠΈ, Π½ΠΎ Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ възмоТно, сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Π²Ρ€ΡŠΡ‰Π°Π½Π΅ към Ρ€Π°Π±ΠΎΡ‚Π° ΠΏΡ€Π΅Π· Ρ€Π΅Π»Π΅ΠΉ, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ²Π°Π½Π΅ Π½Π° хостовС ΠΏΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅. Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎ Π΅ стартиранС Π½Π° собствСн Ρ€Π΅Π»Π΅ΠΉ ΠΈΠ»ΠΈ ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ€Π΅Π»Π΅ΠΉ, ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ°Π½ΠΈ ΠΎΡ‚ общността.

    Π‘Ρ€Π΅Π΄ Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈΡ‚Π΅ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ: ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Multipath QUIC Π·Π° доставка Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ Π΅Π΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ ΠΏΠΎ няколко ΠΌΠ°Ρ€ΡˆΡ€ΡƒΡ‚Π°, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° Π·Π°Π΄ NAT, Ρ€Π΅ΠΆΠΈΠΌ Π½Π° статична конфигурация Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ към Π»ΠΎΠΊΠ°Π»Π½ΠΈ устройства Π±Π΅Π· Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π½Π΅Ρ‚, Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° компилация Π² ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ WASM Π·Π° изпълнСниС Π² Π±Ρ€Π°ΡƒΠ·ΡŠΡ€Π°, ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° създаванС Π½Π° собствСни транспорти, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° ΡΠ²ΡŠΡ€Π·Π²Π°Π½Π΅ Ρ‡Ρ€Π΅Π· Bluetooth, WiFi Aware ΠΈΠ»ΠΈ LoRa. ΠšΠΎΠ΄ΡŠΡ‚ Π΅ написан Π½Π° Rust ΠΈ сС разпространява ΠΏΠΎΠ΄ Π»ΠΈΡ†Π΅Π½Π·ΠΈΡ‚Π΅ Apache-2.0 ΠΈ MIT. Π”ΠΎΡΡ‚ΡŠΠΏΠ½ΠΈ са ΠΎΠ±Π²ΠΈΠ²ΠΊΠΈ Π·Π° Python, Node.js, Kotlin ΠΈ Swift.

  • ΠΠ²Ρ‚ΠΎΡ€ΡŠΡ‚ Π½Π° ΡΡŠΡ€Π²ΡŠΡ€Π½Π°Ρ‚Π° JavaScript ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ° Bun ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π° статия с Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° Π·Π° прСнаписванС Π½Π° Bun ΠΎΡ‚ Π΅Π·ΠΈΠΊΠ° Zig Π½Π° Rust, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ AI ΠΌΠΎΠ΄Π΅Π»Π° Claude Fable. ΠžΡ‚Π±Π΅Π»ΡΠ·Π²Π° сС, Ρ‡Π΅ Bun 1.3.14 Ρ‰Π΅ бъдС послСдният Ρ€Π΅Π»ΠΈΠ· Π½Π° Zig, Π° слСдващата вСрсия Bun 1.4.0 Π²Π΅Ρ‡Π΅ Ρ‰Π΅ бъдС Π½Π° Rust. БъдСйки ΠΏΠΎ ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ‚Π΅ тСстовС, вСрсията Π½Π° Rust потрСбява Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π΅ с 2-5% ΠΏΠΎ-Π±ΡŠΡ€Π·Π° ΠΎΡ‚ вСрсията Π½Π° Zig. Π Π°Π·ΠΌΠ΅Ρ€ΡŠΡ‚ Π½Π° изпълнимия Ρ„Π°ΠΉΠ» Π² вСрсията Π½Π° Rust Π΅ намалял с 20%.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster