百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

新一代系统编程语言Rust 1.3发布_rust程序设计语言

haoteby 2025-02-18 11:38 40 浏览

Rust一直都在不断在前进与快速的发展中:我们迎来了Rust 1.3稳定版。(完整的版本发布详情参见本文下半部分)

1.3稳定版中重大改进

这是带有 Rustonomicon的第一个先行发布版本,加入了Rust编程指南电子书《The Dark Arts of Advanced and Unsafe Rust Programming》,虽然它还只是草案形式,但是这本书已经覆盖了Rust的很多方面。

在Rust 1.3的库中,很多API被稳定下来,包括新的Duration API和Hash/Hasher。未来的1.5版本中将对std::time模块进行功能改进并稳定。

Rust 1.3对性能进行了改进,主要集中在标准库这一块:

Rust已经初步支持 Windows XP,我们将继续在Windows系统上进行投入,但并不打算将Windows XP 作为"第一梯队"的平台,现在可以在XP上构建Rust代码,但是要避免使用一些尚未支持XP的标准库。关于MSVC工具链的集成工作正在进行中,现在在1.4测试版中已经可以完全支持在64位的Windows系统中运行。

Cargo已经支持 早期的RFC中所指定的规则。我们的想法是,依赖约束不要影响纯编译的能力,这反过来又使得它更容易调整在生态系统中的一些不必要的麻烦处理方式。

以下为Rust 1.3的完整特性:

1.3.0 版本(2015-09-17)

约900个修改,大量的bug修复

新特性

  • 新的 对象生命周期,&'a Box将由原来的释意&'a Box变成&'a Box
  • 新增电子书 Rustonomicon作为指导编写unsafe rust 模块的官方文档;
  • DurationAPI已经被稳定下来,并被其它标准库和第三方模块使用。

非兼容性的修改

  • 新的 对象生命周期:对于对象生命周期省略的解释已经回归,但是最合适的解释方案还没有结论;
  • #[prelude_import]属性的内部实现细节先前已经被稳定下来,新版中对其的改动将打破已有的代码;
  • size_of_value和align_of_val对于大小可调节的类型的处理更智能,依赖之前实现的代码将可能无法运行;
  • dropck规则将确保析构函数不能访问已经销毁的值,它已经被更新并符合RFC标准,修复了一些稳定性方面的bug,这些将导致以前能够编译的代码无法构建。

语言

  • 新的对象生命周期:对于对象生命周期省略的解释已经回归,但是最合适的解释方案还没有结论;
  • 分号现在可以出现类型与宏定义中;
  • size_of_value和align_of_val对于大小可调节的类型的处理更智能,依赖之前实现的代码将可能无法运行;
  • 'static变量现在能够是 递归的;
  • ref绑定能够正确地在 Deref和DerefMut之间做出选择;
  • dropck规则将确保析构函数不能访问已经销毁的值,它已经被更新并符合 RFC标准,修复了一些稳定性方面的bug,这些将导致以前能够编译的代码无法构建。

  • DurationAPI已经稳定,std::time模块其目前仅包含Duration;
  • Box和Box<[T]>都实现了Clone;
  • 拥有所有权的C字符串 CString实现了Borrow,借来的C字符串CStr,实现了ToOwned,Borrow和ToOwned的实现使得在范型代码中可以对C字符串进行Borrow和Clone操作;
  • CStr实现了 Debug;
  • AtomicPtr实现了Debug;
  • Error接口对象能够被降阶到它所指向的具体类型,可以像使用Any接口一样地去使用它的is、downcast、downcast_ref和downcast_mut方法;
  • 字串搜索现在采用更高效的“two-way”算法取代单纯的进行一次搜索操作的实现方式,这给对包括contain、find、split、starts_with和ends_with等方法带来了极大的速度提升;
  • 切片的PartialEq操作速度更快;
  • 散列接口提供了默认的方法hash_slice,通过重载和优化hash_slice的实现对对标量进行了优化;
  • 散列器接口现在有一些专门为基本类型提供的WRITE_*系列方法,目的是为了提高效率;
  • I/O错误类型增加了一个方法集合用于访问内部的错误代码,std::error::Error::casuse的实现也是通过代理到内部错误代码来实现;
  • process::Child新增加id方法用于返回平台独立的进程标志符;
  • 切片上的connect方法已被弃用,取而代之的是新的join方法(注意,这两个方法都在不稳定SliceConcatExt);
  • Wrapper类型实现了Div运算符号;
  • String实现了DerefMut;
  • SipHash对于长数据能够获得更好的性能;
  • AtomicPtr实现了Send;
  • Stdin和File实现的read_to_end现在使用未初始化的缓存以提高性能;
  • 外界函数的生命周期参数被移除了。

其它

  • 现在Rust在定程序可以生成在Windows XP上运行的程序,尽管XP不在被支持的平台列表之中;
  • 现在移植GNU工具链到MSVC的工作还在继续,但仍不推荐在1.3中使用,即使在1.4 beta版中将对64位系统中提供完整的功能支持;
  • 在基于Fedora的发行版的系统中,安装将正确的配置动态链接器;
  • 编译器增加了许多新的扩展错误描述,可以通过--explain选项访问;
  • 用于约束析构函数不能访问已销毁值的dropck已经被重写,修改了一些稳健性的漏洞,这是非向后兼容的;
  • rustc现在在可能情况下使用LLVM写归档文件,最终目标是消除对于ar工具的依赖;
  • Rust开始提供对于i686平台上FreeBSD的初步支持(它长期支持x86-64平台上的FreeBSD);
  • unused_mut、unconditional_recursion、improper_ctypes和negate_unsigned lints更严格;
  • 如果着陆垫被禁止(使用-Z无着陆垫),异常将杀死泄漏的进程。

