The State of Allocators in 2026 – 6 Months Later
21 days ago
- Rust中的自定义分配器即将稳定,活动重新活跃,Nia领导这项工作。
- 初始API非常精简,专注于包含allocate和deallocate方法的Allocator trait,并支持Vec和Box。
- Allocator trait将支持dyn兼容,实现动态分发,灵活性类似于Zig。
- 禁止从分配器展开,以防止在Vec增长等操作中出现不健全问题。
- 分配器的Clone trait存在问题,可能导致双重释放;提出了一个新的不安全标记trait AllocatorClone。
- Pin和内存协变问题表明,仅靠'static边界是不够的;正在考虑使用StaticAllocator标记trait。
- 首次稳定化是一个MVP,排除了Pin::new_in和其他容器方法,同时解决不健全问题。
- 过去的先例,如Error::type_id和std::env::set_var,表明不健全可能导致回退或使函数变为不安全。
- 稳定化过程包括最终评论期,并需要数月才能达到稳定发布。