Rust 1.34.0 发布

h4cd
 h4cd
发布于 2019年04月11日
收藏 6

Rust 1.34.0 发布了,更新内容如下:

Language

  • 现在可以使用 #[deprecated = "reason"] 作为 #[deprecated(note = "reason")] 的简写。
  • 现在可以在 #[attr()]、#[attr[]] 和 #[attr{}] 过程宏中接收 token 流。
  • 现在可以用 extern crate self as foo; 引入 crate 根到外部 prelude。

Compiler

  • 现在可以编译成 riscv64imac-unknown-none-elf 与 riscv64gc-unknown-none-elf
  • 现在可以使用 -C linker-plugin-lto 启用链接器插件LTO优化,这允许 rustc 将 Rust 代码编译为 LLVM bitcode,从而允许 LLVM 跨 C/C++ FFI 边界执行 LTO 优化。
  • 可以编译成 powerpc64-unknown-freebsd

Libraries

  • 在 HashMap <K, V, S> 和 HashSet <T, S> 的一些基本方法中删除了 trait bound,直观体现是不再需要 Hash trait 来创建迭代器。
  • 在 BinaryHeap <T> 的一些基本方法中删除了 Ord trait bound。
  • overflowing_neg 和 wrapping_neg 方法现在是所有数字类型的 const 函数。
  • 索引 str 现在通用于实现SliceIndex <str> 的所有类型。
  • str::trim、str::trim_matches、str::trim_ {start, end} 和 str::trim_ {start, end} _matches 现在是 #[must_use],如果它们的返回类型未使用,将产生警告。
  • check_pow、saturating_pow、wrapping_pow 和 overflowing_pow 方法可用于所有数字类型。

此外还有 API 与其它杂项的更新,详细内容查看更新说明

本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动共创开源社区。
转载请注明:文章转载自 OSCHINA 社区 [http://www.oschina.net]
本文标题:Rust 1.34.0 发布
加载中

精彩评论

Anjelo
Anjelo
相信它一定辉煌起来的。
wei2011
wei2011

引用来自“有来有趣”的评论

感觉是一个叫好不叫座的语言

引用来自“Jason909”的评论

gc可用的情况下,rust没什么优势
有gc就不能成为系统级语言,和golang一样了。没有gc,还能内存安全才是rust的卖点
s
shifeng1983

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧

引用来自“matrix1986”的评论

1983年就老的学不动了啊?

引用来自“shifeng1983”的评论

有用的学,没用的东西学啥?

引用来自“matrix1986”的评论

..亚马逊都在用RUST写新一代容器了,竟然说没用,83年果然学不动了啊
编程语言榜前20的,每一个都有人大量使用,你每个全都会是吗,你赶紧学起来吧!
matrix1986
matrix1986

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧

引用来自“matrix1986”的评论

1983年就老的学不动了啊?

引用来自“shifeng1983”的评论

有用的学,没用的东西学啥?
..亚马逊都在用RUST写新一代容器了,竟然说没用,83年果然学不动了啊
matrix1986
matrix1986

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧
1983年就老的学不动了啊?

最新评论(16

d
dwcz
哎,现在的代码越来越花眼了,编译器前端要变革呀。
胡建洲
胡建洲
感受一下rust的语法,github上随便找的
impl ::std::error::Error for Error {
----fn cause(&self) -> Option<&dyn (::std::error::Error)> {
--------match *self {
------------Error::Window(ref err) => Some(err),
------------Error::Font(ref err) => Some(err),
------------Error::Render(ref err) => Some(err),
--------}
----}

----fn description(&self) -> &str {
--------match *self {
------------Error::Window(ref err) => err.description(),
------------Error::Font(ref err) => err.description(),
------------Error::Render(ref err) => err.description(),
--------}
----}
}

impl ::std::fmt::Display for Error {
----fn fmt(&self, f: &mut ::std::fmt::Formatter<'_>) -> ::std::fmt::Result {
--------match *self {
------------Error::Window(ref err) => err.fmt(f),
------------Error::Font(ref err) => err.fmt(f),
------------Error::Render(ref err) => err.fmt(f),
--------}
----}
}
wei2011
wei2011

引用来自“有来有趣”的评论

感觉是一个叫好不叫座的语言

引用来自“Jason909”的评论

gc可用的情况下,rust没什么优势
有gc就不能成为系统级语言,和golang一样了。没有gc,还能内存安全才是rust的卖点
s
shifeng1983

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧

引用来自“matrix1986”的评论

1983年就老的学不动了啊?

引用来自“shifeng1983”的评论

有用的学,没用的东西学啥?

引用来自“matrix1986”的评论

..亚马逊都在用RUST写新一代容器了,竟然说没用,83年果然学不动了啊
编程语言榜前20的,每一个都有人大量使用,你每个全都会是吗,你赶紧学起来吧!
matrix1986
matrix1986

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧

引用来自“matrix1986”的评论

1983年就老的学不动了啊?

引用来自“shifeng1983”的评论

有用的学,没用的东西学啥?
..亚马逊都在用RUST写新一代容器了,竟然说没用,83年果然学不动了啊
s
shifeng1983

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧

引用来自“matrix1986”的评论

1983年就老的学不动了啊?
有用的学,没用的东西学啥?
J
Jason909

引用来自“有来有趣”的评论

感觉是一个叫好不叫座的语言
gc可用的情况下,rust没什么优势
matrix1986
matrix1986

引用来自“shifeng1983”的评论

为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧
1983年就老的学不动了啊?
Windoze
Windoze
这新闻哪儿来的?Rust官网上没说这事啊?
s
shifeng1983
为了不手动回收,引入了所有权概念,结果发现不能实现链表,然后给自己填坑,引入了生命周期概念,还是去用c++吧
返回顶部
顶部