博客

欢迎大家向我们投稿,会同步到微信公众号,投稿方式见这里

撰写于 2024
  • 通过 Zig,学习 C++ 元编程

    2024-04-06 在 博客

    尽管 Zig 社区宣称 Zig 语言是一个更好的 C (better C),但是我个人在学习 Zig 语言时经常会“触类旁通”C++。在这里列举一些例子来说明我的一些体会,可能会有一些不正确的地方,欢迎批评指正。 “元能力” vs “元类型” 在我看来,C++的增强方式是希望赋予语言一种“元能力”,能够让人重新发明新的类型,使得使用 C++的程序员使用自定义的类型,进行一种类似于“领域内语言”(DSL)编程。一个通常的说法就是 C++中任何类型定义都像是在模仿基本类型int。 …

    更多

  • ZigCC 第三次线上会议

    2024-01-14 在 社区新闻

    在 2024-01-13 晚,ZigCC 社区举行了第三次线上会议,参会人员: 西瓜 Lambert 金中甲 夜白 会议主要讨论了下面两个议题: 公众号运营 如何与其他社区互动 公众号运营 这是最近群里聊到的问题,由于 Zig 语言本身属于较新的技术,因此社区内资料比较少,这导致很多感兴趣的人没有一个好的学习途径。 但对中文环境来说,我们其实之前已经积攒了一些素材,是完全可以通过公众号的形式进行传播的,主要来源: Learning Zig 中文翻译 Zig 语言圣经 Zig Cookbook …

    更多

  • 如何发布 Zig 应用程序

    2024-01-12 在 博客

    原文链接: https://zig.news/kristoff/how-to-release-your-zig-applications-2h90 API 适配到 Zig 0.12.0 版本 本文配套代码在这里找到 你刚用 Zig 写了一个应用程序,并希望其他人使用它。 让用户方便使用的一种方式是为他们提供应用程序的预构建可执行文件。 接下来,我将讨论一个好的发版流程所需要正确处理的两个主要事项。 为什么提供预构建的可执行文件? 鉴于 C/C++ 依赖系统如何工作(或者说 不工作), …

    更多

撰写于 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 │ ├── …

    更多