Di GCC mereka menyetujui implementasi RUST (gccrs)

Baru-baru ini tersiar kabar itu Komite Pengarah GCC telah menyetujui dimasukkannya implementasi gccrs (GCC Rust) dari kompiler Rust di inti GCC.

Dengan itu GCC (Koleksi Kompilator GNU) sudah memiliki backend untuk Rust, melalui proyek bernama rustc_codegen_gcc yang didirikan oleh Antoni Boucher. Itu masih digambarkan sebagai pekerjaan yang sedang berjalan, tetapi telah digabungkan ke dalam repositori Rust utama pada September 2021.

Bagi mereka yang tidak tahu bahasa Karat, mereka harus tahu apa itue berfokus pada manajemen memori yang aman dan menyediakan sarana untuk mencapai paralelisme pekerjaan yang tinggi. Penanganan memori yang aman, yang mengecualikan kesalahan seperti mengakses area memori setelah membebaskannya, mendereferensikan null pointer, dan batas buffer overflow, dicapai di Rust pada waktu kompilasi melalui pemeriksaan referensi, pelacakan kepemilikan objek, memperhitungkan masa pakai objek (cakupan ), dan mengevaluasi kebenaran akses memori selama eksekusi kode.

Karat juga menyediakan perlindungan luapan bilangan bulat, mengharuskan variabel diinisialisasi sebelum digunakan, menangani kesalahan dengan lebih baik di pustaka standar, menerapkan konsep referensi dan variabel yang tidak dapat diubah secara default.

Setelah mengintegrasikan antarmuka, dalam GCC standar dapat digunakan untuk mengkompilasi program Rust tanpa perlu menginstal kompiler rustc yang dibangun dengan LLVM build.

Sejak November 2020, saya telah bekerja penuh waktu di front-end Rust untuk GCC, berkat Open Source Security, Inc dan Embecosm. Akibatnya, saya menulis ke milis ini untuk meminta umpan balik dari pengalaman kolektif di sini lebih awal untuk merencanakan jalur untuk mengunggah front-end ke GCC.

Pentingnya proyek ini adalah pentingnya untuk Linux, umumnya dibangun dengan GCC, di mana rencana untuk memungkinkan Rust digunakan bersama C untuk kode kernel, untuk alasan keamanan memori, terus bergerak maju.

Ini berarti bahwa kompiler Rust, rustc, dapat digunakan dengan backend GCC, Backend menjadi pembuat kode yang mendukung lebih banyak arsitektur CPU daripada LLVM, kompiler backend biasa Rust, meskipun ada batasan, seperti memerlukan versi GCC yang ditambal.

Alternatifnya adalah memiliki rantai alat GCC lengkap. Pada Januari 2021, Open Source Security, Inc, pembuat versi keras dari kernel Linux yang disebut Grsecurity, mengatakan akan mendanai "upaya pengembangan publik" antarmuka GCC untuk Rust, dengan alasan meningkatkan keamanan. untuk mencampur kompiler yang berbeda.

Dari sudut pandang saya sebagai pemimpin di front-end ini, kami saat ini dalam pengembangan yang berat jadi ini berarti cukup banyak kode yang berputar belum, dan saya tidak melihat ini berubah sampai kita berhasil mengkompilasi kotak libcore akhir tahun ini. Meskipun aku ingin bertemu satu sama lain bergabung ke GCC 13, saya ingin memastikan proyek ini sukses untuk semua, dan ini bisa berarti memutar kembali ke jendela rilis berikutnya untuk memastikan ini dapat dikelola untuk menghasilkan front-end yang berkualitas untuk duduk bersama untuk yang lainnya.

Perusahaan mengutip sebuah makalah yang menunjukkan "bagaimana keamanan keseluruhan lingkungan runtime dapat dikurangi dengan memperkenalkan kode yang ditulis dalam Rust atau bahasa lain di mana kompiler tidak memberikan keamanan tingkat biner yang sama."

pengembang gccrs didorong untuk mulai bekerja dengan tim peninjau dan Rilis Perubahan GCC untuk menyelesaikan dan menyetujui patch dalam hal memenuhi persyaratan teknis untuk kode yang akan ditambahkan ke GCC.

Dengan asumsi bahwa pengembangan gccrs berlanjut sesuai rencana dan tidak ada masalah tak terduga yang teridentifikasi, front-end bahasa Rust akan diintegrasikan ke dalam rilis GCC 13 yang dijadwalkan Mei tahun depan. Implementasi Rust di GCC 13 akan berstatus beta, belum diaktifkan secara default.

Akhirnya jika Anda tertarik untuk mengetahui lebih banyak tentangnya tentang proyek, Anda dapat berkonsultasi dengan detail di link berikut.


tinggalkan Komentar Anda

Alamat email Anda tidak akan dipublikasikan. Bidang yang harus diisi ditandai dengan *

*

*

  1. Bertanggung jawab atas data: AB Internet Networks 2008 SL
  2. Tujuan data: Mengontrol SPAM, manajemen komentar.
  3. Legitimasi: Persetujuan Anda
  4. Komunikasi data: Data tidak akan dikomunikasikan kepada pihak ketiga kecuali dengan kewajiban hukum.
  5. Penyimpanan data: Basis data dihosting oleh Occentus Networks (UE)
  6. Hak: Anda dapat membatasi, memulihkan, dan menghapus informasi Anda kapan saja.

  1.   qtrit dijo

    Bagus, semoga implementasinya bermanfaat bagi banyak programmer.