gccrs จะถูกรวมเข้ากับ GCC 13

gccrs

gccrs เป็นการนำภาษา Rust ไปใช้งานบน GCC ทางเลือกที่สมบูรณ์

เมื่อเร็วๆ นี้ มีการประกาศว่าโครงการ "gccrs"ซึ่งมีเป้าหมายที่จะจัดหาอินเทอร์เฟซสำหรับภาษา Rust ให้กับ GCC (GNU Compiler Collection) กำลังอยู่ในขั้นตอนที่จะถูกรวมเข้ากับ GCC 13ในการประชุมนักพัฒนา FOSDEM เมื่อต้นเดือนนี้ วิศวกร Arthur Cohen ได้นำเสนอเกี่ยวกับ gccrs โดยสรุปสถานะปัจจุบันของงาน

สำหรับผู้ที่ไม่คุ้นเคยกับโครงการ gccrs มันคือการนำภาษา Rust มาใช้ในรูปแบบทางเลือกอย่างสมบูรณ์แบบบนพื้นฐานของ GCCโดยมีเป้าหมายที่จะบูรณาการเข้ากับชุดเครื่องมือ GNU อย่างสมบูรณ์

ที่มาของโปรเจ็กต์นี้คือความพยายามของชุมชนเมื่อหลายปีก่อน ตอนที่ Rust ยังเป็นเวอร์ชัน 0.9; ภาษาที่สร้างขึ้นโดย Mozilla นั้นมีการเปลี่ยนแปลงมากมายจนยากที่ชุมชนจะพยายามตามให้ทัน

เมื่อภาษาเสถียรแล้ว ก็ถึงเวลาสร้างคอมไพเลอร์สำรอง:

“เริ่มต้นในปี 2014 (และเปิดใช้อีกครั้งในปี 2019) ความพยายามดำเนินมาอย่างต่อเนื่องตั้งแต่ปี 2020 และเราได้ใช้ความพยายามอย่างมากและมีความก้าวหน้าอย่างมาก เราได้อัปโหลด gccrs เวอร์ชันแรกภายใน GCC ครั้งต่อไปที่คุณติดตั้ง GCC 13 มันจะมี gccrs อยู่ข้างใน

คุณสามารถใช้มันและเริ่มแฮ็คมันได้ คุณสามารถรายงานปัญหาเมื่อมันพังและตายอย่างหลีกเลี่ยงไม่ได้ สิ่งสำคัญอย่างหนึ่งที่เรากำลังทำคือทำให้ชุดทดสอบสนิมทำงานได้” Arthur Cohen กล่าวระหว่างการนำเสนอในการประชุม FOSDEM เมื่อต้นเดือนนี้

ความสามารถในการรันชุดทดสอบคอมไพเลอร์ rustc ได้สำเร็จยังคงเป็นเป้าหมายอยู่ ตามที่ Cohen กล่าวอินเทอร์เฟซ GCC ของ Rust ยังกำหนดเป้าหมายไปที่ Rust libcore เวอร์ชัน 1.49 ที่เก่ากว่าด้วย

คำถามที่พบบ่อยของโครงการ gccrs ระบุว่า เทคโนโลยีการสร้าง LLVM ทั้งหมด ซึ่ง Rust ใช้ "ขาดแบ็กเอนด์ที่เข้ากันได้กับ GCC บางส่วน ดังนั้นการใช้งาน gccrs จึงสามารถเติมเต็มช่องว่างเพื่อใช้ในการพัฒนาแบบบูรณาการได้ "

อย่างไรก็ตาม โปรดทราบว่าคอมไพเลอร์ Rust-GCC (gccrs) ยังอยู่ในช่วงเริ่มต้นและยังไม่สามารถใช้คอมไพล์โปรแกรม Rust จริงได้

