Π’ Git 3.0 ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Rust ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ сборочной инфраструктуры

Π’ спискС рассылки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² систСмы управлСния исходными тСкстами Git обсуТдаСтся ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅, ΠΏΡ€Π΅Π΄Π»Π°Π³Π°ΡŽΡ‰Π΅Π΅ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° языкС Rust Π² основной (core) состав Git ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Rust Π² число ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… зависимостСй, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Ρ… для сборки Git. Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡŽ возмоТности использования Rust ΠΏΡ€ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ Git прСдлагаСтся ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ ΠΏΠΎ Π°Π½Π°Π»ΠΎΠ³ΠΈΠΈ с Ρ€Π°Π½Π΅Π΅ осущСствлённым ΠΏΠ΅Ρ€Π΅Ρ…ΠΎΠ΄ΠΎΠΌ ΠΊ возмоТности использования спСцификации C99 Π² ΠΊΠΎΠ΄ΠΎΠ²ΠΎΠΉ Π±Π°Π·Π΅ Git β€” Π²Π½Π°Ρ‡Π°Π»Π΅ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΡƒ Rust Π² тСстовом Ρ€Π΅ΠΆΠΈΠΌΠ΅, Π° начиная с Git 3.0 ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Π΅Ρ‘ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ Ρ‡Π°ΡΡ‚ΡŒΡŽ сборочной инфраструктуры.

Π˜Π½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΡ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Rust Π² Git Π½Π°Ρ‡Π°Π»Π°ΡΡŒ Π² мартовском выпускС Git 2.49 Π² состав ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π» Π²ΠΊΠ»ΡŽΡ‡Ρ‘Π½ Π½Π΅ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ для сборки интСрфСйс, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠΉ Ρ€Π°Π·Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Git Π½Π° языкС Rust. Π‘Ρ‹Π»ΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΎ Π΄Π²Π° crate-ΠΏΠ°ΠΊΠ΅Ρ‚Π°: libgit-sys ΠΈ libgit с Π½ΠΈΠ·ΠΊΠΎΡƒΡ€ΠΎΠ²Π½Π΅Π²ΠΎΠΉ ΠΈ высокоуровнСвой Rust-обвязками Π½Π°Π΄ Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°ΠΌΠΈ, задСйствованными Π² Git.

Π’ июлС Π² спискС рассылки Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Git Π±Ρ‹Π»ΠΎ ΠΎΠΏΡƒΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ ΠΊ ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π΅ xdiff, Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‰Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹ Π½Π° языкС Rust ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΠ°Ρ†ΠΈΠΈ, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰ΠΈΠ΅ ΠΏΠΎΠ΄Π½ΡΡ‚ΡŒ ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ Π½Π° 5-19%. Π’ ΠΏΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠΈ ΠΊ измСнСнию Π±Ρ‹Π»ΠΎ ΠΏΡ€Π΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Rust Π² число Тёстких зависимостСй. Π’ июлС Ρ€Π΅ΡˆΠ΅Π½ΠΈΠ΅ ΠΏΠΎ Π΄Π°Π½Π½ΠΎΠΌΡƒ вопросу Π½Π΅ Π±Ρ‹Π»ΠΎ принято ΠΈ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ прСдпринята вторая ΠΏΠΎΠΏΡ‹Ρ‚ΠΊΠ° поднятия вопроса ΠΏΠ΅Ρ€Π΅Π²ΠΎΠ΄Π° Rust Π² разряд ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… сборочных зависимостСй. Будя ΠΏΠΎ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠΌΡƒ ΠΎΠ±ΡΡƒΠΆΠ΄Π΅Π½ΠΈΡŽ срСди Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ² Git большС ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π½ΠΈΠΊΠΎΠ² Ρ‚Π°ΠΊΠΎΠ³ΠΎ шага, Ρ‡Π΅ΠΌ сторонников, хотя ΠΏΡ€ΠΎΡ‚ΠΈΠ² Π½Π΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠΈ Git особых Π²ΠΎΠ·Ρ€Π°ΠΆΠ΅Π½ΠΈΠΉ Π½Π΅Ρ‚. ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π΄ΠΎΠ²ΠΎΠ΄ΠΎΠΌ ΠΏΡ€ΠΎΡ‚ΠΈΠ² являСтся отсутствиС Π² компиляторС rustc Π΄ΠΎΠ»ΠΆΠ½ΠΎΠΉ ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈ всСх ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌ, ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Π² Git.

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

Π”ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΊΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