有人可以向我解释 Rust 每晚的“生产”情况吗?
我想使用PyO3板条箱,它使用需要夜间 Rust的专业化功能。
使用 Rust 的每晚版本是否已做好生产准备?我知道事情可能会在未来的版本中出现问题,并且可能会引入 API 更改,但就质量/测试/生产准备而言,每晚是否安全?
从这个关于 Rust 用户的线程看来,只要我限制我的非稳定功能的使用(例如,仅限于专业化),我应该没问题?
use*_*968 11
显然,nightly 没有稳定性保证,这使得这个问题与George Berkeley曾经提出的问题重复。
然而,nightly 编译器非常稳定:对 master 分支(从 nightly 拉出)的每一个,即使是最普通的更改都经过 CI,它执行完整的测试套件,必须通过。如果更改破坏了以前工作的内容,则 master 上没有“我们将在稍后修复此问题”。其次,大的变化——比如最近对std::collections和std::sync——通过火山口运行的变化,其中构建了相当一部分公开可用的 Rust 代码;如果 PR 会破坏以前没有破坏的东西,它就不会在 nightly 中着陆。最后但并非最不重要的是,许多 Rust 项目在每晚使用预定的 CI,其中手头的项目及其依赖项每月构建和测试一次。像这样的项目rocket一直在每晚运行,如果每晚引入回归或错误,它会很快被注意到。所有这一切都意味着你的前脸不太可能在夜间突然脱落
但是,对于需要夜间运行的不稳定功能,情况有所不同。语义可以改变,曾经运行过的代码可能会或多或少突然无法编译;然而,更改通常不太可能导致静默失败、先前定义的行为变为未定义等。
因此,一个常见的策略是选择特定版本的 nightly(比如“2019-05-09”)并坚持使用该版本一段时间。
插件:我的意图是明确表示“可以每晚可靠地编译东西吗?”之间存在差异。以及“nightly 编译的东西可靠吗?” 我对两者都提出了强有力的论据,重点是第二点:1) 是的,大多数时候 nightly 将能够编译您的代码。2) 由于行为的细微变化或完全错误编译,每晚编译的东西极不可能不可靠。
| 归档时间: |
|
| 查看次数: |
1336 次 |
| 最近记录: |