Выпуск GNU Mes 0.23, инструмСнтария для самодостаточной сборки дистрибутивов

ПослС Π³ΠΎΠ΄Π° Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ состоялся выпуск инструмСнтария GNU Mes 0.23, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰Π΅Π³ΠΎ процСсс бутстрэппинга (bootstrap) для GCC ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‰Π΅Π³ΠΎ Π΄ΠΎΠ±ΠΈΡ‚ΡŒΡΡ Π·Π°ΠΌΠΊΠ½ΡƒΡ‚ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° пСрСсборки ΠΈΠ· исходных тСкстов. Π˜Π½ΡΡ‚Ρ€ΡƒΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΉ Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Π·Π°Π΄Π°Ρ‡Ρƒ Π²Π΅Ρ€ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠΉ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ сборки компилятора Π² дистрибутивах, разрывая Ρ†Π΅ΠΏΠΎΡ‡ΠΊΡƒ Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΎΠΉ пСрСсборки (для сборки компилятора Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ΡΡ исполняСмыС Ρ„Π°ΠΉΠ»Ρ‹ ΡƒΠΆΠ΅ собранного компилятора, Π° Π±ΠΈΠ½Π°Ρ€Π½Ρ‹Π΅ сборки компилятора ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΏΠΎΡ‚Π΅Π½Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹ΠΌ источником скрытых Π·Π°ΠΊΠ»Π°Π΄ΠΎΠΊ, Ρ‡Ρ‚ΠΎ Π½Π΅ позволяСт ΠΏΠΎΠ»Π½ΠΎΡΡ‚ΡŒΡŽ Π³Π°Ρ€Π°Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Ρ†Π΅Π»ΠΎΡΡ‚Π½ΠΎΡΡ‚ΡŒ сборок ΠΈΠ· эталонных исходных тСкстов).

Π’ GNU Mes прСдлагаСтся самодостаточный (self-hosting) ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ для языка Scheme, написанный Π½Π° языкС Π‘ΠΈ, ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠΈΠΉ компилятор для языка Π‘ΠΈ (MesCC), написанный Π½Π° языкС Scheme. Оба ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π° взаимособираСмы. Scheme-ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π΄Π°Ρ‘Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ Π‘ΠΈ-компилятор MesCC, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π·Π°Ρ‚Π΅ΠΌ позволяСт ΡΠΎΠ±Ρ€Π°Ρ‚ΡŒ ΡƒΡ€Π΅Π·Π°Π½Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ компилятора TinyCC (tcc), возмоТностСй ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΡƒΠΆΠ΅ достаточно для сборки GCC.

Π˜Π½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ языка Scheme достаточно ΠΊΠΎΠΌΠΏΠ°ΠΊΡ‚Π½Ρ‹ΠΉ, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ‚ ΠΎΠΊΠΎΠ»ΠΎ 5000 строк ΠΊΠΎΠ΄Π° Π½Π° ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅ΠΌ подмноТСствС языка Π‘ΠΈ ΠΈ ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ Π² исполняСмый Ρ„Π°ΠΉΠ» с использованиСм ΡƒΠ½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½ΠΎΠ³ΠΎ транслятора M2-Planet ΠΈΠ»ΠΈ ΠΏΡ€ΠΎΡΡ‚Π΅ΠΉΡˆΠ΅Π³ΠΎ Π‘ΠΈ-компилятора, собранного с использованиСм самособираСмого ассСмблСра hex0, Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‰Π΅Π³ΠΎ Π²Π½Π΅ΡˆΠ½ΠΈΡ… зависимостСй. ΠŸΡ€ΠΈ этом ΠΈΠ½Ρ‚Π΅Ρ€ΠΏΡ€Π΅Ρ‚Π°Ρ‚ΠΎΡ€ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΠΏΠΎΠ»Π½ΠΎΡ†Π΅Π½Π½Ρ‹ΠΉ сборщик мусора ΠΈ прСдоставляСт Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΡƒ Π·Π°Π³Ρ€ΡƒΠΆΠ°Π΅ΠΌΡ‹Ρ… ΠΌΠΎΠ΄ΡƒΠ»Π΅ΠΉ.

Π’ Π½ΠΎΠ²ΠΎΠΌ выпускС Ρ€Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ARM ( armhf-linux ΠΈ aarch-linux). Π”ΠΎΠ±Π°Π²Π»Π΅Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ использования Mes вмСстС с сокращённым Π½Π°Π±ΠΎΡ€ΠΎΠΌ bootstrap-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΎΡ‚ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° GNU Guix (GNU Guix Reduced Binary Seed). Π Π΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки Mes ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Mes C с использованиСм GCC 10.x. Π’ компиляторС MesCC обСспСчСна поставка собствСнной Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ libmescc.a (-lmescc), Π° ΠΏΡ€ΠΈ сборкС с GCC Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ указываСтся «-lgcc». ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½Π° ΠΏΠΎΠ΄Π΄Π΅Ρ€ΠΆΠΊΠ° сборки MesCC с Guile 3.0.x.

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

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