gccrs adalah implementasi alternatif lengkap dari bahasa Rust melalui GCC
Baru-baru ini diumumkan bahwa proyek "gccrs" , yang bertujuan untuk menyediakan antarmuka bagi bahasa Rust ke GCC (GNU Compiler Collection), sedang dalam proses untuk diintegrasikan ke dalam GCC 13. Pada konferensi pengembang FOSDEM awal bulan ini, insinyur Arthur Cohen memberikan presentasi tentang gccrs yang menguraikan keadaan terkini dari pekerjaan tersebut.
Bagi yang belum familiar dengan proyek gccrs, ini adalah implementasi alternatif lengkap dari bahasa Rust di atas GCC, dengan tujuan untuk sepenuhnya terintegrasi ke dalam toolchain GNU.
Asal usul proyek ini adalah upaya komunitas beberapa tahun lalu, ketika Rust masih dalam versi 0.9; bahasa yang dibuat oleh Mozilla tunduk pada begitu banyak perubahan sehingga upaya komunitas menjadi sulit untuk mengejar ketinggalan.
Sekarang setelah bahasanya stabil, saatnya membuat kompiler alternatif:
“Dimulai pada 2014 (dan diluncurkan kembali pada 2019), upaya tersebut telah berlangsung sejak 2020 dan kami telah melakukan banyak upaya dan banyak kemajuan. Kami telah mengunggah gccrs versi pertama di dalam GCC. Jadi lain kali Anda menginstal GCC 13, itu akan memiliki gccrs di dalamnya.
Anda dapat menggunakannya dan Anda dapat mulai meretasnya, Anda dapat melaporkan masalah ketika pasti macet dan mati secara mengerikan. Satu hal besar yang kami lakukan adalah membuat rangkaian uji rustc berfungsi, ”kata Arthur Cohen selama presentasinya di konferensi FOSDEM awal bulan ini.
Kemampuan untuk menjalankan rangkaian pengujian kompiler rustc dengan sukses juga tetap menjadi tujuan. Menurut Cohen, antarmuka GCC Rust juga menargetkan versi libcore Rust yang lebih lama, yaitu versi 1.49.
FAQ proyek gccrs mencatat bahwa semua teknologi build LLVM, yang digunakan Rust, "kekurangan beberapa backend yang kompatibel dengan GCC, sehingga implementasi gccrs dapat mengisi celah tersebut untuk digunakan dalam pengembangan terintegrasi ."
Perhatikan, bagaimanapun, bahwa kompiler Rust-GCC (gccrs) masih dalam tahap yang sangat awal dan belum dapat digunakan untuk mengkompilasi program Rust yang sebenarnya.
Tim GCC memberikan suara pada bulan Juli lalu untuk menyetujui integrasi gccrs sebagai rangkaian pengembangan. Pentingnya proyek ini terletak pada signifikansinya bagi kernel Linux. Faktanya, kernel Linux umumnya dibangun dengan GCC, tetapi rencana untuk mengizinkan bahasa Rust digunakan bersama dengan C untuk kode kernel, demi alasan keamanan memori, terus berkembang.
Proyek "Rust for Linux" secara resmi digabungkan ke dalam pohon utama Linux 6.1 Git Oktober lalu, menjadikan Rust sebagai bahasa kedua yang didedikasikan untuk pengembangan Linux, setelah 31 tahun pengembangan berbasis C secara eksklusif.
“Kami ingin gccrs menjadi kompiler Rust sejati dan bukan proyek mainan atau sesuatu yang mengkompilasi bahasa yang terlihat seperti Rust tetapi bukan Rust; kami benar-benar berusaha membuat test suite ini berfungsi, ”tambahnya. Selama presentasi, Cohen juga mengatakan bahwa meskipun antarmuka Rust GCC 13 dimulai dengan baik, masih banyak pekerjaan yang harus dilakukan. Kode verifikasi yang dipinjam secara mencolok tidak ada saat ini, dukungan untuk modul bawaan dan intrinsik masih berlangsung, dan tonggak penting kompilasi kode Rust untuk Linux belum tercapai.
Sebagai pengingat, proyek Rust for Linux bertujuan untuk memperkenalkan bahasa pemrograman sistem baru ke dalam kernel Linux. Menurut para ahli, Rust memiliki properti kunci yang membuatnya sangat menarik untuk dipertimbangkan sebagai bahasa kedua untuk kernel Linux: ia memastikan bahwa tidak terjadi perilaku yang tidak terdefinisi (asalkan kode yang tidak aman tersebut masuk akal).
Ini termasuk tidak adanya error seperti after-free use, double frees, data races, dll. Perdebatan terkait berkisar pada kemungkinan membuang C demi bahasa Rust. Tapi Linus Torvalds, pencipta Linux, mengatakan itu bukan tujuan proyek Rust untuk Linux.
Terakhir, perlu disebutkan bahwa meskipun antarmuka gccrs telah digabungkan untuk rilis GCC 13 mendatang, antarmuka ini belum berada dalam kondisi di mana sebagian besar pengembang Rust dapat benar-benar menggunakannya sebagai alternatif untuk kompiler LLVM resmi Rust.
Seharusnya tidak sampai tahun depan, setidaknya dengan GCC 14 setidaknya.
Sumber: https://fosdem.org/