Peluncuran GNU Mes 0.25, sebuah toolkit untuk pembangunan distribusi mandiri

Setelah satu setengah tahun pengembangan, toolkit GNU Mes 0.25 dirilis, menyediakan proses bootstrap untuk GCC dan memungkinkan siklus tertutup pembangunan kembali dari kode sumber. Toolkit ini memecahkan masalah rakitan kompiler awal yang terverifikasi dalam distribusi, memutus rantai pembangunan kembali siklus (membuat kompiler memerlukan file yang dapat dieksekusi dari kompiler yang sudah dibuat, dan rakitan kompiler biner adalah sumber potensial dari bookmark tersembunyi, yang tidak memungkinkan jaminan penuh integritas rakitan dari kode sumber referensi).

GNU Mes menawarkan penerjemah self-hosting untuk bahasa Skema, yang ditulis dalam bahasa C, dan kompiler sederhana untuk bahasa C (MesCC), yang ditulis dalam bahasa Skema. Kedua komponen tersebut dapat dirakit satu sama lain. Penerjemah Skema memungkinkan pembuatan kompiler MesCC C, yang kemudian memungkinkan Anda membuat versi sederhana dari kompiler TinyCC (tcc), yang kemampuannya sudah cukup untuk membangun GCC.

Penerjemah bahasa Skema sangat kompak, memakan sekitar 5000 baris kode dalam subset bahasa C yang paling sederhana dan dapat dikonversi menjadi file yang dapat dieksekusi menggunakan penerjemah universal M2-Planet atau kompiler C sederhana yang dikompilasi menggunakan hex0 perakitan mandiri assembler yang tidak memerlukan ketergantungan eksternal. Pada saat yang sama, penerjemah menyertakan pengumpul sampah lengkap dan menyediakan perpustakaan modul yang dapat dimuat. Proyek ini juga mengembangkan perpustakaan Mes CC, yang cukup untuk membangun glibc 2.2.5, binutils 2.20.1 dan gcc 2.95.3, yang diperlukan untuk menerapkan distribusi Guix untuk i686-linux, x86_64-linux, armhf-linux dan aarch64 -platform Linux, hanya menggunakan teks sumber (Full Source Bootstrap).

Rilis baru ini memperkenalkan dukungan untuk arsitektur RISC-V (RISC-V64-linux) dan menambahkan dukungan untuk kompilasi menggunakan transpiler M2-Planet. Perakitan yang didukung dengan versi M2-Planet 1.11.0 untuk platform target x86_64-linux. Menentukan "--bootstrap-mode" saat menggunakan M2-Planet tidak lagi diperlukan. MesCC memecahkan masalah kompatibilitas dengan versi GCC 10+, memastikan bahwa bidang struktur diinisialisasi ke 0, dan memulihkan kemampuan untuk men-debug file biner pada tingkat fungsi individual.

Dalam rilis mendatang, kami berharap untuk melihat dukungan untuk bootstrapping NixOS hanya dari sumber, dukungan untuk modul yang sepenuhnya kompatibel dengan Guile, kemampuan untuk menjalankan Gash dan Gash-Utils, dukungan untuk bootstrapping gcc 4.6.4, serta kemampuan untuk menjalankan sepenuhnya membangun seluruh sistem dari sumber di lingkungan Linux berdasarkan arsitektur armhf dan riscv64.

Sumber: opennet.ru

Tambah komentar