Bản phát hành ngôn ngữ lập trình Rust 1.54

Việc phát hành ngôn ngữ lập trình hệ thống Rust 1.54, do dự án Mozilla sáng lập, nhưng hiện được phát triển dưới sự bảo trợ của tổ chức phi lợi nhuận độc lập Rust Foundation, đã được xuất bản. Ngôn ngữ tập trung vào an toàn bộ nhớ, cung cấp khả năng quản lý bộ nhớ tự động và cung cấp phương tiện để đạt được tính song song cao mà không cần sử dụng trình thu gom rác hoặc thời gian chạy (thời gian chạy được giảm xuống mức khởi tạo và bảo trì cơ bản của thư viện tiêu chuẩn).

Quản lý bộ nhớ tự động của Rust giúp nhà phát triển tránh khỏi các lỗi khi thao tác với con trỏ và bảo vệ chống lại các sự cố phát sinh do thao tác bộ nhớ ở mức độ thấp, chẳng hạn như truy cập vùng bộ nhớ sau khi nó được giải phóng, hủy bỏ tham chiếu con trỏ null, tràn bộ đệm, v.v. Để phân phối các thư viện, cung cấp các bản dựng và quản lý các phụ thuộc, dự án phát triển trình quản lý gói Hàng hóa. Kho lưu trữ crates.io được hỗ trợ để lưu trữ thư viện.

Những đổi mới chính:

  • Đã thêm khả năng sử dụng các macro giống chức năng bên trong các thuộc tính (macro thủ tục và macro được tạo bằng macro “macro_rules!”). Các macro như vậy được phân biệt với các hàm bằng ký hiệu “!” sau tên (macro!(...)) và thay thế văn bản nguồn macro thay vì tạo lệnh gọi hàm. Gọi macro trong các thuộc tính có thể hữu ích để đưa nội dung từ các tệp khác vào ghi lại nhận xét. Ví dụ: để chèn nội dung của tệp README và kết quả thực thi tập lệnh, bạn có thể chỉ định: #![doc = include_str!("README.md")] #[path = concat!(env!("OUT_DIR "), "/generated.rs" )] mod được tạo;
  • Các chức năng biên dịch tích hợp (Intrinsics) cho nền tảng wasm32 đã được ổn định, cho phép sử dụng các lệnh SIMD trong WebAssembly. Hầu hết các hàm, chẳng hạn như v128_bitselect, đều khả dụng ở chế độ "an toàn", nhưng một số hàm hoạt động với con trỏ (ví dụ: v128_load) vẫn "không an toàn".
  • Việc sử dụng biên dịch gia tăng mặc định đã quay trở lại, cho phép bạn chỉ xây dựng lại những phần đã thay đổi của mã, điều này có thể giảm đáng kể thời gian cần thiết để xây dựng dự án khi biên dịch lại sau khi thực hiện những thay đổi nhỏ. Quá trình biên dịch gia tăng đã bị vô hiệu hóa trong bản phát hành 1.52.1 do các lỗi ẩn xuất hiện sau khi thêm một bước kiểm tra bổ sung để tải dữ liệu từ bộ nhớ đệm trên đĩa.
  • Một phần API mới đã được chuyển sang danh mục ổn định, bao gồm các API ổn định sau:
      BTreeMap::into_keys
    • BTreeMap::into_values
    • HashMap::into_keys
    • HashMap::into_values
    • vòm::wasm32
    • VecDeque::binary_search
    • VecDeque::binary_search_by
    • VecDeque::binary_search_by_key
    • VecDeque::partition_point
  • Đã thêm tùy chọn vào cây hàng hóa: “—prune " để xóa một gói khỏi biểu đồ phụ thuộc, "-deep" để chỉ hiển thị các phần tử của mức lồng nhất định trong cây phụ thuộc, "-edges no-proc-macro" để ẩn các phần phụ thuộc macro thủ tục.

Nguồn: opennet.ru

Thêm một lời nhận xét