让我的不可移植的 transputer C 编译器变得可移植
作者 Oscar Toledo G. 将一款 1998 年用于 transputer 的 C 编译器移植到现代 64 位平台(MacBook M1),解决了指针/int 混用、硬编码字节池结构、K&R 无原型等问题,并用 struct 替代字节数组实现类型系统。 最关键的坑:transputer OS 的 malloc 在内存耗尽时不返回 NULL 而是总返回同一地址,导致表达式树节点自指向、Wptr 栈越界覆盖 Iptr,最终给模拟器加 128KB RAM 修复。 编译后 cc2 在 macOS 与 transputer 模拟器生成的汇编逐字节一致,体积从 38176 降到 35997 字节。作者提供了 git 仓库展示完整演进。 属于少见的第一手复古硬件编译器工程实录,transputer/嵌入式/编译器爱好者会强烈共鸣。




