پس از یک سال و نیم توسعه، جعبه ابزار GNU Mes 0.25 منتشر شد که یک فرآیند بوت استرپ را برای GCC فراهم کرد و امکان چرخه بسته بازسازی از روی کد منبع را فراهم کرد. این جعبه ابزار مشکل مونتاژ کامپایلر اولیه تایید شده در توزیع ها را حل می کند، زنجیره بازسازی چرخه ای را می شکند (ساخت یک کامپایلر به فایل های اجرایی یک کامپایلر از قبل ساخته شده نیاز دارد، و مجموعه های کامپایلر باینری منبع بالقوه نشانک های پنهان هستند، که اجازه تضمین کامل را نمی دهد. یکپارچگی مجموعه ها از کدهای منبع مرجع).
گنو مس یک مترجم خود میزبان برای زبان Scheme، نوشته شده به زبان C، و یک کامپایلر ساده برای زبان C (MesCC) که به زبان Scheme نوشته شده است، ارائه میکند. هر دو جزء قابل مونتاژ هستند. مفسر Scheme ساخت کامپایلر MesCC C را ممکن میسازد، که سپس به شما امکان میدهد نسخهای از کامپایلر TinyCC (tcc) بسازید، که قابلیتهای آن از قبل برای ساخت GCC کافی است.
مفسر زبان Scheme بسیار فشرده است، حدود 5000 خط کد را در ساده ترین زیرمجموعه زبان C می گیرد و می تواند با استفاده از مترجم جهانی M2-Planet یا یک کامپایلر ساده C که با استفاده از اسمبلر hex0 خود مونتاژ شده کامپایل شده است، به یک فایل اجرایی تبدیل شود. که نیازی به وابستگی خارجی ندارد. در عین حال، مفسر شامل یک زباله گرد کامل است و یک کتابخانه از ماژول های قابل بارگذاری را فراهم می کند. این پروژه همچنین کتابخانه Mes C C را توسعه میدهد که برای ساخت glibc 2.2.5، binutils 2.20.1 و gcc 2.95.3 کافی است، که برای استقرار توزیع Guix برای i686-linux، x86_64-linux، armhf-linux و aarch64 لازم است. - پلتفرمهای لینوکس، فقط از کدهای منبع (با منبع کامل بوت استرپ) استفاده میکنند.
نسخه جدید پشتیبانی از معماری RISC-V (RISC-V64-linux) و اضافه کردن پشتیبانی برای کامپایل با استفاده از ترانسپایلر M2-Planet را ارائه می کند. مونتاژ پشتیبانی شده با نسخه M2-Planet 1.11.0 برای پلتفرم هدف x86_64-linux. مشخص کردن "--bootstrap-mode" در هنگام استفاده از M2-Planet دیگر مورد نیاز نیست. MesCC مشکلات سازگاری با نسخههای GCC 10+ را حل میکند، اطمینان میدهد که فیلدهای ساختار به 0 مقداردهی اولیه میشوند، و توانایی اشکالزدایی فایلهای باینری را در سطح توابع جداگانه بازیابی میکند.
در نسخههای آتی، ما انتظار داریم که شاهد پشتیبانی از بوت استرپ NixOS فقط از منبع، پشتیبانی از ماژولهایی باشیم که کاملاً با Guile سازگار هستند، توانایی اجرای Gash و Gash-Utils، پشتیبانی از bootstrapping gcc 4.6.4 و همچنین توانایی به طور کامل کل سیستم را از منبع در محیط های لینوکس بر اساس معماری armhf و riscv64 بسازید.
منبع: opennet.ru
