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


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

查看所有标签

猜你喜欢:

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

Web安全测试

Web安全测试

霍普(Paco Hope)、沃尔瑟(Ben Waltber) / 傅鑫 / 清华大学出版社 / 2010-3 / 39.00元

《Web安全测试》内容简介:在你对Web应用所执行的测试中,安全测试可能是最重要的,但它却常常是最容易被忽略的。《Web安全测试》中的秘诀演示了开发和测试人员在进行单元测试、回归测试或探索性测试的同时,如何去检查最常见的Web安全问题。与即兴的安全评估不同的是,这些秘诀是可重复的、简洁的、系统的——可以完美地集成到你的常规测试套装中。 《Web安全测试》中的秘诀所覆盖的基础知识包括了从观察客......一起来看看 《Web安全测试》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

RGB HSV 转换
RGB HSV 转换

RGB HSV 互转工具