阅读更多

1顶
0踩

编程语言

原创新闻 Rust 1.9发布,提高了速度和错误处理

2016-06-20 14:31 by 副主编 mengyidan1988 评论(0) 有6472人浏览



Rust 1.8的新build系统首次亮相一个月之后,1.9版本便横空出世。这个版本中,编译速度大大提升,跨平台的工具增强,语言自身加强了对错误的处理。

最新的版本为开发者们提供了最实际的便利。如博客中所介绍,1.9版本加强了std:panic模块的稳定性。如果某个线程引起了Rust的程序恐慌时——遇到了期望之外的错误——一个新的APIcatch_unwind就可以从另一个线程打断处于恐慌的线程,从而让应用从整体上对错误的处理能力更高。

另一个改变是rustup,一个跨平台的管理工具。rustup可以让开发者在不同的平台使用和切换。由于使用LLVM的原因,Rust理论上是一个跨平台的语言,但是管理工具其实并不友好。rustup改变了这个问题,虽然还有些问题没有解决,比如装配C语言写的某些Rust组件(编译与C有关的依赖)。

Rust的维护者说:“虽然这项功能现在暂时没有发布,但是我们希望能在接下来的几个月中将其合并到语言中。”

Rust 1.9带来的一系列微小但是颇有意义的优化从整体上大大提高了程序的执行和编译速度。一种新的优化specialization“允许一般的代码自动的根据一些特殊类型的信息变成特殊的代码”,从而可以进一步做针对性的优化。另一项优化提升了相等测试的速度,让一些代码的速度大大提高。

另一项有用的改变是第三方库中的API可以添加警告注释了。鉴于Rust环境快速发展的今天,尤其是第三方库的迅速增长,这个特性比它看起来要重要的多。开发者在某些东西被废弃之后对用户提供警告(例如,它所依赖的Rust特性被废弃或者重构)有了一种优雅的方式。

Rust开发者2016年定了雄心勃勃的目标,目前大多数都被快速实现了,例如精简标准库等。某些还有待实现,比如用来缩短大型项目重新编译时间的递增编译,但是四月的MIR显示了这想工作的前奏。

原文:Rust 1.9 improves speed, error handling
作者: Serdar Yegulalp
翻译:赖信涛
责编:钱曙光
  • 大小: 576.6 KB
