การเปิดตัว GNU Mes 0.25 ชุดเครื่องมือสำหรับอาคารกระจายสินค้าแบบครบวงจร

หลังจากหนึ่งปีครึ่งของการพัฒนา ชุดเครื่องมือ GNU Mes 0.25 ก็ได้รับการปล่อยตัว ทำให้เกิดกระบวนการบูทสแตรปสำหรับ GCC และอนุญาตให้มีการสร้างวงจรปิดขึ้นใหม่จากซอร์สโค้ด ชุดเครื่องมือนี้แก้ปัญหาของแอสเซมบลีคอมไพเลอร์เริ่มต้นที่ได้รับการตรวจสอบแล้วในการแจกแจง ทำลายห่วงโซ่ของการสร้างใหม่แบบวนรอบ (การสร้างคอมไพเลอร์ต้องใช้ไฟล์ปฏิบัติการของคอมไพเลอร์ที่สร้างไว้แล้ว และแอสเซมบลีคอมไพเลอร์ไบนารีเป็นแหล่งที่เป็นไปได้ของบุ๊กมาร์กที่ซ่อนอยู่ ซึ่งไม่อนุญาตให้รับประกันอย่างสมบูรณ์ ความสมบูรณ์ของแอสเซมบลีจากซอร์สโค้ดอ้างอิง)

GNU Mes มีล่ามแบบโฮสต์เองสำหรับภาษา 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 แพลตฟอร์ม -linux โดยใช้ซอร์สโค้ดเท่านั้น (Full Source Bootstrap)

รุ่นใหม่แนะนำการรองรับสถาปัตยกรรม 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 การรองรับการบูตสแตรปปิ้ง gcc 4.6.4 รวมถึงความสามารถในการ สร้างระบบทั้งหมดอย่างสมบูรณ์จากแหล่งที่มาในสภาพแวดล้อม Linux โดยใช้สถาปัตยกรรม armhf และ riscv64

ที่มา: opennet.ru

เพิ่มความคิดเห็น