如果你不能使用稳定的编译器来使用不稳定的模块,那么 Rust 如何编译它的模块呢?std
?例如,std::Vec
uses alloc::raw_vec
,一个不稳定的特征。
不,你不能在稳定的 Rust 上使用不稳定的功能。这就是不稳定功能的全部要点:
在稳定版上允许不稳定的功能存在三个问题
发布。
首先,正如网络上多次表明的那样,仅仅是广告
不稳定是行不通的。一旦功能被广泛使用,它就非常有用
很难改变它们——一旦功能可用,就很难改变它们
很难阻止它们被使用。像“供应商
网络上的“前缀”,旨在支持实验
相反导致了事实上的标准化。
其次,根据定义,不稳定的功能正在开发中。但是
beta/stable 快照会在预定的时间点冻结该功能,
而库作者希望使用最新版本的
特征。
最后,除非我们强制执行,否则我们根本无法为 Rust 提供稳定性
它。我们的承诺是,如果您使用 Rust 的稳定版本,
您永远不会害怕升级到下一个版本。如果图书馆可以
选择不稳定,那么我们只能兑现这个承诺
库作者通过支持所有三个来保证同样的事情
同时释放通道。
Rust 是如何编译它的std
?
无法保证 Rust 是由稳定的编译器,或者它是由提供下载的同一稳定编译器构建的。如果有一个特殊的编译器用于引导程序官方编译器。看关于信任信任的思考了解这可能是邪恶的方式。
事实上,Rust 之前使用了一个特殊的引导编译器,但是如今却没有。相反,有一个神奇的配置值,允许不稳定的功能与稳定的编译器一起使用。这样做是为了让 Linux 发行版可以选择使用自己的工具链构建自己的 Rust 版本。
出于尊重,我认为公开分享确切的细节是不合适的。寻找答案的努力应该足以阻止大多数人在没有充分理由的情况下使用它。如果有一个任何人都可以使用搜索引擎轻松找到的一行答案而不考虑后果,这似乎并不理想。如果有人足够关心,他们可以研究 Rust 源代码并构建系统,这当然是开放的。
使用 Rust 的夜间版本如果您需要使用不稳定的功能。这是最诚实的方法。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)