gccrs sẽ được tích hợp vào GCC 13

gccrs

gccrs là một triển khai thay thế hoàn chỉnh của ngôn ngữ Rust trên GCC

Nó gần đây đã được tiết lộ rằng dự án gccrs, với mục tiêu là cung cấp giao diện cho ngôn ngữ Rust cho GCC (Bộ sưu tập trình biên dịch GNU), đang trên đường được tích hợp vào GCC 13.  Tại hội nghị các nhà phát triển FOSDEM hồi đầu tháng này, kỹ sư Arthur Cohen đã thuyết trình về gccrs, phác thảo tình trạng hiện tại của công việc.

Đối với những người không biết về dự án gccrs, họ nên biết rằng đây là triển khai thay thế hoàn toàn ngôn ngữ Rust trên GCC với mục tiêu trở thành chuỗi công cụ GNU đầy đủ.

Nguồn gốc của dự án này là nỗ lực của cộng đồng vài năm trước, khi Rust vẫn còn ở phiên bản 0.9; ngôn ngữ do Mozilla tạo ra có quá nhiều thay đổi khiến nỗ lực của cộng đồng trở nên khó bắt kịp.

Bây giờ ngôn ngữ đã ổn định, đã đến lúc tạo các trình biên dịch thay thế:

“Bắt đầu vào năm 2014 (và khởi chạy lại vào năm 2019), nỗ lực này đã được tiếp tục kể từ năm 2020 và chúng tôi đã nỗ lực rất nhiều cũng như đạt được nhiều tiến bộ. Chúng tôi đã tải lên phiên bản đầu tiên của gccrs bên trong GCC. Vì vậy, lần tới khi bạn cài đặt GCC 13, nó sẽ có gccrs bên trong.

Bạn có thể sử dụng nó và bạn có thể bắt đầu hack nó, bạn có thể báo cáo các sự cố khi nó chắc chắn bị treo và chết một cách khủng khiếp. Arthur Cohen cho biết trong bài thuyết trình của mình tại hội nghị FOSDEM đầu tháng này rằng một điều quan trọng mà chúng tôi đang làm là làm cho bộ thử nghiệm Rustc hoạt động.

Khả năng chạy thành công bộ kiểm tra trình biên dịch Rustc cũng là một mục tiêu. Theo Cohen, Giao diện GCC của Rust cũng trỏ đến Rust libcore 1.49 cũ hơn.

Câu hỏi thường gặp về dự án gccrs lưu ý rằng tất cả các công nghệ xây dựng LLVM được Rust sử dụng đều "thiếu một số phần phụ trợ tương thích với GCC, vì vậy việc triển khai gccrs có thể lấp đầy các khoảng trống để sử dụng trong phát triển nhúng".

Tuy nhiên, xin lưu ý rằng trình biên dịch Rust-GCC (gccrs) vẫn còn ở giai đoạn rất sớm và chưa thể được sử dụng để biên dịch các chương trình Rust thực tế.

Nhóm GCC đã bỏ phiếu vào tháng XNUMX năm ngoái để phê duyệt tích hợp gccrs như một bộ xây dựng. Tầm quan trọng của dự án này nằm ở tầm quan trọng của nó đối với nhân Linux. Trên thực tế, nhân Linux thường được xây dựng bằng GCC, nhưng kế hoạch cho phép ngôn ngữ Rust được sử dụng cùng với C cho mã nhân, vì lý do an toàn bộ nhớ, đang được tiến hành đều đặn.

Dự án "Rust cho Linux" đã chính thức hợp nhất vào cây Git chính của Linux 6.1 vào tháng 31 năm ngoái, biến Rust trở thành ngôn ngữ thứ hai dành riêng cho phát triển Linux, sau XNUMX năm phát triển độc quyền dựa trên C.

“Chúng tôi muốn gccrs trở thành một trình biên dịch Rust thực sự chứ không phải một dự án đồ chơi hay thứ gì đó biên dịch một ngôn ngữ trông giống Rust nhưng không phải Rust; chúng tôi đang thực sự cố gắng làm cho bộ thử nghiệm này hoạt động,” anh ấy nói thêm. Trong buổi thuyết trình, Cohen cũng nói rằng mặc dù giao diện Rust của GCC 13 có một khởi đầu tốt, nhưng vẫn còn rất nhiều việc phải làm. Hiện tại, mã xác minh mượn rõ ràng là không có, hỗ trợ cho các mô-đun nội tại và tích hợp sẵn vẫn đang tiếp tục và cột mốc quan trọng của việc biên dịch mã Rust cho Linux vẫn chưa đạt được.

Xin nhắc lại, dự án "Rust cho Linux" nhằm mục đích giới thiệu một ngôn ngữ lập trình hệ thống mới vào nhân Linux. Theo các chuyên gia, ngôn ngữ Rust có một thuộc tính quan trọng khiến nó rất thú vị khi được coi là ngôn ngữ thứ hai của nhân Linux: nó đảm bảo rằng không có hành vi không xác định nào xảy ra (miễn là mã không an toàn là lành mạnh).

Điều này bao gồm việc không có lỗi như sử dụng miễn phí sau, miễn phí gấp đôi, cuộc đua dữ liệu, v.v. Các cuộc tranh luận liên quan xoay quanh khả năng bỏ C để ủng hộ ngôn ngữ Rust. Nhưng Linus Torvalds, người tạo ra Linux, nói rằng đó không phải là mục tiêu đã nêu của dự án Rust cho Linux.

Cuối cùng, Điều đáng nói là mặc dù giao diện gccrs đã được hợp nhất cho phiên bản tiếp theo của GCC 13, nó vẫn chưa ở trạng thái mà hầu hết các nhà phát triển Rust thực sự có thể sử dụng nó thay thế cho trình biên dịch LLVM chính thức của Rust.

Không nên đợi đến năm sau, ít nhất là với GCC 14.

Fuente: https://fosdem.org/


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.