工具的發布 ,它為 GCC 提供引導過程並允許從原始程式碼進行閉環重建。
該工具包解決了發行版中驗證初始編譯器程序集的問題,打破了循環重組鏈(要構建編譯器,需要已經構建的編譯器的可執行文件,而二進制編譯器組件是隱藏書籤的潛在來源,這使得我們無法完全保證參考源文本中程序集的完整性)。
在 GNU Mes 一個用 C 語言寫的 Scheme 語言自架解釋器,以及一個用 Scheme 語言寫的 C 語言簡單編譯器 (MesCC)。兩個組件均可互相組裝。 Scheme 解釋器可讓您建立 MesCC C 編譯器,然後讓您可以建立編譯器的精簡版本。 (tcc),它已經具有足夠的能力來建造GCC。
Scheme 語言解釋器非常緊湊,在 C 語言的最簡單子集中佔用約 5000 行程式碼,並且可以使用通用翻譯器轉換為可執行文件 或是最簡單的 C 編譯器,使用自組譯組譯器進行編譯 ,它不需要外部依賴。該解釋器包含一個成熟的垃圾收集器並提供了一個可載入模組庫。
新版本為在 GNU Guix 發行版中使用 mes+mescc 或 guile+mescc 軟體包進行可重複構建提供了支援。 Debian GNU /Linux 以及 NixOS。新增了在 GNU Hurd 中執行 Mes Scheme 解釋器的支持,但由於缺少對必要係統呼叫(例如 fork/exec)的支持,mescc C 編譯器尚無法正常運作。已新增對建立 FreeBSD 可執行檔的初步支援。改進了僅使用 Scheme 語言元件引導 Guix 發行版的支援(使用 Gash 命令 shell(Guile as Shell)代替 bash,使用 Gash Core Utils 取代 coreutils,以及 grep、sed、gzip、make、awk 和 tar)。
未來版本包括對 NixOS 引導的支援、僅使用 wip-bootstrap 分支中的 Scheme 元件實現引導、對 ARM 架構的支援、使用 M2-Planet 編譯 Mes.c 的能力、對 Guile 模組的完全支援以及使 mescc 與 Hurd 核心協同工作。
來源: opennet.ru
