这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

社区新闻

我们会不定期举行线上会议来畅聊 Zig,感兴趣的朋友可以通过下面日历查看,或订阅这个 iCalendar

线上会议地址:https://discord.gg/36C7H47t47?event=1304329702512787466

0.12.0 Release Party 回顾

2024-04-20,0.12.0 终于发布了,历时 8 个月,有 268 位贡献者,一共进行了 3688 次提交!下面是它的 Release notes:

ZigCC 对这个文档进行了翻译、整理,供需要升级适配的朋友参考:

为了庆祝这一盛事,ZigCC 决定在 2024-04-27 举行了一次线上的发行聚会,主要来讨论这次的版本,下面是视频回看地址:

在这次会议上,主要讨论了两部分内容:

第一是构建系统,0.12.0 版本对用户来说,主要是稳定了构建系统的 API,这对于 Zig 生态的构建十分重要,如果某用户写了一个基础库,但是升级 Zig 版本后,就没法编译了,可以想象,这是很沮丧的事情。

Zig 的构建系统分为两部分:

  • zon 文件,声明依赖, zig fetch 会去下载里面的依赖
  • build.zig 文件,项目的构建器,由多个 Step 形成一个有向无环图,来驱动不同逻辑的进行,如安装头文件、编译静态链接库等。Step 里面最重要的是 Compile ,addTest、addExecutable 返回的都是它,主要功能是对代码进行编译。其他常见的 Step 还有

    • ConfigHeader 配置要用的头文件
    • InstallArtifact,将编译好的 lib 或 bin 安装到 zig-out 目录中

第二个是自己写的 x86 的后端,它可以不依赖 llvm 直接生成可以执行的汇编代码,这也是 make the main zig executable no longer depend on LLVM, LLD, and Clang libraries #16270 这个 issue 的基础。之前笔者以为所谓移除 llvm,是把 Zig 代码翻译成 C 代码,然后再有不同架构下的 C 编译器来生成最终的可执行文件,目前看这种想法是错误的, 尽管 Zig 有 C 这个后端,但目前看并不是解决这个 issue 专用的。

这就不得不好奇,Zig 团队难道要把生成所有架构下的二进制?还是说对于用的少的架构,直接生成 llvm 的 bc 文件,然后剩下的活再交给 llvm 去做? 目前笔者还没有十分明确的答案,希望今后能尽快搞清楚这个问题,也欢迎了解的读者留言指出。

稍微遗憾的是这次参会的朋友基本都还是处于观望阶段,希望下次能有些具体项目经验可以聊,See you next time!

ZigCC 第三次线上会议

在 2024-01-13 晚,ZigCC 社区举行了第三次线上会议,参会人员:

会议主要讨论了下面两个议题:

  • 公众号运营
  • 如何与其他社区互动

公众号运营

这是最近群里聊到的问题,由于 Zig 语言本身属于较新的技术,因此社区内资料比较少,这导致很多感兴趣的人没有一个好的学习途径。

但对中文环境来说,我们其实之前已经积攒了一些素材,是完全可以通过公众号的形式进行传播的,主要来源:

目前可以按照 Rust 日报的方式,每日截取其中的片段进行发送,方便读者在闲暇浏览阅读;另一方面,公众号也会介绍 awesome-zig 中的实际项目,同步他们的进展。

虽然名字是『Zig 日报』,但应该不会每天都发,毕竟 Zig 社区还比较年轻,但估计间隔不会超过 3 天,看后续运行实际效果再来调整频率。

主要参与人员:西瓜、金中甲

社区互动

目前我们的成员在 Zig 的实践方面相对较少,因此决定目前不过多的去宣传,在积攒了一些实际项目经验后,再来考虑。

欢迎更多朋友加入 ZigCC

现在回看,距离第一次 ZigCC 线上会议过了一个月,经过 ZigCC 成员的努力,还是交出了一份比较满意的答卷,cookbook 项目斩获 400+ 的⭐️,而且我们也有了新的 logo,另外要感谢金中甲同学,他把之前自己写的教程捐给了 ZigCC,质量非常高,因此我们决定把他重命名为 Zig 语言圣经,熟悉 Rust 的朋友可能会知道原因。😃

