网易首页 > 网易号 > 正文 申请入驻

53.5万行Zig代码,4个月被AI改写成Rust

0
分享至

53.5万行代码,原本预计要一个小型工程师团队干整整一年。结果4个月就完成了,还顺手修掉了128个长期存在的Bug。

Bun的创建者Jarred Sumner宣布,这款集JavaScript/TypeScript运行时、打包工具和包管理器于一体的工具,已经从Zig重写为Rust。重写的核心动机很直接:用Rust的借用检查器消除反复出现的内存安全漏洞。


这件事最初只是作为一个概念验证项目启动的,没人指望它能成。

为什么非要换语言

Sumner给出的理由集中在错误路径上。他提到,很大比例的Bug属于"释放后使用"、"双重释放"以及"忘记释放"这几类。在安全的Rust中,这些都会被编译器直接识别为错误,并通过Drop实现类似RAII的自动清理。

他的判断是:编译器错误比代码风格指南能提供更好的反馈机制。

但重写本身在工程界一直是个坏主意。Bun共有535496行Zig代码,用另一种语言重写,按常规估算需要一个小型工程师团队花掉整整一年。这意味着在这一年里,漏洞修复、安全修复或功能开发都得停摆。

转机在于Bun自身的测试套件是用TypeScript编写的,不依赖运行时的编程语言。Sumner决定花一周时间测试Anthropic的新模型能否用Rust重写Bun。

几天后,测试套件的通过比例大幅上升,新生成的Rust代码与原始Zig代码库高度吻合。他的看法从"这值得一试"变成了"我要把这个合并进去"。

64个Claude实例并行干活

整个重写过程是一次自动化的"一次性"移植,大部分工作利用了Claude Fable 5的预发布版本,通过约50个动态工作流进行协调。

具体流程是这样的:

  1. Zig代码被转译为Rust,可能使用unsafe Rust并稍后重构
  2. 用包含超过一百万条断言的测试套件进行验证
  3. 移植指南帮助Claude把Zig的模式和类型映射到Rust
  4. 对抗性智能代理代码审查在最终移植前进一步检测问题

每次出现错误后,Sumner都通过优化实现流程来改进循环,而不是手动修复代码产物。

两个文件被认为是这次移植的关键成功因素:PORTING.md描述了从Zig到Rust的映射,LIFETIMES.tsv描述了代码库中每个结构体字段的生命周期。实现者代理利用这些文件把Zig文件转换为Rust代码,同时面临两个对抗性审查代理,它们在单独的上下文窗口中运行,仅能访问文件差异,唯一任务就是发现错误和行为偏差。

Sumner强调了一条分工原则:实现者不负责审查,审查者不负责实现。审查者提出的建议和发现的问题由修复代理处理。

效率很大程度上得益于并行化。最终工作被分配到四个工作区分片中,每个分片运行16个代理,并行运行的Claude实例总共有64个。最快情况下,系统每分钟生成约1300行代码,每小时最多提交695次。

16.5万美元的Token账单

要让整个测试套件全部通过,代价是价值16.5万美元的Token。

合并前消耗了59亿个未缓存的输入Token、6.9亿个输出Token,以及720亿次缓存输入令牌读取,按API定价计算费用约为16.5万美元。Sumner的对比是:如果靠人工,他认为需要3名完全熟悉这个代码库的工程师耗时约一年。

100多万行代码通过测试套件后,进一步的测试和验证发现了更多问题。移植过程中的机械操作引入了19个微妙的语义回归,根源在于Zig和Rust之间的语法相似性。Claude Code Security进行的11轮安全审查修复了多个安全问题。团队还对Bun中的每个解析器进行了7x24小时不间断的覆盖率引导式模糊测试,其间共产生了15个PR。

据Bun团队称,通过Rust重写实现的Bun v1.4.0不仅修复了v1.3.14中长期存在的128个Bug,还带来了性能收益。原生内存泄漏问题已经解决。在进程内打包测试中连续执行2000次Bun.build()操作时,内存占用在Rust环境中稳定维持在609 MB,而非像之前那样攀升至超过6.7 GB。HTTP吞吐量提高了2%至5%。

Zig之父的尖锐质疑

Zig语言创建者Andrew Kelley发表了一篇批评文章,题目是"我对Bun用Rust重写的看法"。

他指出了一个二分法:为了避免Bug,你必须在"风格指南"和编程语言特性之间做出选择。他认为这种障眼法将读者的注意力从消除Bug的主要途径上转移开了,即投入工程资源来解决这个问题。

Kelley还追问:主张将所有100万行未经审查的代码直接发布出去的理由是测试套件足够完善,能够捕获所有问题。那么为什么Zig代码中存在这么多令人头疼的Bug?那个"测试套件足以捕获所有问题"的说法去哪儿了?它不足以捕获Zig代码中的Bug,却足以捕获100万行未经审查的粗制滥造的Rust代码中的Bug?

与此同时,用户vitaminCPP指出,超过100万行机器转译代码的整合,使Bun成为一个关键的行业预警风向标,用以检验由大型语言模型生成的庞大代码库在软件工程生命周期中是否仍然能够保持可维护性。

Bun于2025年12月被Anthropic收购。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
忍无可忍无需再忍!一场恶仗正在逼近中国,东大不必再继续退让了

