Hacker News | 📄 原文链接 | 2026-09-24 收录

让我的不可移植 transputer C 编译器重新可移植

来源:nanochess.org — 51 分 · by nanochess

📋 概述

Oscar Toledo G. 翻出一张软盘,里面是他 1998 年用 DJGPP 编译的 transputer C 编译器——那是为 AMD Am29000 生成代码前的一个中间版本,已经去掉了 Small-C 残留、具备正规词法分析、ANSI C 语法与完整预处理器。他想在 M1 MacBook Air 上重新编译它,问题立刻暴露:当年代码把整数和指针混用(都是 32 位),文件句柄用 int 而不是 FILE *,函数也没有原型,而今天指针是 64 位。更深层的麻烦来自 Small-C 血统:没有 struct 关键字,所有结构都借用 char 字节池拼出来,字符按两个字节切分(为 8080 处理器),后扩到 32 位平台变成四个字节,把 64 位指针塞回 32 位整数根本不可能。他的目标是只做足够改动让它在现代 64 位平台编译,同时仍能用它自举编译 transputer 版本。

🔑 核心要点

💡 金句

旧程序无法在现代 64 位系统上编译,这不是第一次了。但与其让这个编译器只作为只能在模拟器里跑的奇观,不如让它在你现在的笔记本上跑起来。剧透一下:这并不容易。
← 返回 Hacker News 首页