补充文章示例代码
Closed this issue · 6 comments
一般来说,文章中或多或少都会有些 Zig 代码,为了保证文章中的代码无误,最好的方式是可以直接运行。
目前来说,Zig 社区没有可靠在线版本的 playground ,因此想的是把文章中的示例代码单独开一个项目,
放在 examples 目录内,每个文章对应一个子目录,然后把相关代码手动拷贝到文章中,这样虽然也不完美,但应该是最具可操作性的方式。
需要处理的文章:
- https://zigcc.github.io/post/2023/12/24/zig-build-explained-part1/
- https://zigcc.github.io/post/2023/12/28/zig-build-explained-part2/
- https://zigcc.github.io/post/2023/12/29/zig-build-explained-part3/
希望感兴趣的朋友可以认领任务,直接在 issue 下留言即可,防止与其他人冲突。
PS: 可以用这里推荐的方式安装 Zig
你提到的文章的代码,我在翻译的时候已经做了。
文章对应的可以直接运行的代码在这里:https://github.com/1000copy/zigcc/tree/main/zigbuildmd/src 。
代码目录名和文章内代码块的标注内的编号一致。
比如文章代码的编号
//代码块1.1
对应仓库的目录1.1
可以直接链接,或者我来PR。
@jiacai2050 @qcjxberin
可以的,我看目录有些多,能不能一个文章就放一个工程?
issue中提到的三篇文章代码之前我做的,接着我来做吧。😄@ALL
群主说的“现在目录有点多,是否可以一个文章对应一个目录?”
这个可能需要重新合并组织代码。晚点看看代码看好不好改。
目前的配套代码分很多目录的做法是为了最大程度和文章配合,因为每一篇文章内的代码都有编号,
好处是:
- 文章内代码看不懂的话可以通过编号找到可执行的配套代码目录
- 且代码仅仅服务于文章上下文从而读者易于理解。
3.构建中涉及到的代码比如c代码,zig代码,c++代码,案例中本来各不相关,无需把他们混在一起或者另外内部再分目录
坏处是:目录多。
已经PR。请review😄 @jiacai2050
PR链接: #21
PR说明
- 本目录内代码为
Zig构建系统解析系列文章的配套代码,这些配套代码都是可以通过$zig build以及zig build run来构建和运行的 Zig构建系统解析共三个部分,配套代码分别在三个子目录内,分别为part1,part2,part3内- 文章发内的代码段都有编号,编号在代码块的第一行的标注内,此编号对应代码工程文件的目录,比如代码编号为1.1的,对于的代码在
part1/1.1 - 每一个代码块的对应工程目录内都有一个
build.zig文件,当你看到此文件,就意味着可以使用$zig build run命令来构建并运行 - 此
build.zig依赖的zig文件,c文件,m文件等都在对应目录之内,可以查看build.zig了解工程依赖的文件清单
再次PR完毕
为了通过./run-all.sh的规范检查,借用 @jiacai2050 的一些shell代码,稍作修改做了一些自动化,已经可以自动运行全部共26个build.zig。
遗留问题
原作者的第三章的3.7代码块的虽然可以看得懂,经过我的工作后可以编译,但是没有提供源代码仓库和对应执行构建需要的依赖文件,无法正常运行。比如构建中依赖的review-parser.l文法文件没有提供(我看遍文章没有链接提供看了他的仓库和zig有关的也没有这个仓库)。
尝试根据上下文去推断效果不佳。
暂时把运行时依赖缺少导致的会报错的代码做了标注处理。
临时方案
先保证代码的可以编译和规范化。后续再考虑如何彻底解决此问题。