Rust 1.3的贡献者

Rust是一个社区驱动的语言,我们真诚的感谢Rust1.3版中的131位贡献者:

  • Aaron Turon
  • Adam Heins
  • Agoston Szepessy
  • Aidan Hobson Sayers
  • Akos Kiss
  • Alex Crichton
  • Alex Newman
  • Alexis Beingessner
  • Alisdair Owens
  • Andreas Tolfsen
  • ……

原文链接:Announcing Rust 1.3和Version 1.3.0 (2015-09-17)(译者/魏绪文 责编/钱曙光)

译者简介:魏绪文(fuxpro@outlook.com),致力于CPU架构和并发型应用的研究与实践,乐于分享。

CSDN Rust 学习交流群拥有多位Rust资深研究者,如果你想零距离接触大牛和贡献者,请加群主微信 qshuguang2008 或扫描下方二维码申请入群,备注:实名+公司名+Rust。

相关推荐

5个珍藏多年的资源网站,免费又实用,建议收藏

今天给大家分享5个珍藏多年的资源网站,每个都是免费的,而且非常的实用,建议收藏。1、wallhaven一个国外知名的壁纸网站,拥有海量的8k、4k的超清图片壁纸,该网站的图片是由各地的创作者提供下载,...

设计网站推荐 | 国内外设计类素材网站

网站分享|十个不得不推荐的设计类素材网站!一些压箱底的常用的设计类素材分享!一定要打开这些网站试一试哦!...

阿里巴巴旗下菜鸟裹裹换新LOGO?长高了

LOGO大师整理编辑(ID:logods)...

10个做PPT必备的素材网站,越用越上瘾,每个都是宝藏

Pexelshttps://www.pexels.com/zh-cn/...

阿里旗下的四款免费小工具 好用并且能大大提升工作效率

好的工具能大大的提升你的工作效率,今天给大家分享的是阿里旗下的四款经典免费小工具,主要是用来设计,能方便,且高效的提高你的工作效率,觉得有用就收藏了吧。第一个:阿里巴巴图标库阿里巴巴图标库有将近80多...

UI设计入门干货!八大软件+技能+素材网站

随着互联网行业的发展,UI设计师越来越多的被提及,UI设计师大火,需求岗位越来越多,也有越来越多的人转行投身UI设计师。UI设计是什么?一般所说的UI设计多指UI视觉设计,主要负责APP、Web、H5...

干货!宝藏PPT素材——海量图标免费使用

我是星辰四个月的假期收集了一些PPT素材,筹备了这个公众号今天终于和大家见面了此公众号不定时更新各种素材干活和PPT模板记得关注我哦~后台发送“PPT”领取免费PPT模板总是很难找到合适PPT素材?费...

写了100多篇原创文章,我常用的在线工具网站推荐给大家

摘要不知不觉写博客已经一年多了,累计写了100多篇原创文章,今天给大家分享下我经常使用的在线工具网站,希望对大家有所帮助!MarkdownNice支持自定义样式的在线Markdown编辑器,编辑完成...

设计者必备神器:必须收藏的在线软件推荐

本内容来源于@什么值得买SMZDM.COM|首席生活家保密对于新电脑或重新刷系统的电脑,安装一堆软件是很费时间的,而软件多了会对系统运行速度有影响,特别是机械硬盘,响应时间与软件数量成正比的。而用了...

干货 | 设计师必备网站,大神作品、图片素材一网打尽

经常会听到这样的一句话:设计师每日正式开始工作的第一件事,就是打开3个及以上的设计/素材网站。网站中的优秀作品不仅可以帮助设计师提升自己,还能激发创作的灵感,所以今天,我们为大家整理了一些国内外优秀的...

推荐11个超好用的在线作图网站

现在做图好像已经不是设计师的专利不管是新媒体人、文案,还是随便一个人不会随时随地做几张漂亮图不能分分钟出点海报、封面图、邀请函什么的还怎么昂首挺胸在办公室里混不会PS没关系,不会做图可不行所以今天老贼...

做设计还只知道花瓣包图网?这100+个免费商用素材网站送给你

作为设计师你常用的网站是哪些呢?花瓣?站酷?千库?千图?包图?这些网站确实是大家最常用的网站,各种风格的元素、模板、源文件,用起来可以说是得心应手了~但是一旦出现了这个场景,你就也跟着崩溃了........

5个好看的图标网站,直接搜索下载

今天和大家分享5个图标网站,里面收录大量丰富的图标,在这里找到好图标不是什么难事。Iconsdbwww.iconsdb.com...

8个高清无版权的图片资源网站,质量高又免费,够你用一辈子

很多时候我们找素材总是要花费很多时间,今天就给大家分享8个,高清无版权的图片资源网站,质量高又免费,够你用一辈子。01*Logosc...

淘宝PPT设计师不会告诉你的4个网站!帮你剩下不少钱

之前的文章中,给各位推荐过图片素材网站,像:500px,unsplash等,也给各位推荐过图标网站,像阿里巴巴图标库。这些网站都很好用。但是,我最近发现,有一类素材网站,在做PPT时也会经常用到,...