Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

补充文章示例代码 #20

Open
jiacai2050 opened this issue Jan 14, 2024 · 6 comments
Open

补充文章示例代码 #20

jiacai2050 opened this issue Jan 14, 2024 · 6 comments

Comments

@jiacai2050
Copy link
Member

jiacai2050 commented Jan 14, 2024

一般来说,文章中或多或少都会有些 Zig 代码,为了保证文章中的代码无误,最好的方式是可以直接运行。

目前来说,Zig 社区没有可靠在线版本的 playground ,因此想的是把文章中的示例代码单独开一个项目,
放在 examples 目录内,每个文章对应一个子目录,然后把相关代码手动拷贝到文章中,这样虽然也不完美,但应该是最具可操作性的方式。

需要处理的文章:

希望感兴趣的朋友可以认领任务,直接在 issue 下留言即可,防止与其他人冲突。

PS: 可以用这里推荐的方式安装 Zig

@qcjxberin
Copy link

@1000copy
Copy link
Contributor

1000copy commented Jan 14, 2024

你提到的文章的代码,我在翻译的时候已经做了。

文章对应的可以直接运行的代码在这里:https://github.com/1000copy/zigcc/tree/main/zigbuildmd/src

代码目录名和文章内代码块的标注内的编号一致。

比如文章代码的编号

//代码块1.1

对应仓库的目录1.1

可以直接链接,或者我来PR。
@jiacai2050 @qcjxberin

@jiacai2050
Copy link
Member Author

可以的,我看目录有些多,能不能一个文章就放一个工程?

@1000copy
Copy link
Contributor

issue中提到的三篇文章代码之前我做的,接着我来做吧。😄@ALL

群主说的“现在目录有点多,是否可以一个文章对应一个目录?”

这个可能需要重新合并组织代码。晚点看看代码看好不好改。

目前的配套代码分很多目录的做法是为了最大程度和文章配合,因为每一篇文章内的代码都有编号,

好处是:

  1. 文章内代码看不懂的话可以通过编号找到可执行的配套代码目录
  2. 且代码仅仅服务于文章上下文从而读者易于理解。
    3.构建中涉及到的代码比如c代码,zig代码,c++代码,案例中本来各不相关,无需把他们混在一起或者另外内部再分目录
    坏处是:目录多。

@1000copy
Copy link
Contributor

已经PR。请review😄 @jiacai2050

PR链接: #21

PR说明

  1. 本目录内代码为Zig构建系统解析系列文章的配套代码,这些配套代码都是可以通过$zig build以及zig build run来构建和运行的
  2. Zig构建系统解析共三个部分,配套代码分别在三个子目录内,分别为part1,part2,part3
  3. 文章发内的代码段都有编号,编号在代码块的第一行的标注内,此编号对应代码工程文件的目录,比如代码编号为1.1的,对于的代码在part1/1.1
  4. 每一个代码块的对应工程目录内都有一个build.zig文件,当你看到此文件,就意味着可以使用$zig build run命令来构建并运行
  5. build.zig依赖的zig文件,c文件,m文件等都在对应目录之内,可以查看build.zig了解工程依赖的文件清单

@1000copy
Copy link
Contributor

1000copy commented Jan 15, 2024

再次PR完毕

为了通过./run-all.sh的规范检查,借用 @jiacai2050 的一些shell代码,稍作修改做了一些自动化,已经可以自动运行全部共26个build.zig。

遗留问题

原作者的第三章的3.7代码块的虽然可以看得懂,经过我的工作后可以编译,但是没有提供源代码仓库和对应执行构建需要的依赖文件,无法正常运行。比如构建中依赖的review-parser.l文法文件没有提供(我看遍文章没有链接提供看了他的仓库和zig有关的也没有这个仓库)。

尝试根据上下文去推断效果不佳。

暂时把运行时依赖缺少导致的会报错的代码做了标注处理。

临时方案

先保证代码的可以编译和规范化。后续再考虑如何彻底解决此问题。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants