Peluncuran GNU Mes 0.23, sebuah toolkit untuk pembangunan distribusi mandiri

Setelah satu tahun pengembangan, toolkit GNU Mes 0.23 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 cukup 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 dirakit menggunakan hex0 yang dirakit sendiri assembler, yang tidak memerlukan ketergantungan eksternal. Pada saat yang sama, penerjemah menyertakan pengumpul sampah lengkap dan menyediakan perpustakaan modul yang dapat dimuat.

Rilis baru ini mencakup dukungan untuk arsitektur ARM (armhf-linux dan aarch-linux). Menambahkan kemampuan untuk menggunakan Mes bersama dengan kumpulan file bootstrap yang dikurangi dari proyek GNU Guix (GNU Guix Reduced Binary Seed). Dukungan yang diterapkan untuk membangun perpustakaan Mes dan Mes C menggunakan GCC 10.x. Kompiler MesCC sekarang mengirimkan perpustakaan libmescc.a miliknya sendiri (-lmescc), dan ketika membangun dengan GCC, "-lgcc" sekarang ditentukan. Memberikan dukungan untuk membangun MesCC dengan Guile 3.0.x.

Sumber: opennet.ru

Tambah komentar