Rust là một ngôn ngữ lập trình được biên dịch đa mô hình, có mục đích chung.
Phiên bản mới của Rust 1.78 đã được phát hành và các tính năng mới được triển khai, cũng như sự ổn định của một số API, các cải tiến về Hàng hóa và hơn thế nữa.
Đối với những người không biết về ngôn ngữ lập trình này, họ nên biết rằng tập trung vào an toàn bộ nhớ và cung cấp phương tiện để đạt được tính song song cao của các công việc trong khi tránh sử dụng trình thu gom rác và thời gian chạy (thời gian chạy được giảm xuống để khởi tạo cơ bản và bảo trì thư viện tiêu chuẩn).
Các tính năng mới chính của Rust 1.78
Trong phiên bản mới này được trình bày bởi Rust 1.78 đã tăng yêu cầu tối thiểu cho Windows 10, Bên cạnh đó trình biên dịch đã được thay đổi để sử dụng LLVM 18. Khi sử dụng LLVM 18 cho kiến trúc x86-32 và x86-64, ABI liên kết với loại u128 và i128 đã được thay đổi.
Về những thay đổi, một trong những đặc điểm nổi bật là Rust hiện hỗ trợ một không gian tên thuộc tính «#[chẩn đoán]", gì cung cấp một phương tiện để tác động đến các thông báo lỗi được tạo ra bởi trình biên dịch. Những điều này được coi là gợi ý rằng trình biên dịch không bắt buộc phải sử dụng và đây cũng không phải là lỗi đưa ra chẩn đoán mà trình biên dịch không nhận ra. Cái này cho phép mã nguồn cung cấp chẩn đoán ngay cả khi chúng không được tất cả các trình biên dịch hỗ trợ, cho dù là các phiên bản khác nhau hay cách triển khai hoàn toàn khác nhau.
Bên cạnh đó, bộ đệm chung đã được ổn định trong Hàng hóa nơi lưu trữ thông tin về việc sử dụng dữ liệu gần đây nhất. Bộ đệm này nằm ở $CARGO_HOME/.global-cache và sử dụng SQLite để triển khai. Nó tự động cập nhật để phản ánh những thay đổi mới nhất về chỉ mục, thùng, thư mục mã, git clone và git kiểm tra, cải thiện hiệu quả và tốc độ của các hoạt động quản lý phụ thuộc trong các dự án phát triển.
Một tính năng mới khác của Rust 1.78 là thư viện chuẩn Rust có Các câu lệnh khác nhau cho các điều kiện tiên quyết của các chức năng không an toàn hiện có thể được hoãn lại cho đến khi tạo mã. Điều này cho phép những kiểm tra này được thực hiện về mặt lịch sử chúng chỉ được kích hoạt trong các bản dựng «#[cfg(debug_assertions)]» để tránh ảnh hưởng đến hiệu suất trong phiên bản phát hành. Với thay đổi này, giờ đây người dùng có thể phát hiện hành vi không xác định trong mã của họ, mặc dù thông tin chi tiết về mức độ được kiểm tra nhìn chung không ổn định. Để bật tính năng kiểm tra, hiện tại chỉ cần bật xác nhận gỡ lỗi cho các bản dựng mã thử nghiệm hoặc gỡ lỗi.
Thêm vào đó, bây giờ hành vi của các chức năng thư viện tiêu chuẩn ảnh hưởng đến sự liên kết của con trỏ và các lĩnh vực bây giờ nó có thể dự đoán được trong thời gian chạy và phụ thuộc vào dữ liệu đầu vào. Chức năng con trỏ::align_offset, tính toán độ lệch để căn chỉnh con trỏ bây giờ trả về sử dụng::MAX chỉ khi hoạt động thất bại. Chức năng slice::align_to và slice::align_to_mut, biến đổi các lát cắt thành một biểu diễn với một lát cắt ở giữa được căn chỉnh và các lát cắt bắt đầu và kết thúc ban đầu, giờ đây luôn trả về phần giữa lớn nhất.
Mặt khác, người ta đề cập rằng Các API sau đã được chuyển sang danh mục “ổn định”: impl Đọc cho &Stdin, impl Từ cho io::Lỗi và việc thực hiện ngụ ý cho phép sử dụng ?Kích thước.
Của Những thay đổi nổi bật khác của phiên bản mới này:
- Mức hỗ trợ thứ hai cho nền tảng mục tiêu Add wasm32-wasip1 đã được triển khai. Mức hỗ trợ thứ hai liên quan đến việc đảm bảo lắp ráp.
- Nền tảng wasm32-wasi-preview1-threads đã được đổi tên thành wasm32-wasip1-threads.
- Trong trình quản lý gói Hàng hóa, phiên bản 4 của tệp khóa (lockfile v4) đã được ổn định. Cargo hiện sử dụng phiên bản này làm tiêu chuẩn để đảm bảo tính nhất quán và quản lý hiệu quả các yếu tố phụ thuộc giữa các dự án.
Nếu bạn là muốn biết thêm về nó, bạn có thể kiểm tra các chi tiết trong liên kết sau.
Cuối cùng, đối với những người Quan tâm đến việc nâng cấp từ phiên bản Rust trước đó được cài đặt qua Rustup, bạn có thể tải phiên bản Rust 1.78 mới với:
rustup update stable
Nếu bạn chưa cài đặt Rust trên hệ thống của mình, bạn có thể thực hiện việc này bằng cách chạy lệnh sau trong terminal:
curl --proto '=https' --tlsv1.3 https://sh.rustup.rs -sSf | sh