忍无可忍无需再忍!一场恶仗正在逼近中国,东大不必再继续退让了

叹知
2026-09-17 01:14:10
你买过什么东西不贵,却极大提升了幸福感?网友:后悔没早点知道

你买过什么东西不贵,却极大提升了幸福感?网友:后悔没早点知道

另子维爱读史
2026-09-25 13:50:01
马珊珊当选沈阳市市长(附简历)

马珊珊当选沈阳市市长(附简历)

上观新闻
2026-09-29 17:03:24
为什么一条新闻,会缺失最关键的信息?

为什么一条新闻,会缺失最关键的信息?

走读新生
2026-08-31 23:07:22
记者:曼城很可能被大幅罚分或逐出英超,其它球队不会满意轻罚

记者:曼城很可能被大幅罚分或逐出英超,其它球队不会满意轻罚

懂球帝
2026-09-30 01:45:35
张本宇:一双儿女都是日本乒坛的领军人物,他与妻子仍不敢休息

张本宇:一双儿女都是日本乒坛的领军人物,他与妻子仍不敢休息

细品名人
2026-09-30 07:02:27
原来这么多人见过清朝人!网友:特别有分裂感!

原来这么多人见过清朝人!网友:特别有分裂感!

夜深爱杂谈
2026-09-29 21:04:28
荷兰2岁幼儿安乐死案细节公布:曾有两名医生认定“不算持续无法忍受的痛苦”

荷兰2岁幼儿安乐死案细节公布:曾有两名医生认定“不算持续无法忍受的痛苦”

红星新闻
2026-09-29 16:47:59
降级主力还会成为豪门抢手货吗?之前成都蓉城抢到韦林顿 北京国安免签林良铭

降级主力还会成为豪门抢手货吗?之前成都蓉城抢到韦林顿 北京国安免签林良铭

80后体育大蜀黍
2026-09-29 21:18:08
伊朗革命卫队:波斯湾已无美军舰船

伊朗革命卫队:波斯湾已无美军舰船

新京报
2026-09-29 22:15:11
你不了解的岩屋毅!

你不了解的岩屋毅!

天真无牙
2026-09-29 16:24:31
命里带财的4个阴历生日,看看有你吗?

命里带财的4个阴历生日,看看有你吗?

普陀动物世界
2026-09-30 05:34:17
50岁港姐与丈夫离婚相互指责,19岁女儿力挺母亲,揭父亲家暴内幕

50岁港姐与丈夫离婚相互指责,19岁女儿力挺母亲,揭父亲家暴内幕

临云史策
2026-09-29 23:58:40
下月起,日本“106 万円の壁”正式取消!在日打工人规则大变

下月起,日本“106 万円の壁”正式取消!在日打工人规则大变

东京在线
2026-09-29 00:21:26
688自助餐,女友只吃点蛋糕饮料,面对男友吐槽,女子直接提分手

688自助餐,女友只吃点蛋糕饮料,面对男友吐槽,女子直接提分手

仙仙先生
2026-09-29 10:20:42
和陈梦秘密领证真相大白后,樊振东近况曝出,难怪会淡出国家队

和陈梦秘密领证真相大白后,樊振东近况曝出,难怪会淡出国家队

乐天闲聊
2026-06-19 18:04:07
年轻气盛,76人队的VJ毫不畏惧地向勒布朗·詹姆斯发出指令

年轻气盛,76人队的VJ毫不畏惧地向勒布朗·詹姆斯发出指令

好火子
2026-09-30 05:02:58
武契奇认输辞职?他只是换了“战场”!

武契奇认输辞职?他只是换了“战场”!

看看新闻Knews
2026-09-28 23:52:04
2009年,刘欢的年收入大概在3200万左右

2009年,刘欢的年收入大概在3200万左右

岁月有情1314
2026-09-28 11:22:02
上海295平带花园楼房130万成交,单价4407元却不是谁都能买

上海295平带花园楼房130万成交,单价4407元却不是谁都能买

童童聊娱乐啊
2026-09-29 10:50:04
2026-09-30 07:55:00
闪存猎手
闪存猎手
全网蹲好价的野生捕手,算力与羊毛都不可辜负。
197文章数 75关注度
往期回顾 全部

科技要闻

82亿美元收购!李飞飞将与苏姿丰并肩做AI

头条要闻

杭州女孩天天坐高铁去上海上班 通勤6小时每月花3000

头条要闻

杭州女孩天天坐高铁去上海上班 通勤6小时每月花3000

体育要闻

石雨豪:亚运金牌与背后的十年

娱乐要闻

赌王四房婚礼,何超琼带三房成员现身

财经要闻

央行调整完善若干货币政策工具

汽车要闻

搭华为乾崑ADS 5/设计风格换新 2027款纵横G700售30.49万起

态度原创

游戏
健康
时尚
数码
艺术

吉田修平认为索尼与任天堂应尽量延长PS5和NS2寿命

洗脸越勤,痘痘反而越多?

老板,我的脑子好像忘在家里了

数码要闻

AMD公布EPYC 9006“Venice”全系规格与价格 256核旗舰单颗售价14904美元

艺术要闻

齐白石:没见过的东西,我绝不画!一句话,道出大师封神的秘密!

无障碍浏览 进入关怀版