Rust 1.28释出,开发者现在可用全域分配器了!

距离上一个更新两个月后,Rust释出了1.28版本。Rust 1.27版本让开发者可以直接撰写低阶SIMD语法,而在1.28版本,官方释出了稳定版的全域分配器(Global Allocators)以及NonZero数字型态,而Rust的套件管理器Cargo也有更新。
分配器是Rust应用程序向系统请求内存的方法,过去Rust不允许改变获取内存的方式,而这样的限制阻挡了一些使用案例。在部分平台上,开发者必须要使用另外的系统分配器jemalloc,但开发者并没有方法可以控制这个关键元件。
在Rust 1.28上,现在#[global_allocator]属性已经进入稳定阶段,能让Rust程式配置他们的分配器为系统分配器,并且借由实作GlobalAlloc特性来定义新的分配器。部分平台上Rust程式的预设分配器是jemalloc,而现在标准函式库提供了系统分配器的Handle,只要宣告静态变数,并且以#[global_allocator]属性标记,就能够在需要的时候切换到系统分配器。
当开发者想要定义客制化的分配器也没问题,透过实作GlobalAlloc特性也可以轻松做到。
另一个进入稳定版本的函式库为NonZero数字类型,这些标准非带号(Unsigned)整数型态有NonZeroU8、NonZeroU16、NonZeroU32、NonZeroU64、NonZeroU128和NonZeroUsize。这些型态能帮助开发者进行容量最佳化,像是Option
此外,在Rust的套件管理器Cargo的更新,现在不再允许使用者以修改Src目录的建置脚本发布套件。
