回应模式 - No.67821632


No.67821632 - 技术宅


无标题无名氏No.67821632 只看PO

2026-01-08(四)15:20:10 ID:vslNeW2 回应

一个并不是从零开始的 llvm 开发日志

编译器开发什么的真是令人头大|ー` )

之前在博客写了不少开发日志,不过由于更新网站要开电脑跑 awk 脚本,并不是很方便,所以准备在这里开个串做一点简单记录 (`・ω・)

无标题无名氏No.67867477

2026-01-15(四)10:59:08 ID: vslNeW2 (PO主)

今天下午两点有软件所主办的 LLVM Tech Meetup:

https://community.riscv.org/e/m29dgj/

报名+参会免费,主题是 RVV 向量化和RISC-V P 扩展及其 LLVM 支持现状简介,在北京的友友感兴趣可以去看看(

无标题无名氏No.67928268

2026-01-23(五)17:36:21 ID: vslNeW2 (PO主)

/dev/log04

在折腾完内核开发赛(并把剩余参赛队当鱼炸)后进入了摆烂模式,醒着的时候就在 Minecraft 启动,昨天又开始拉电线坐牢,感觉这破游戏玩不下去一点。

期末周计算机网络和概率论的一天速通非常成功,两门一点都没学的课居然都没挂,喜提 3.3,感谢老师不杀之恩 ( ´∀`)

LLVM 这里有一点产出,但不多:

- 修了一个和宏相关的 assertion failure 问题。

- 修了一个 parenthesized functions 的错误 fixits。

- 把之前 Clang-tidy 中 CUDA 相关的文档给合进去了,新的文档可以在这里看:https://clang.llvm.org/extra/clang-tidy/#running-clang-tidy-on-cuda-files

- doc8 配置更新:在 Google 两位工程师 (Florian Mayer 和 Rohan Jacob-Rao) 的清理后,clang-tidy 的 doc8 配置终于不需要各种奇怪的 hack 了,好事。

- 尝试修了下 check_clang_tidy.py,这个 python 脚本居然不支持检查头文件,这个缺失功能就这么放了一年,简直离谱!所以趁有时间就顺手修掉了,不过现在还没有足够的 Reviewer 来审。唉,Reviewing Bandwith.

- 修了一个 21.1.8 下的 False Positive,不过现在还没什么人来审。鬼故事:在修这个 FP 的时候又发现了一个新的 FP:https://clang-tidy.godbolt.org/z/e8eMav36f

- 有一个没有及时合并的修复需要重新拉进 22.x 的分支里,借这个机会学习了一下怎么给 LLVM 的 Commits 做 backport,只需要在评论区输入 /cherry-pick <hash> 就可以了,感觉很方便。

- 每日两到三个 Code Review,有了 Gemini 这个反而成了花力气最少的部分。

这个月其他的也不想干了,剩下时间就继续拉电线了。这辈子彻底有了,哈哈。

无标题无名氏No.68010775

2026-02-04(三)21:45:37 ID: vslNeW2 (PO主)

/dev/log05

做手术前再来💧一篇开发日志,虽然这十天其实也没干什么|ー` )

首先,在卡池里经历了漫长的折磨后,我卸载了拉电线神游。

不打游戏省出来的时间主要在忙着重构博客 <del>抄明日方舟的设计</del>,拼尽全力糊出来一个能跑的玩意: https://broken.life/ (建议用电脑/平板,我前端能力一坨,手机端不知道怎么做适配直接摆了)

然后闲着没事干重新排了一份简历,抱着半玩票的心态投给了 2012,虽然感觉看到我本科都没毕业大概直接就被筛了.. 上次 2012 员工找我聊天的时候问了我年龄,随后直接变成了 "想了解开源社区的项目随时交流",难绷(

实验室的项目目前进展也不太良好,上次和导师开完小会给完方案后就躺了,打算手术后看看怎么实现,寄。

虽然最近疯狂摸鱼,但在 LLVM 里也还是做了一些事情:

- 修了下 bugprone-macro-parentheses 的诊断信息

虽然 clang-tidy 不应该诊断命令行的参数,但这个 check 添加支持很简单,那顺手修了也挺好。

- 修了下 performance-enum-size 对 extern "C" 的一些错误分析,日常改 Matcher..

- 为 readability-non-const-parameter 加了一些 corner case 的支持

- 修了一个有 bug 的 python 脚本,顺带给文档和 list.rst 打了个补丁

之前在 Review 其他 PR 时,在 list.rst 里时不时就能发现一些很奇怪的修改,原先以为是 PR 作者在 Merging 的时候出了问题,后面发现好像并不是。添加 check 的脚本对代码库做了一些不完全正确的假设,导致重新生成内容的时候搞乱了整个排序。

- 给 MLIR 修了一个 arith.select 相关的 crash,这个 PATCH 没什么技术含量

- 修了 clang-tidy 代码库里的 unchecked-optional-access 警告,之前已经遇到过因为这些警告而导致程序崩溃的例子了,故干脆一起修了。

- 每日 3-4 个 PR Review,感觉已经快成 daily routine 了

今天凌晨另一位国内的 Contributor 私信我了一个 RFC:https://discourse.llvm.org/t/rfc-remove-80-column-limit-in-documentation-files/89678,很不幸的是 clang-tidy 文档相关的 CI 是我搓的,那后面还得更进一下这个 RFC 的进展,可能还要改配置,但已有的文档怎么处理就不知道了

以及 GSoC 2026 要开始了,LLVM 相关的 Project 已经可以在 https://discourse.llvm.org/tag/gsoc2026 看到了,GCC 相关的讨论目前似乎还只是在邮件列表里,三月份应该会公开具体信息。

完成项目的话应该能拿几千美刀和一个 Google 发的证书,感兴趣可以看看,不一定要有很强的编译器相关背景,例如:https://discourse.llvm.org/t/gsoc-2026-improving-clang-doc/89662 这个关于文档优化的项目会前端就行。

三月的进度更新无名氏No.68231706

2026-03-07(六)16:20:51 ID: vslNeW2 (PO主)

/dev/log06

由于寒假忙着做手术和打游戏,导致没有写开发日志,开学了补上。

最近遇到的一个好事是自己成为了 Clang-tidy 的 Maintainer (https://clang.llvm.org/extra/Maintainers.html),这是我第一次以真实身份在开源社区出道,算是满足了自己的一个小目标。

同时过去的一个月也做了不少事情:

首先,我的个人项目 CTIT (https://github.com/clang-tidy-infra/CTIT) 完成了初步的开发,且已经被几个 Reviewers/Maintainers 用上了。

它的功能是把 PR 的修改自动 apply 到 clang-tidy 的 codebase 上并编译,然后在大型开源项目(如 cppcheck, clang, curl)上运行来检测运行时崩溃、功能退化及误报变化,我还在里面塞了一个小的 AI Agent 来对 Logs 做自动分析。

LLVM 上的一些 PATCH 总结:
- 更新了一下 Clang-tidy 的文档,提醒 check authors 在写测试的时候要指定具体的语言 standards (https://github.com/llvm/llvm-project/pull/184750)

简单来说就是没有特殊情况写 `-std=c..-or-later`

- 修了 `misc-throw-by-value-catch-by-reference` 里两个完全失效的 Options (https://github.com/llvm/llvm-project/pull/184750)

非常诡异,这种代码是怎么进到仓库里的,之前的 Reviewer 在审什么东西.

- 两个补测试覆盖率的 NFC Patches (https://github.com/llvm/llvm-project/pull/184015 和 https://github.com/llvm/llvm-project/pull/184708)

- 修复了一个和 Attributes 相关的问题 (https://github.com/llvm/llvm-project/pull/184095)

第一次知道原来 Clang 的 Frontend 会把多个连续的 AttributedStmt 压缩成一个

- 给一个 check 加上了部分缺失的重载 (https://github.com/llvm/llvm-project/pull/183300)

我感觉 Clang-tidy 有很多类似的问题,不知道有没有办法根据标准库的函数声明来做针对性的自动化测试。

- 修了一个 readability-container-size-empty 中的 Assert Crash (https://github.com/llvm/llvm-project/pull/181557)

getName() 前不做 Sanity check 是坏文明,虽然我自己有时候也会写出这样不好的代码...

- 一个会影响 Clang-tidy 的 Clang Issue: https://github.com/llvm/llvm-project/pull/181712

Aaron 的评论让我学到了很多架构设计上的新知识:

> SDiagsWriter is a subclass of DiagnosticConsumer which defines the contract for finish(). So this means some subclasses will automagically handle finish() while others won't. WDYT about calling finish() explicitly in tooling? That means any diagnostic consumer will behave correctly, not just serialized diagnostics.

- 修了一个因为没有测试覆盖而导致的 Crash: https://github.com/llvm/llvm-project/pull/180351

这个 PR 也是我开始加强 Clang-tidy 测试覆盖率的主要原因。

- 更新了失效的 HICPP 文档链接: https://github.com/llvm/llvm-project/pull/180525

这个 PR 在社区里引起了一些其他讨论: https://discourse.llvm.org/t/rfc-regarding-the-current-status-of-hicpp-checks/89883/3

目前的共识是:HICPP 的 check 需要先重命名到别的 module 里,然后再考虑要不要直接删掉整个 module.

自己过去的一个 Commit 莫名其妙上了 LLVM Weekly Report: https://llvmweekly.org/issue/630,虽然只有一行 (争取以后做出更酷炫的成果)

---

编译器社区的一些新闻:

- https://discourse.llvm.org/t/rfc-ai-assisted-bazel-fixer-bot/89178/94

社区里吵了很久的 AI Bazel Bot 尘埃落定,还是放行了。

- Clang 22.1.0 发布:
https://releases.llvm.org/22.1.0/tools/clang/docs/ReleaseNotes.html
https://releases.llvm.org/22.1.0/tools/clang/tools/extra/docs/ReleaseNotes.html

- 世界上最流行的 C++ LSP 工具(之一) Clangd 处在爆炸的边缘:https://discourse.llvm.org/t/help-needed-with-clangd-maintenance/89820

支持 clice.io 谢谢喵

- GSoC 2026 如火如荼进行中!

QEMU: 快照快速加载、USB 设备重定向、vhost-user 内存隔离、COCONUT-SVSM 中支持 x86 PCID、SCSI 磁带设备模拟...

LLVM: https://discourse.llvm.org/t/gsoc-2026-projects-proposals-and-other-information/89967

---

生活琐事:

之前提到了给 2012 投简历的事情,由于官网那边完全没回复,所以我直接尝试微信私聊他们员工了,在等了两天后:

> 有的哈,今年岗位三月底开放,流程要届时才能推进了

也许真的有机会?

以防万一还是投了一些其它的公司,例如阿里平头哥和字节,私下聊天时,朋友给了一个抽象的建议:

> 去 mihoyo 搞 infra

虽然我既不懂游戏开发,也不会做 Infra,但我觉得这个想法实在太有乐子了。于是发动 Connection 获得了一个内推码直接投了简历,更抽象的是米哈游写简历的网页上还要写自己的游戏经历,于是:

崩坏星穹铁道 活跃6-12月 已退坑

现在 HR 初筛,期待开奖 ( ^ω^)

无标题无名氏No.68514546

2026-04-19(日)20:04:05 ID: WHwGeuq

肥哥好强...( ´・ω)

无标题无名氏No.68517364

2026-04-20(一)10:29:03 ID: WHwGeuq

( ゚∀。)7其实想问一下肥哥的学习路径...俺目前自学编程,之前做美术的...
然后最近在琢磨解释器——因为之前学flutter的时候就一直很好奇底层代码是怎么跑起来的,所以就学了...

目前的话...因为项目中代码百分之六十的代码都是ai写俺看过之后照着抄,很多东西基本都是一知半解,以至于进入静态分析之类的深水区之后就开始摸不着头脑不知道怎么设计了...

( ゚∀。)7所以还是想问道于肥哥...怎么去提升自己对这些方面的认知和经验,因为还是不想什么都靠ai解决...