เมื่อเดือนกรกฎาคมที่ผ่านมา ทีม GCC ได้ลงมติอนุมัติการรวม gccrs เข้าเป็นชุดเครื่องมือสร้างโปรแกรม ความสำคัญของโครงการนี้อยู่ที่ความสำคัญต่อเคอร์เนลของลินุกซ์ อันที่จริง เคอร์เนลของลินุกซ์มักถูกสร้างด้วย GCC แต่แผนการที่จะอนุญาตให้ใช้ภาษา Rust ควบคู่ไปกับภาษา C สำหรับโค้ดเคอร์เนลด้วยเหตุผลด้านความปลอดภัยของหน่วยความจำนั้นกำลังคืบหน้าไปอย่างต่อเนื่อง

โครงการ "Rust for Linux" ได้รวมเข้ากับแผนผังหลักของ Linux 6.1 Git อย่างเป็นทางการเมื่อเดือนตุลาคมปีที่แล้ว ทำให้ Rust เป็นภาษาที่สองสำหรับการพัฒนา Linux โดยเฉพาะ หลังจาก 31 ปีของการพัฒนาโดยใช้ภาษา C โดยเฉพาะ

“เราต้องการให้ gccrs เป็นคอมไพเลอร์ของ Rust อย่างแท้จริง ไม่ใช่โปรเจ็กต์ของเล่นหรือบางสิ่งที่คอมไพล์ภาษาที่ดูเหมือน Rust แต่ไม่ใช่ Rust; เรากำลังพยายามทำให้ชุดทดสอบนี้ใช้งานได้จริง” เขากล่าวเสริม ในระหว่างการนำเสนอ โคเฮนยังกล่าวด้วยว่าแม้ว่าอินเทอร์เฟซ Rust ของ GCC 13 จะเริ่มต้นได้ดี แต่ก็ยังมีงานอีกมากที่ต้องทำ รหัสการตรวจสอบที่ยืมมาขาดหายไปอย่างเห็นได้ชัดในขณะนี้ การสนับสนุนสำหรับโมดูลที่มีอยู่แล้วภายในและภายในยังคงดำเนินต่อไป และยังไม่ถึงขั้นตอนสำคัญในการรวบรวมรหัส Rust สำหรับ Linux

ขอย้ำอีกครั้งว่า โครงการ Rust for Linux มีเป้าหมายที่จะนำภาษาการเขียนโปรแกรมระบบใหม่มาใช้ในเคอร์เนลของ Linuxตามที่ผู้เชี่ยวชาญกล่าว Rust มีคุณสมบัติสำคัญที่ทำให้มันน่าสนใจมากที่จะพิจารณาเป็นภาษาที่สองสำหรับเคอร์เนลของ Linux นั่นคือ มันรับประกันว่าจะไม่มีพฤติกรรมที่ไม่แน่นอนเกิดขึ้น (โดยที่โค้ดที่ไม่ปลอดภัยนั้นยังคงสมเหตุสมผล)

ซึ่งรวมถึงการไม่มีข้อผิดพลาด เช่น การใช้งานฟรีภายหลัง การเพิ่มข้อมูลซ้ำซ้อน การแย่งชิงข้อมูล เป็นต้น การโต้วาทีที่เกี่ยวข้องเกี่ยวข้องกับความเป็นไปได้ที่จะเลิกใช้ภาษา C แทนภาษา Rust แต่ Linus Torvalds ผู้สร้าง Linux กล่าวว่านั่นไม่ใช่เป้าหมายที่ระบุไว้ของโครงการ Rust for Linux

สุดท้ายนี้ควรกล่าวถึงว่า แม้ว่าอินเทอร์เฟซ gccrs จะถูกรวมเข้าไว้ใน GCC 13 เวอร์ชันที่จะออกในเร็วๆ นี้แล้วแต่ก็ยังไม่พร้อมใช้งานในสถานะที่นักพัฒนา Rust ส่วนใหญ่สามารถใช้เป็นทางเลือกแทนคอมไพเลอร์ LLVM อย่างเป็นทางการของ Rust ได้

ไม่น่าจะถึงปีหน้า อย่างน้อยก็ GCC 14 เป็นอย่างน้อย

ที่มา: https://fosdem.org/


เพิ่มเป็นแหล่งข้อมูลที่ต้องการใน Google