宣布生锈1.24

2018年2月15日·铁锈核心团队

Rust团队很高兴宣布Rust的新版本1.24.0。铁锈是一种系统编程语言侧重于安全性、速度和并发性。

如果您通过rustup安装了以前版本的Rust,则会获得Rust1.24.0简单到:

$rustup更新稳定

如果你还没有,你可以得到锈蚀来自我们网站上的适当页面,并查看详细的发行说明1.24.0在GitHub上。

1.24.0中的内容稳定

此版本包含两个非常激动人心的新功能:生锈和增量编译!

生锈

多年来,我们一直想要一个能自动将Rust代码重新格式化为某种形式的工具“标准风格”。通过此次发布,我们很高兴地宣布预览属于生锈可与1.24稳定使用。要尝试一下,请执行以下操作:

$rustup组件添加rustfmt-preview

这里有两个重要方面:首先,您正在使用添加生锈组件而不是货物装置在这里。如果您以前使用过生锈通过货物装置,您应该先卸载它。其次,这是一个预览,因为它的名字是这样写的。生锈还没有达到1.0,有些东西正在经过调整,错误正在修复。一次生锈点击1.0,我们会释放生锈组件和弃用rustfmt预览.

在不久的将来,我们计划写一篇关于这个发布策略的文章,因为它很大对于它自己的帖子来说已经足够了,而且比这个版本更广泛。

更多信息,请查看生锈在GitHub上.

增量编译

早在2016年9月(!!!),我们在博客上就增量编译.虽然该帖子深入到了细节,但其基本思想是:当你在工作时一个项目,你经常编译它,然后改变一些小的东西,然后再编译。从历史上看,编译器已经编译了您的整个的项目,无论您对代码更改了多少。增量编译的思想是,只需编译实际拥有的代码更改,这意味着第二次构建速度更快。

从Rust 1.24开始,现在是默认情况下已启用.这意味着您的构建应该更快!别忘了货物检查尝试时以获得尽可能低的构建时间。

这仍然不是编译器性能的最终结果,也不是增量编译明确地。我们计划在未来做更多的工作。例如,另一个更改与此版本的性能稳定相关:代码生成单元现在默认设置为16.关于这个更改,有一点需要注意:它使构建速度更快,但使最终的二进制文件有点更慢的。对于最大速度,设置代码生成单元1在您的货物.toml需要以弥补每一滴表现。

还有更多!

其他好东西

这里我们还想讨论另一个变化:未定义的行为。一般生锈努力减少未定义的行为,在安全代码中不包含任何行为在不安全代码中可能发生。可以调用UB的一个区域是恐慌!跨越外国金融机构边界。换句话说,这:

外部“C”fn panic_in_ffi(){恐慌!(“测试”);}

这是行不通的,因为恐慌如何起作用的确切机制必须得到调和如何“C”在本例中,ABI有效,在其他示例中,任何其他ABI都有效。

锈蚀1.24,此代码现在将中止而不是产生未定义的行为。

请参阅详细的发行说明了解更多信息。

图书馆稳定

如果你是的粉丝字符串::find,用于查找给定的烧焦的内部&字符串,你会的很高兴看到这个拉请求:现在速度快了10倍!这要感谢memchr公司.[u8]::包含 也使用它虽然它没有得到如此极端的加速。

此外,本版本稳定了一些新的API:

最后,现在可以在常量表达式中使用这些函数,例如,初始化静止的:

  • 单元格参考单元格、和不安全单元格新的功能
  • 这个新的各种功能原子整数类型
  • {整数}::min_value最大值(_V)
  • 内存大小(_O)对齐(_O)
  • ptr::null空(_mut)

请参阅详细的发行说明了解更多信息。

货物特征

如前所述,此版本的主要功能是默认启用增量编译。

请参阅详细的发行说明了解更多信息。

1.24.0贡献者

许多人一起创造了Rust 1.24。我们不可能做到没有你们所有人。谢谢!