VietTechiesHIỂU CÔNG NGHỆ. MỞ GÓC NHÌN.
☰ Chuyên mục

Rust 1.99.0 ổn định hóa hàm Variadic C-ABI và cập nhật hướng dẫn quản lý bộ nhớ

01/10/2026 · VietTechies · Biên tập

Hình ảnh minh họa một khối thép chải hiện đại lắp ghép vừa vặn với một khối sắt tối màu nhám trên nền trung tính.
Ảnh minh họa do AI tạo.

Đội ngũ phát triển Rust đã chính thức phát hành phiên bản Rust 1.99.0, mang đến khả năng định nghĩa các hàm variadic theo chuẩn C-ABI trực tiếp bên trong ngôn ngữ. Trong khi các phiên bản trước đây chỉ cho phép gọi các hàm C variadic từ bên ngoài, bản cập nhật 1.99.0 giúp các nhà phát triển có thể tự triển khai những hàm nhận số lượng tham số tùy ý thông qua ABI "C" và "C-unwind". Người dùng hiện tại có thể nâng cấp lên phiên bản ổn định mới này bằng công cụ rustup.

Định nghĩa hàm C-ABI Variadic gốc

Việc viết các hàm C-variadic trong Rust dựa trên kiểu VaList, giúp duy trì tương thích giao diện nhị phân (ABI) với kiểu va_list của C trên các kiến trúc mục tiêu. Quá trình trích xuất tham số được kiểm soát bởi trait VaArgSafe nhằm đảm bảo tính an toàn cho các kiểu dữ liệu có thể đọc được từ danh sách tham số. Phiên bản này cũng chính thức ổn định hóa hỗ trợ định nghĩa các hàm naked variadic với các ABI không phải "C" khi được triển khai bằng mã máy nhúng (inline assembly).

API bố cục con trỏ và cập nhật hướng dẫn bộ nhớ

Rust 1.99.0 chuẩn hóa các yêu cầu an toàn đối với việc truy xuất thông tin kích thước và căn chỉnh từ các con trỏ thô (raw pointers), mở rộng tính năng cho cả các kiểu dữ liệu có kích thước cố định (sized) lẫn kích thước động (dynamically sized) thông qua ba hàm vừa được ổn định hóa. Bên cạnh đó, bản phát hành cũng cập nhật tài liệu thư viện chuẩn để khuyến cáo không nên sử dụng mô hình hoàn trả bộ nhớ (round-trip unleaking) sau khi gọi Box::leak.

Tài liệu cập nhật nhấn mạnh rằng việc cấp phát lại hoặc giải phóng vùng bộ nhớ từng được đánh dấu là rò rỉ (leaked) có thể dẫn đến các xung đột phức tạp với những cơ chế tối ưu hóa của trình biên dịch, đặc biệt là khi kết hợp với tính năng hỗ trợ bộ cấp phát tùy chỉnh (custom allocator) sắp tới. Các nhà phát triển được khuyên nên chuyển sang sử dụng Box::into_non_null như một phương án thay thế ưu tiên khi làm việc với việc chuyển đổi con trỏ quản lý.

Ảnh minh họa do AI tạo, không phải ảnh tư liệu.

Nguồn: Announcing Rust 1.99.0