也许在读文章的你也在犹豫是否能加入,担心没有 Zig 经验是否会有影响,其实这都不是核心,现在的成员也没说 Zig 经验有多丰富,只要有踏实做事的心态,愿意帮助他人即可,Zig 可以慢慢学,有想法的朋友可以邮件到 zig@liujiacai.net ,简单自我介绍,之后我会拉到对应群组中,便于开展后续的工作。

ZigCC 第二次线上会议

2023-12-23,ZigCC 社区开始了第二次线上会议,共有 5 名 Zig 爱好者参加,分别是:

这次会议主要是同步了之前会议落实的 action,主要是同步了不同项目的进展,由于临近年底,大家进度都不算太大,但还是有所进展,算是开了个好头😄

项目进展

Zig-OS

  • 主要参与人员:西瓜
  • 进展:粗略看完 rust 版本的教程;完成 freestanding 二进制,现在卡在了 bootloader 阶段

Learn zig

  • 主要参与人员:金中甲
  • zig的进阶特性,诸如构建系统、包管理、与C交互均已完成,目前教程内容已基本覆盖日常使用
  • 增加了评论区的功能
  • 待完成:反射(编译期反射和运行时反射)、内建函数说明(包含使用例子)、未定义行为、wasm、原子操作这些边缘部分

Zig 教学视频

Zig cookbook

  • 主要参与人员:夜白、西瓜
  • 已经完成大部分内容 👍

Zig 构建系统教程

新人介绍

在第一次会议后,有一些朋友想加入 ZigCC 社区,经过简单筛选,新增一名成员:Reco,下面是他的一些履历:

  • 南美 Optimes co.,limited 联合创始人、CTO
  • 任我行软件股份有限公司 集团CTO

其他技术兴趣经历

  1. 图灵出版社区签约作者。4本电子系列书:《Vue.js小书》《Git小书》《HTTP小书》《Swift iOS开发小书》
  2. 微软 DotNet 技术俱乐部 2007-2010年成都地区主席
  3. https://github.com/1000copy

非常欢迎 Reco 的加入!也希望更多对 Zig 感兴趣的朋友加入我们,普及 Zig 在中文社区内的使用。联系邮箱:zig@liujiacai.net

Zig 语言中文社区第一次线上会议

2023 年 12 月 9 日,Zig 中文社区第一次线上会议隆重召开。共有 8 位 Zig 爱好者参加,分布在北上杭成、美国等不同地方。

会议参会人员

会议参会人员

和当年的从仙童半导体出逃的人数一样,不多不少。😄

硅谷八叛徒

硅谷八叛徒

会议伊始,成员首先进行了个人简介,便于后续开展相应工作。随后,社区成员围绕 Zig 语言的普及进行了交流讨论。

在交流讨论环节,大家就 Zig 语言的普及面临的挑战和机遇进行了深入的探讨。其中,大家认为 Zig 语言的普及面临的主要挑战包括:

  • Zig 语言是一个新兴的语言,知名度还不够高。
  • Zig 语言的生态还不够完善,缺乏成熟的库和工具。

与此同时,大家也认为 Zig 语言的普及也具有一定的机遇,包括:

  • Zig 语言具有很强的性能、安全性和易用性,具有一定的竞争力。
  • Zig 语言的设计理念与 C 语言类似,对于 C 语言开发者来说具有较高的学习成本。

因此,第一阶段,我们打算推出一系列教程来帮助大家学习 Zig,目前主要有以下几个:

项目参与人员目标仓库
Zig 入门教程金中甲让没有编程背景的人可以有体系的学习 Ziglearnzig/learnzig
Zig 教学视频Onion、Lambert同上,素材取自 Learning Zig 中文翻译
Zig cookbook夜白、冯文轩演示如何用 Zig 做某个功能zigcc/zig-cookbook
Zig 构建系统教程贺鹏、陈瑞体验 Zig 编译系统的能力与优势、与其他构建系统的对比zigcc 网站系列文章
Zig 写 OS 教程柠檬、西瓜体现 Zig low level 的优势zigcc/how-to-write-os-in-zig
Zig 惯用法全体收集 Zig 编程技巧zigcc/zig-idioms

我们希望通过这些努力,提高 Zig 语言的知名度,完善 Zig 语言的生态,促进 Zig 语言的交流和学习。

结论

Zig 中文社区第一次线上会议的召开,标志着 Zig 社区正式启航。如果读者对共建社区感兴趣,欢迎与我们联系。

  • 邮箱:zig@liujiacai.net