Rust Prelude中的版本控制是如何工作的?

nfg76nw0  于 2023-05-17  发布在  其他
关注(0)|答案(1)|浏览(151)

我的问题是关于std::prelude
Rust 2021中的std::prelude包括super::v1::*(Rust prelude的v1)和core::prelude::rust_2021::*
至此,Rust的所有版本(2015-2024)都包含v1的prelude。
为了在与v1不同的Rust未来版本中使用公共核心模块,并且不影响使用v1的Rust当前(和以前)版本,计划是做一个简单的版本控制系统,如v1v2,...,v[x],还是有其他前进的道路?

rt4zxlrg

rt4zxlrg1#

在Rust 1.0发布之前,只有std::prelude;根本没有版本控制。由于开发是快速的,语言是高度不稳定的,考虑保持以前的版本工作是没有意义的;根据需要直接进行改变。The Rust 0.12.0 prelude看起来与我们今天所知道的有很大不同。
一旦开始计划1.0版本,就必须考虑向后兼容性以及该语言的部分如何随着时间的推移而增长。我们已经知道,Prelude将来可能会发生变化,因此将其修剪并放入版本化模块中。这就是为什么the Rust 1.0.0 prelude被命名为std::prelude::v1
Rust 2018版的prelude没有改变,所以它仍然是std::prelude::v1
当Rust 2021版本处于最终开发过程中时,对序言进行了一些补充:最终添加FromIteratorTryFromTryInto。这会是std::prelude::v2吗?不。自从v1创建以来,Rust已经开发了一个全新的版本控制方案:编辑系统。是时候追溯更新序言以反映所使用的版本了。在2021年中期:

随着我们对未来的探索,the Rust 1.62.0 prelude已经添加了一个rust_2024实验模块。在更接近Rust 2024版本发布之前,它可能不会稳定下来,但它已经表明前进的道路是明确的。
所以不,不会有一个std::prelude::v2很快;序言将随版本而定。
参见:

相关问题