撰写于 2023
  • zig 构建系统解析 - 第三部分

    2023-12-29 在 博客

    原文链接: https://zig.news/xq/zig-build-explained-part-3-1ima API 适配到 Zig 0.11.0 版本 从现在起,我将只提供一个最精简的 build.zig,用来说明解决一个问题所需的步骤。如果你想了解如何将所有这些文件粘合到一个构建文件中,请阅读本系列第一篇文章。 复合项目 有很多简单的项目只包含一个可执行文件。但是,一旦开始编写库,就必须对其进行测试,通常会编写一个或多个示例应用程序。当人们开始使用外部软件包、C 语言库、生成代码等 …

    更多

  • zig 构建系统解析 - 第二部分

    2023-12-28 在 博客

    原文链接: https://zig.news/xq/zig-build-explained-part-2-1850 API 适配到 Zig 0.11.0 版本 注释 从现在起,我将只提供一个最精简的 build.zig,用来说明解决一个问题所需的步骤。如果你想了解如何将所有这些文件粘合到一个构建文件中,请阅读本系列第一篇文章。 在命令行上编译 C 代码 Zig 有两种编译 C 代码的方法,而且这两种很容易混淆。 使用 zig cc Zig 提供了 LLVM c 编译器 clang。 …

    更多

  • ZigCC 第二次线上会议

    2023-12-27 在 社区新闻

    2023-12-23,ZigCC 社区开始了第二次线上会议,共有 5 名 Zig 爱好者参加,分别是: 西瓜 贺鹏 Lambert 冯文轩 Reco 这次会议主要是同步了之前会议落实的 action,主要是同步了不同项目的进展,由于临近年底,大家进度都不算太大,但还是有所进展,算是开了个好头😄 项目进展 Zig-OS 主要参与人员:西瓜 进展:粗略看完 rust 版本的教程;完成 freestanding 二进制,现在卡在了 bootloader 阶段 Learn zig 主要参与人员: …

    更多

  • zig 构建系统解析 - 第一部分

    2023-12-24 在 博客

    原文链接: https://zig.news/xq/zig-build-explained-part-1-59lf API 适配到 Zig 0.11.0 版本 Zig 构建系统仍然缺少文档,对很多人来说,这是不使用它的致命理由。还有一些人经常寻找构建项目的秘诀,但也在与构建系统作斗争。 本系列试图深入介绍构建系统及其使用方法。 我们将从一个刚刚初始化的 Zig 项目开始,逐步深入到更复杂的项目。在此过程中,我们将学习如何使用库和软件包、添加 C 代码,甚至如何创建自己的构建步骤。 免责声明 由 …

    更多

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

    2023-12-11 在 社区新闻

    2023 年 12 月 9 日,Zig 中文社区第一次线上会议隆重召开。共有 8 位 Zig 爱好者参加,分布在北上杭成、美国等不同地方。 会议参会人员 和当年的从仙童半导体出逃的人数一样,不多不少。😄 硅谷八叛徒 会议伊始,成员首先进行了个人简介,便于后续开展相应工作。随后,社区成员围绕 Zig 语言的普及进行了交流讨论。 在交流讨论环节,大家就 Zig 语言的普及面临的挑战和机遇进行了深入的探讨。其中,大家认为 Zig 语言的普及面临的主要挑战包括: Zig 语言是一个新兴的语言,知名度还 …

    更多

  • Zig 多版本管理

    2023-10-14 在 博客

    由于 Zig 还在快速开发迭代中,因此项目很有可能出现新版本 Zig 无法编译的情况,这时候一方面可以跟踪上游进展,看看是否有 workaround,另一个就是使用固定的版本来开发这个项目,显然这种方式更靠谱一些,因此这篇文章就来介绍一些管理多个 Zig 版本的方式。 Zig version manager 现在 Zig 的版本管理工具主要有如下几个: marler8997/zigup Download and manage zig compilers tristanisham/zvm …

    更多

  • Zig音频之MIDI —— 源码解读

    2023-09-21 在 博客

    MIDI 是“乐器数字接口”的缩写,是一种用于音乐设备之间通信的协议。而 zig-midi 主要是在对 MIDI 的元数据、音频头等元数据进行一些处理的方法上进行了集成。 1 2 3 4 5 6 7 8 9 10 11 12 . ├── LICENSE ├── ReadMe.md ├── build.zig ├── example │ └── midi_file_to_text_stream.zig ├── midi │ ├── decode.zig │ ├── encode.zig │ ├── …

    更多

  • 欢迎 Zig 爱好者向本网站供稿

    2023-09-05 在 博客

    欢迎社区用户向 ZigCC 供稿(关于 Zig 的任何话题),方便与社区更多人分享。文章会发布在: ZigCC 网站 ZigCC 公众号 供稿方式 Fork 仓库 https://github.com/zigcc/zigcc.github.io 在 content/post 内添加自己的文章(md 或 org 格式均可),文件命名为: ${YYYY}-${MM}-${DD}-${SLUG}.md 文件开始需要包含一些描述信息,例如本文件中的: 1 2 3 4 5 --- title: …

    更多

  • Bog GC 设计 -- 概念篇

    2023-09-05 在 博客

    Bog 是一款基于 Zig 开发的小型脚本语言。它的 GC 设计受到一篇论文An efficient of Non-Moving GC for Function languages的启发。 梗概 概述 Heap 的设计 GC 的类别 Bitmap 的设计 实现 概述 GC 是一种垃圾回收的机制,主要是针对heap区域的内存管理策略。在堆中的内存分配是按照指数级增长的大小进行的,此外还有一个专门用于非常大对象的特殊子堆。这种方法的一个优点可能是它可以高效地处理各种大小的内存请求。 以公式来进行表 …

    更多

  • Bog GC Design

    2023-09-05 在 博客

    Bog GC Design Bog is a small scripting language developed using Zig. Its GC design is inspired by a paper titled An efficient of Non-Moving GC for Function languages. Overview Introduction Design of the Heap Types of GC Design of Bitmap …

    更多