Zig 0.6.0 发布,想要替换 C 的编程语言

栏目: 软件资讯 · 发布时间: 4年前

内容简介:Zig 0.6.0 已发布,这是一门通用编程语言,专为稳定性、可维护性和性能而设计,追求替代 C 语言在系统编程上的最佳地位。Zig 具有以下值得关注的特性: 手动管理内存 与 C 语言竞争而非依赖它,Zig 标准库不依赖于...

Zig 0.6.0 已发布,这是一门通用编程语言,专为稳定性、可维护性和性能而设计,追求替代 C 语言在系统编程上的最佳地位。Zig 具有以下值得关注的特性:

  • 手动管理内存
  • 与 C 语言竞争而非依赖它,Zig 标准库不依赖于 libc
  • 轻量而简单,专注于调试应用而不是调试编程语言的知识
  • 新的错误处理方法,与编写良好的 C 语言错误处理类似,但减少了很多冗余
  • 调试模式下优化了快速编译时间,并在不确定行为发生时使用堆栈跟踪崩溃
  • ReleaseFast 模式和 ReleaseSafe 模式
  • 泛型数据结构和函数
  • 通过协程实现并发
  • 导入 .h 头文件并直接使用 C 语言的类型、变量和函数
  • 导出要依赖 C 语言代码的函数,变量和类型,自动生成 .h 头文件
  • 可选类型而非空指针
  • 交叉编译是主要用例

Zig 0.6.0 发布,想要替换 C 的编程语言

此版本的开发周期历时 6 个月,有 122 名不同贡献者提交了 2527 次 commit。

Zig 0.6.0 保持与 LLVM 一致的更新节奏,已将 LLVM 升级到最新版 LLVM 10,并且不再兼容 LLVM 9。新的 LLVM 版本主要是修复 Bug,尤其是对 ARM 支持、MIPS 支持、RISC-V 支持等方面的错误修复。

这也是第一个将 Zig 的所有补丁合并到上游的 LLD 版本。因此,Zig 的源码库中不再包含 LLD 源码的 fork,也就意味着源码的 tarball zig-0.6.0.tar.xz 比 zig-0.5.0.tar.xz 小了 0.5MiB,因为删除 LLD 源码比这个发布周期中所有其他的改动加起来还节省了更多的空间。请注意,新的 Bootstrap Tarball 捆绑了 Zig 编译器的所有依赖项,其中包括 LLVM、LLD 和 Clang。

语言特性层面的主要更新包括:

  • 类型强制语法(Type Coercion Syntax):类型强制(以前称为"implicit casting")现在通过@as内置的方式来执行,而不是通过调用一个类型作为函数来执行。
  • Sentinel-Terminated 指针:通过这次修改,Zig 语言既增加了一项特性,同时也删除了一项特性。不再有像c"hello"这样的 C语言 字符串字面量。取而代之的是所有字符串字面量的类型从 []const u8 转变为 *const [N:0]u8,其中 N 是字符串字面量的字节数。
  • 移除 Array-to-Reference 类型强制转换
  • 数值比较:无论类型组合如何,所有数值都可进行比较。例如,小的有符号整数可以和大的无符号整数进行比较,而浮点数也可以和整数进行比较。
  • 匿名的结构体字面量(Anonymous Struct Literals):Zig 现在支持省略结构类型的字面量。
  • 增加 Tuples,删除 Var Args:与匿名的枚举字面量和匿名的结构体字面量类似,类型也可以从数组字面量中省略。
  • SIMD:对 SIMD 的支持还远未完成,但已经取得重大进展。
  • 删除 @newStackCall 方法:@newStackCall 最初用于研究安全递归,但现在安全递归计划通过 Async 函数实现。
  • 非穷举式枚举:可以通过添加尾部的'_'字段来创建一个非穷举式枚举。它必须指定一个整数标记类型,并且不能消耗每个枚举值。
  • Unicode 字符字面量:实现此功能是因为 Zig 被定义为使用 UTF-8 进行源码编码。一个 unicode 字符字面量是一个 comptime_int,其值等于编码点。

详细内容查看发布公告 https://ziglang.org/download/0.6.0/release-notes.html


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

算法之美

算法之美

[美]布莱恩·克里斯汀、[美]汤姆·格里菲思 / 万慧、胡小锐 / 中信出版集团 / 2018-5-20 / 59.00

我们所有人的生活都受到有限空间和有限时间的限制,因此常常面临一系列难以抉择的问题。在一天或者一生的时光里,哪些事是我们应该做的,哪些是应该放弃的?我们对杂乱无序的容忍底线是什么?新的活动与熟悉并喜爱的活动之间如何平衡,才能取得令人愉快的结果?这些看似是人类特有的难题,其实不然,因为计算机也面临同样的问题,计算机科学家几十年来也一直在努力解决这些问题,而他们找到的解决方案可以给我们很多启发。 ......一起来看看 《算法之美》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

随机密码生成器
随机密码生成器

多种字符组合密码