内容简介:Zig 0.5.0 发布了。 Zig 是一门通用编程语言,专为稳定性、可维护性和性能而设计,追求替代 C 语言在系统编程上的最佳地位。Zig 具有以下值得关注的特性: 手动管理内存 与 C 语言竞争而非依赖它,Zig 标准库不依...
Zig 0.5.0 发布了。
Zig 是一门通用编程语言,专为稳定性、可维护性和性能而设计,追求替代 C 语言在系统编程上的最佳地位。Zig 具有以下值得关注的特性:
- 手动管理内存
- 与 C 语言竞争而非依赖它,Zig 标准库不依赖于 libc
- 轻量而简单,专注于调试应用而不是调试编程语言的知识
- 新的错误处理方法,与编写良好的 C 语言错误处理类似,但减少了很多冗余
- 调试模式下优化了快速编译时间,并在不确定行为发生时使用堆栈跟踪崩溃
- ReleaseFast 模式和 ReleaseSafe 模式
- 泛型数据结构和函数
- 通过协程实现并发
- 导入 .h 头文件并直接使用 C 语言的类型、变量和函数
- 导出要依赖 C 语言代码的函数,变量和类型,自动生成 .h 头文件
- 可选类型而非空指针
- 交叉编译是主要用例
0.5.0 版本经过 6 个月打磨,包括了 1541 次 commit,带来了许多新的内容。
Zig 跟随 LLVM 的步伐,前几天 LLVM 9 发布了,所以 Zig 目前升级到了 LLVM 9,不再兼容 LLVM 8。值得注意的是,这意味着 Zig 现在支持 RISC-V。同时 Zig 还可以以 Emscripten 为编译目标操作系统。Emscripten 是一个独特的 LLVM 后端,它可以将 LLVM 字节码编译成 JavaScript(asm.js),往上追溯其实也就是通过 Clang 将 C 和 C++ 代码编译成 JavaScript(asm.js),可以大大简化现有代码在 Web 时代的重用。除了 asm.js,Emscripten 还支持 WebAssembly 这一更加先进的 Web 技术,通过与 asm.js 类似的机制,Emscripten 可以生成 WASM 二进制字节码。
目前 Emscripten 还不能自托管,之后可行的情况下,可以使用 WebAssembly 将其作为浏览器中的 Zig 沙箱选项。
语言特性层面的主要更新包括:
- 切片类型不再具有字段访问,而是使用
@typeInfo(Slice).Pointer.child
。 - 枚举文字隐式 cast 为带标记的 union。
- 允许将可选指针隐式 cast 为可选
c_void
指针。 - 添加了
*[N]T
隐式 cast 到[*c]T
。 anyerror
不再作为关键字。- @cmpxchgStrong 和 @cmpxchgWeak 现在在 x86_64 上支持 128 位整数。
comptime_int
现在隐式 cast 为comptime_float
。- @typeOf 现在保证没有运行时副作用。
noinline
函数声明中添加了关键字。- 现在可以比较并集标记和枚举文字。
- 单元素
enum
默认设置为u0
,comptime_int
仍允许作为显式枚举标签类型。
完整更新内容查看发布公告:
https://ziglang.org/download/0.5.0/release-notes.html
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- Zig 0.6.0 发布,想要替换 C 的编程语言
- Zig 0.7.0 发布,想要替换 C 的编程语言
- Zig 0.7.1 发布,想要替换 C 的编程语言
- CSS 基础:块级元素、行内元素、替换元素、非替换元素
- Vim 中怎么将目标字符替换成新行以及如何替换换行符
- PowerShell正则替换实战
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
Boolean Reasoning
Brown, Frank Markham / 2003-4 / $ 19.15
A systematic treatment of Boolean reasoning, this concise, newly revised edition combines the works of early logicians with recent investigations, including previously unpublished research results. Th......一起来看看 《Boolean Reasoning》 这本书的介绍吧!