阅读更多

2顶
1踩

编程语言



Mozilla上周发布了Rust 1.8,一个系统级别的编程语言,提供与C语言相当的编译速度,和高级别的安全性。这次更新最值得关注的是,Rust放弃了Unix系统的Make工具,使用Rust自己的Cargo包管理工具

为了实现自托管,减少对外部工具的依赖,Rust必须通过自己的语言构建一些工具。其他语言也大多都经过这个过程。Google的Go语言,从1.5版本开始,其编译器和解释器都由Go语言实现(有一小部分用了汇编),放弃了基于C语言的工具。

从Make换到Cargo的原因,是因为很多程序员抱怨,部署大型的应用时,会遇到很多多语言方面的困难。比如,他们说现在的基于Make的编译系统“在这个星球上只有一小部分人能够熟练使用”,就是说,对大多数Rust开发者来说并不友好——这对以友好的开发环境著称的Rust是不能容忍的。

Rust放弃Make编译系统的另一个原因是可移植性。在Windows环境下使用MSVC工具需要“疯狂、古怪的技巧运行不同版本的工具,特别是配置脚本和编译工具的时候。”Rust的开发者说。随着兼容性的信息逐渐分离出来,社区可以更好地应用这些信息。

同样,改变编译系统使Rust标准库和编译器可以使用4600以上个尚已存在的Cargo包。

Rust并没有结业通过MSVC编译的问题。很多新的开发语言——当然并不是微软支持的——的用户都会因为平台古怪的编译过程使用户受挫。Rust已经解决了自身的问题,从1.8版本开始,32位Windows系统可以正常地处理错误。长期来看,这项举措可以有效地避免这个坑。

原文:Rust 1.8 takes steps to replace the Make build system
译者:赖信涛
  • 大小: 157.6 KB
2
1
评论 共 0 条 请登录后发表评论

发表评论

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

相关推荐

  • Rust 1.0发布的这一年

    原文:One year of Rust 作者: Aaron Turon 译者:范长春,中科院自动化研究所毕业,在微软中国STC部门工作两年,后来加入了百纳武汉做android版海豚手机浏览器,目前在武汉的另外一家创业公司工作。从事过...

  • Windows系统编译GSL2.7用于C语言编程(2022.5.8)

    Windows系统利用MSYS2编译GSL库 CodeBlocks和Visual Studio 皆可调用GSL库实现C语言相关运算

  • Linux C/C++ 编译集锦 (GCC/build/compile/make)

    Linux C/C++ 编译集锦 (GCC/build/compile/make/golang)

  • Rust语言中文教程RustPrimer的诞生记(开放下载)

    作者:唐刚(GitHub),Rust中文社区站长、妈咪问问CEO,前美洽网络联合创始人兼CTO,曾在龙芯梦兰担任近3年的研发工程师。 责编:钱曙光,关注架构和算法领域,寻求报道或者投稿请发邮件qianshg@csdn.net,另有「...

  • Rustgo: 用Golang轻轻松松调用Rust

    原文:RUSTGO: CALLING RUST FROM GO WITH NEAR-ZERO OVERHEAD 作者:Filippo Valsorda 翻译:雁惊寒 摘要:本文介绍了在Go中调用Rust代码这个实验。你无需知道Rust或者编译器的内部原理,只需知道链接器有什么...

  • CentOS8 安装 安装操作系统时软件选择已选环境的额外软件

    本文介绍在RHEL 8/CentOS 8系统上安装GCC和Development Tools(开发工具)的方法。如果要在RHEL/CentOS 8上进行开发或构建开源应用程序,则需要安装包含的Development tools有:autoconf、automake、gcc、gcc-c++、...

  • 驳2B文 "我为什么放弃Go语言"

    此篇文章流传甚广, 其实里面没啥... 最近因为 Rust 1.0 和 1.1 的发布, 导致这个文章又出来毒害读者. 所以写了这篇反驳文章, 指出其中的问题. 原文链接:http://blog.csdn.net/liigo/article/details/23699459 ...

  • 驳狗屎文 "我为什么放弃Go语言"

    驳狗屎文 "我为什么放弃Go语言" 此篇文章流传甚广, 其实里面没啥干货, 而且里面很多观点是有问题的. 这个文章在 golang-china 很早就讨论过了. 最近因为 Rust 1.0 和 1.1 的发布, 导致这个文章又出来毒害...

  • FPB 2.0:免费的计算机编程类中文书籍 2.0

    UNIX TOOLBOX Docker中文指南 Docker —— 从入门到实践 Docker入门实战 Docker Cheat Sheet FreeRADIUS新手入门 Mac 开发配置手册 FreeBSD 使用手册 Linux 命令行(中文版) Linux 构建指南 ...

  • 后端学Linux

    Unix操作系统下的shell既是用户交互的界面,也是控制系统的脚本语言。 bash是shell的一种,是Linux默认shell。 在早年的UNIX年代,发展者众多,所以就有许多不同的版本,例如Bourne shell(sh),这也是必然的,每...

  • 免费的编程中文书籍索引

    免费的编程中文书籍索引 ...免费的编程中文书籍索引,欢迎投稿。 国外程序员在 stackoverflow 推荐的程序员必读书籍,中文版。 stackoverflow 上的程序员应该...编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编

  • 各语言归类整理

    编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式...

  • Github项目分享——免费的编程中文书籍索引

    免费的编程中文书籍索引 祝大家除夕快乐,今天给大家推荐一个编程电子书的项目,...编译原理 函数式概念 计算机图形学 WEB服务器 版本控制 编辑器 NoSQL PostgreSQL MySQL 管理和监控 项目相关 设计模式 Web 大数据

  • 开源电子书

    操作系统 开源世界旅行手册 鸟哥的Linux私房菜 The Linux Command Line(中英文版) Linux 设备驱动(第三版) 深入分析Linux内核源码 UNIX TOOLBOX Docker中文指南 Docker —— 从入门到实践 Docker入门实战...

  • 太阳能自动灌溉系统:基于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等)。

  • 幼儿园教师师德培训教学课件.pptx

    幼儿园教师师德培训教学课件

  • JavaWeb电商系统开发基础教程

    JavaWeb技术在当今的互联网开发中占据着重要的地位,尤其是在电商系统开发领域。通过JavaWeb,我们可以构建出功能强大、稳定可靠的电商网站。本教程将带你从零开始,逐步掌握JavaWeb电商系统开发的基础知识和技能。

Global site tag (gtag.js) - Google Analytics