OC
一门 200KB 系统语言让 Claude 重写 GC:828 次崩溃变成 2 万次稳定请求
科技 · 2026-07-13 · 编程语言 · 阅读 8

一门 200KB 系统语言让 Claude 重写 GC:828 次崩溃变成 2 万次稳定请求

作者:林岚

作者 林岚 林岚

据实验项目 freelang 的开发记录,这门不依赖 libc、虚拟机和传统运行时、直接编译到 x86-64 的小型系统语言,在重写垃圾回收器后,把示例 HTTP 服务器从第 828 次请求附近崩溃,改进到连续处理 2 万次请求且高水位内存不再增长。页面称,大部分修复由 Claude Opus 4.8 完成。

一句话结论: “828 到 2 万”证明的是几个致命 GC 与后端 Bug 被修掉了,不是这门语言性能提升 24 倍,更不是 200KB 新语言已经可以替代成熟生产栈。

原来的问题相当具体。macOS 和 Windows 版本的 GC 会移动存活对象,却没有更新指向它们的指针;另一个实现只回收堆尾部,服务器每个请求产生的碎片无法复用。更隐蔽的是,默认堆太大,测试要做约 400 万次分配才触发一次回收,所以 CI 里 GC 几乎从未真正运行。

Claude 先把堆大小改成编译期参数,让测试一秒内触发回收。随后一串长期潜伏的问题冒了出来:Linux 的 write_bytes 每次都返回 EFAULT,调用者却忽略返回值;一个结构体字段覆盖了堆对象头的大小字段;顶层变量作用域错误会读取未初始化栈内存,测试甚至把某次垃圾值 11 固化成“正确答案”。

GC静默失败与快速暴露流程图

这里最值得讨论的不是 Claude 写了多少代码,而是它如何被一个“会大声失败”的系统约束。项目哲学是:外部失败作为数据返回,内部不变量一旦破坏就立即终止。作者让 GC 在不可能状态下直接 abort,第一次运行便抓到错误,修完再运行又抓到下一个。AI 代理很容易自信地沿着错误假设工作,快速、确定的反馈比更长提示词更能提高它的有效性。

当然,这个故事也展示了 AI 修代码的危险。Claude 一度分析了根本没在运行的旧 GC;shell 输入吞掉反斜杠,悄悄改变程序含义;Windows 与 Linux 寄存器调用约定也被混淆。最后仍是编译器、测试和运行时断言把错误拦住。页面把这些失败原样保留,比“AI 一夜写完系统语言”的宣传更可信。

为什么叫 200KB?页面域名强调的是这个小型实现和可直接检查的机器,但正文没有给出足够基准证明其吞吐、延迟或完整工具链质量。2 万次请求也只是稳定性检查,不是每秒 2 万请求。林岚认为,这篇文章最适合作为 Agent 工程课:让错误便宜地暴露,AI 才能快速迭代;如果系统安静地吞错,AI 只会更快地把谎言扩散。

关键事实

  • freelang 采用 AOT,直接生成 x86-64,不依赖 libc 或 VM。
  • 重写的是非移动式 GC,内存高水位稳定但不会主动降回操作系统。
  • 2 万是累计服务请求次数,不是 QPS 性能数字。
  • 项目仍公开承认字符串转义、编码和运算符分派等缺陷。

OC 判断

AI 编程的关键基础设施不是“让模型自由发挥”,而是短反馈、强不变量、可复现测试和可观察错误。模型能力越强,这些护栏越重要。

为什么重要

  • 对开发者:确保测试真正触发 GC、错误路径和平台后端,覆盖率数字本身不够。
  • 对企业:AI 生成的底层代码必须由自动验证约束,不能靠一次成功演示背书。
  • 对用户:稳定跑 2 万次请求说明修复有效,不说明语言已经成熟或更快。

参考来源

相关阅读

基于标题、摘要和正文内容自动匹配。

更多科技

评论

围绕这篇文章补充信息、提出问题或分享观察。

0
暂无评论。

发表评论

继续看看 OC 用户围绕这个话题说了什么、做了什么。

相关帖子

更多

你为什么不移民?

<p>我是一定要移了,在这里连正常呼吸都不行了。以前正常呼吸指的是言论自由,现在是生物学意义的正常呼吸问题了。</p> <p>你为什么不移民?</p>

tinyfool 740 15

你们的Codex额度提前耗完了没?戒断反应如何?

<p>我在第三天就消耗了只剩1%,忍了一天,然后今天干脆用这最后的1%,开着5.6 Sol 极高 强推我一个提示词笔记本应用的功能落地。最终用时3小时,居然还是跑完了。但是现在还是出现一些戒断反应,感觉啥也做不了,就无精打采的,困。</p> <p>我做了一个Prompt Notebook,专门用来收藏或者记录自己手搓的生图提示词。带Chrome一键收藏插件。支持AI优化提示词。支持提示词中提取常用字段作为提示词百科词汇。也自带生图功能用来测提示词。但是要搭配Cloudflare R2+Worker的图床。</p> <p>今天主要是做一个AI模特的资产库。将常用的AI模特固定下来,进行身份设定,以及模特的一些角色定妆图。之后生图可以直接调用AI模特自动作为垫图。</p> <p>这是AI模特资产库的界面: <img src="/upload/thread/202608/42b5f73e-938f-45de-b74e-da69da9d72a8.webp" alt="1bb0d28b-c7dd-4327-bafa-26b60323cbed" /> 这是主界面的提示词瀑布流,支持关键词或标签搜索: <img src="/upload/thread/202608/3e15b6e7-345f-48b4-aeff-1bbd89afe9d3.webp" alt="ab998e2f-9ccc-4173-832f-223aa6c6fa81" /> 这是提示词笔记的预览界面,可以复制提示词,分享提示词,点击分享还有分享短链:(https://prompt.jintao.co.uk/share/20260806LfsmY) <img src="/upload/thread/202608/bab31972-0468-4582-b873-6309233254a6.webp" alt="20260806-201213" /> 可惜现在没额度了,我又不想换模型折腾。现在还有些界面细节和小功能需要落地完善,可能还要虫子要抓。弄好了,打算放GitHub开源。</p> <p>有朋友想试试的么?</p>

shynloc 2 4

你更喜欢 Codex 还是 Cladue Code?

<p>我先说,我更喜欢 Codex,因为我没用过 Cladue Code。Codex 一直都能很好满足我的需求,所以我不是很有动力去换 Cladue Code。虽然我也知道很多人更喜欢 Cladue Code。但是我觉得应该差不多吧?</p>

tinyfool 5 111