10 月 3 日消息,昨日,Linux 创始人 Linus Torvalds 在查看开发者为 Linux 6.18 提交的 DRM 子系统拉取请求时,对相关 Rust 代码及 Rust 代码格式检查工具表达了强烈不满。
Torvalds 首先抨击了开发者提交 Rust 代码中的文本格式混乱问题,随后转向技术层面,指责 Rust 格式检查工具“完全不合理”,并呼吁改进相关规则。
他指出,不同子模块(如 Alloc、DMA / Scatterlist、DRM 和 Rust)的说明被“随意拼接”,导致层级缩进丢失、难以阅读。他还讽刺“你是在用 EDLIN 吗?”( 注:EDLIN 是早期 PC DOS 和 MS-DOS 系统中的行编辑器)
随后,Torvalds 将批评重点转向 Rust 代码格式。在审阅 Linux 6.18 中新增的 Rust DRM 代码时,他表示对 Rust 的格式检查“极度厌恶”;他还亲自将多条 use crate::xyz; 改写为统一的多行格式。
Torvalds 直言:“这完全是乱搞…… 工具正在为可维护性做出糟糕的决定。”他强调这种格式不仅增加未来合并代码时的冲突难度,也让规则不可预测,令开发者难以遵循。
他补充说:“... 这个东西就是有问题的。它可能在当下看似挺好,但从长远来看却会带来坏处。”并列举了两个主要问题:一是合并时不清楚规则,二是失去了“新增一行即可扩展”的整洁性。
Torvalds 在邮件中表示,他已忽略 rustfmtcheck 的结果,并查阅了 Rust 官方风格指南。他认为所谓的“小项合并”规则在数据结构场景下或许合理,但在 use 语句中则“完全错误”,因为这些导入条目彼此独立。
最后,他呼吁社区寻找一个“更合理的解决方案”,并指出许多开发者仍保留分开的 use 行,或许正是因为 rustfmt 的“不稳定启发式行为”。
此外,Linus Torvalds 还明确表达了对 RISC-V 架构引入大端(Big Endian,BE)支持的强烈反对。他认为这类尝试既不必要,也会带来更多复杂性和分裂问题。
天哪。真的有人在 2025 年还认真搞大端支持吗?不会吧?说真的,这听起来很蠢。难道说有什么实际的理由吗?还是仅仅因为 RISC-V 常用于学术设计课程,所以有人为了学术目的而尝试大端?
我们不要无缘无故地把事情复杂化。现在没有理由增加新的字节序支持。RISC-V 本身已经有数百万个愚蠢的配置问题,够乱的了。拜托别让它更糟了好嘛,有问题就去找心理医生。
Torvalds 进一步强调:“我已经查过相关资料,并在此明确表态:我们不会为 RISC-V 提前支持大端模式。”
他引用了 riscv.org上的说明:“仍然存在一些对数据存储方式有要求的应用,比如『互联网』协议被定义为大端。当一个小端系统需要检查或修改网络数据包时,必须进行字节交换,在不实现 Zbb 扩展的 RISC-V 目标上,这一过程可能需要 10 到 20 条指令。”
对此,Torvalds 批评称,这种理由“荒谬至极”。他指出,网络协议中的字节交换并不是实际性能瓶颈,真正的成本通常在内存子系统中。
同时,他直言不讳地表示:“与其抱怨字节交换,不如直接实现 Zbb 扩展。不要因为‘我们无力实现 Zbb’,就要求所有人接受一个更糟糕的扩展,从而进一步分裂 RISC-V 生态。”