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

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

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

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。

相关推荐

BRICS continues to offer powerful alternative global vision

Leadersattendingtheplenarysessionof"PeaceandSecurityandReformofGlobalGovernance"ofthe...

China&#39;s role in shaping global growth takes the stage at Summer Davos

Guestsattendtheparallelsession"CheckingInontheEnergyTransition"duringthe2025SummerDav...

Shanghai blockchain park proves WAIC&#39;s worth

BySHEXiaochenThe2023WorldArtificialIntelligenceConferencekickedoffinShanghaionThursday...

Shopee新手指南:Shopee卖家中心用户界面介绍

1.Shopee各站点前台网页链接:2.Shopee各站点后台网页链接3.ShopeeAPP下载:安卓版下载链接:https://pan.baidu.com/s/1eSp8M1k#list/path...

打孩子犯法!日本拟立法禁止父母体罚孩子

日本虐童事件频发引发了社会的广泛关注。近日,日本打算对现行的儿童福利法案进行修订,禁止父母体罚子女,但也引发了网友对于体罚、虐待以及法律可行性的讨论。日本将禁止父母体罚子女ViaJapanTod...

新NAS到手后,你一定要学会的9个设置,威联通和群晖都是这样的。

本内容来源于@什么值得买APP,观点仅代表作者本人|作者:小曹老师心念已久的NAS,终于到手了,期待着他能给我们数字化生活,带来更多的便捷和安心。...

苹果四大系统信息汇总(苹果手机系统分别有哪些)

【环球科技综合报道】据国外科技网站报道,苹果在6月13日举行全球开发者大会(WWDC),对iOS、MacOS、WatchOS、TVOS四大系统进行更新。MacOS:OSX系统将更名为“ma...

关于苹果iOS 10 系统 你需要了解的5个特点

【环球科技综合报道】据外媒5月10日报道,苹果公司将于今年6月举办全球开发者大会(WWDC)。在大会上,公司计划发布iOS10操作系统。该系统在iOS7操作系统的基础上进行了革新,具有里程碑式意义...

Win10用户:不要尝试安装Media Center

IT之家(www.ithome.com):Win10用户:不要尝试安装MediaCenter本月初,微软正式发布了Win10技术预览版。最近有部分用户尝试通过Win8.1的安装密钥,来为Window...

半年做到美妆Top主播,“成分测评师李某人”究竟何许人?

从毛毛姐到口红一哥李佳琦,男网红主播成为了一个趋势,也有越来越多的男生开始扎堆进入美妆行业,淘宝主播“成分测评师李某人”是其中之一。只是,他做主播的初衷,倒不是为了当网红,而是想给自己的美妆品牌打开一...

《经典怀旧手游》新手必看玩法,背景玩法详细介绍!

经典重温,武林再现,十年经典,再创江湖!备受玩家期待的《武林外传十年之约手游》即将来袭。本次版本主题为“江湖再现”,全新开放的梦境机关城将带来全新挑战!塑魂系统的全面升级,新增第二期空位和道具将大幅提...

17个问题,帮你判断咨询师是否适合自己

...

关于软考你想知道的都在这(软考有用吗 知乎)

软考相信学计算机的大家多多少少有过了解,就是全国计算机技术与软件专业技术资格(水平)考试,适用于大部分计算机同学和想转行IT行业的同学。这两天各省陆续出了报考的入口,大家可以积极报考!软考含金量较高,...

微软面向Linux平台放出4.3版本Skype

继日前微软针对iPhone平台放出5.0版本Skype,对用户界面进行多处调整之后软再次面向Linux平台放出了4.3.0.37版本Skype应用,带来了部分用户界面改善、全新的功能和系统后台性能优化...

Linux dd命令有多强大?(linux的dig命令)

请关注本头条号,每天坚持更新原创干货技术文章。如需学习视频,请在微信搜索公众号“智传网优”直接开始自助视频学习1.前言本文主要介绍Linuxdd命令的强大功能与日常的使用案例。Linux中的dd命...