1
0
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • Rust 错误处理

    文章目录一、返回错误与异常处理OptionResult: Option...Rust Book 对 rust 中的错误处理有详细的讲解,本文对其中一些选择背后的原因进行了思考和总结。强烈建议先看原文。 一、返回错误与异常处理 名正则言顺,我们先

  • 如何使用Rust提高Ruby性能

    摘要:Ruby是一种简单快捷面向对象的脚本语言,而Rust是一种系统编程语言,它有着惊人的运行速度,能够防止段错误,并保证线程安全。本文作者以项目为例,结合大量的编程代码描述了如何借助Rust语言提高Ruby的性能,...

  • rust基础

    本篇文章是[《Rust程序设计语言》](https://kaisery.github.io/trpl-zh-cn/title-page.html)第一~六章笔记

  • Rust极简教程

    letOption集合vector容器String代码组织命名空间访问其他mod和crate访问权限和关键字访问其他文件中的对象使用第三方库异常处理泛型泛型概念特性(接口)文件和IO面向对象并发编程线程消息传递互斥锁代码说明引用...

  • Discord 从 Go 切换至 Rust 的深层原因

    rust

  • 【Rust深入浅出-4】类型转换

    Rust深入浅出教程第四章《类型转换》本章节将介绍基本数据类型之间的转换本文用到了一些match等后期知识,不理解不影响阅读本掌介绍了as, From&Into, try_from&try_into 和 parse 四种基本类型转换方法,as是子集...

  • 最终,我们放弃了 GO,迁移至 Rust,特性使然

    本文阐述了 Discord 从 Go 切换至 Rust 的深层原因,并分析了在内存管理中 Go 面临的一些固有问题,作者同时对比了 Go 和 Rust 在 Discord Read States 服务中的性能。 在各个领域,Rust 都已经成为一流的语言...

  • 【跟小嘉学 Rust 编程】四、理解 Rust 的所有权概念

    本章节将讲解 Rust 独有的概念(所有权)。所有权是 Rust 最独特的特性,它使得 Rust 能够在不需要垃圾收集器的情况下保证内存安全。因此理解所有权是如何工作很重要

  • 《Python基础教程》内容总览篇(持续更新中)

    最近有几个学习很认真的同学们给我反馈,专栏博客帮助他解决了大模型、爬虫、Python基础等各类问题,但有时候找起来不太方便,希望能对专栏的文章进行分门别类的整理,这样就能提高检索效率。   优秀的建议必须...

  • RedisJSON存储、更新和检索JSON文档

    RedisJSON 存储、更新和检索JSON文档、使用RedisJson、 RedisJson安装部署、RedisJson常用操作

  • Docker运行之com.docker.supervisor failed to start Exit code 1 问题之解决

    Docker是一个非常跨时代的工具,是在继虚拟化之后的新一个好用易用的工具,可以极大提升开发和部署的效率。本文将解决一个在Mac上部署Docker之时碰到的问题。 环境介绍 操作系统: MacOS 10.13.2 (17C205) ...

  • Python包装用户指南(删减了讨论和新闻部分)

    欢迎使用Python Packaging用户指南,这是一系列教程和参考资料,可帮助您使用现代工具分发和安装Python包。 本指南由Python Packaging Authority在GitHub上维护。我们乐意接受任何贡献和反馈。

  • 基于Spark 和Scala 的最先进数据分析技术有哪些?

    “我之所以要翻译这本书,也是源于我对大数据生态圈的理解和判断。与传统的MR 计算框架相比,Spark 有着足够的性能和易编程方面的优势,并且Spark 本身也正在形成自己的生态体系。而Spark 的原生语言Scala 将面向...

  • go语言学习--数组、切片、map初始化操作和区别

    pls := [][]string { {"C", "C++"}, {"JavaScript"}, {"Go", "Rust"}, } for _, v1 := range pls { for _, v2 := range v1 { fmt.Printf("%s ", v2) } fmt.Printf("\n") } } 上面程序的输出如下: C C++ ...

  • #来评选你心中的TOP1编程语言# 不同编程语言的优缺点及对C++语言发展的猜测

    2.4.1.2 并发和并行编程支持 Rust提供了丰富的并发和并行编程机制,如通道、锁和异步编程等,方便开发者处理复杂的开发场景。 2.4.1.3 高性能 Rust既具备静态类型检查,又生成高效的机器码,因此可提供接近于C++的...

  • 2021年9月Github优秀项目推荐

    泰森云每月整理发布(2021-09期刊) C 项目 1.HEX-LINK Star 139Watch 3Fork 18中文 自制电脑游戏的体感设备。该项目包含制作时需要的硬件设计和全部源码 . ├─firmware # 软件(根据自己使用的工具选择如下一...

  • 太阳能自动灌溉系统:基于SPWM技术的逆变正弦波设计与实现

    内容概要:本文详细介绍了太阳能自动灌溉系统的设计与实现,涵盖了多个关键技术点。首先,文章解释了太阳能自动灌溉系统的概念及其优势,如高效节水、环保等。接着,深入探讨了SPWM(正弦脉宽调制)技术,展示了如何通过调节脉冲宽度将直流电转换为正弦波形的交流电,这是逆变器工作的核心技术。随后,讨论了仿真的重要性,特别是使用MATLAB/Simulink进行系统行为和性能的模拟,确保设计方案的可行性。此外,还涉及了编程方面,通过Python和C语言实现了系统的控制逻辑,如根据土壤湿度控制灌溉。最后,介绍了DXP原理图在电路设计中的应用,强调了合理的电路布局和防护措施对于系统稳定性的关键作用。 适合人群:对太阳能技术和自动化控制系统感兴趣的工程师和技术爱好者,尤其是有一定电子电路和编程基础的人群。 使用场景及目标:适用于希望深入了解太阳能自动灌溉系统设计和实现的个人或团队,目标是掌握从能源获取、电力转换、系统模拟到代码控制以及电路设计的全流程,最终能够独立构建高效的太阳能自动灌溉系统。 其他说明:文中提供了大量实例代码和实践经验,帮助读者更好地理解和应用相关技术。同时,强调了实际操作中的注意事项,如

  • (源码)基于Vue.js的通用组件库.zip

    # 基于Vue.js的通用组件库 ## 项目简介 此项目是基于Vue.js构建的组件库,涵盖了Button、Form、FormItem、Input、Notice等多个可复用组件。它具备组件测试、文档生成、自定义主题、按需加载、组件数据通信等功能,并且通过Webpack完成打包,方便在各类Vue项目中使用。 ## 项目的主要特性和功能 1. 多种加载方式支持全局引入和按需加载,可根据项目需求灵活选择。 2. 文档生成利用VuePress工具生成组件文档,便于用户查看组件使用方法和样式。 3. 自定义主题能通过修改样式变量来自定义组件主题,满足不同项目的个性化需求。 4. 组件数据通信通过dispatch和broadcast方法实现组件间的数据通信,提升组件库的扩展性。 5. 独立打包样式文件和组件文件分别打包,可单独加载,减少代码量和加载时间。 ## 安装使用步骤 ### 准备工作 确保已经安装基本的Node.js和npm环境,以及Git。

  • (源码)基于Python的机器学习基础项目.zip

    # 基于Python的机器学习基础项目 ## 项目简介 本项目是一个基于Python的机器学习基础项目,涵盖了线性回归、逻辑回归、感知器算法(PLA)及其改进版(Pocket PLA)等机器学习算法的实现。项目通过不同算法处理不同数据集,并展示了这些算法在分类和回归问题上的应用。 ## 项目的主要特性和功能 线性回归实现了基于梯度下降法的线性回归算法,用于拟合数据并预测目标值。 逻辑回归提供了使用梯度下降法和随机梯度下降法的逻辑回归实现,用于分类任务。 感知器算法实现了基本的感知器学习算法(PLA)和Pocket PLA算法,用于线性分类问题。 数据加载与预处理提供了数据加载和预处理功能,支持不同格式的数据输入。 误差计算与性能评估提供了计算模型误差(误差率或准确率)的功能,用于评估模型性能。 ## 安装使用步骤 1. 环境准备确保已安装Python及其相关库(如NumPy、SciPy等)。

Global site tag (gtag.js) - Google Analytics