开发者 Tom Brown 发布了一款名为 PL/CBMBASIC 的 PostgreSQL 扩展,允许用户在数据库内部直接运行 1982 年版 Commodore 64 BASIC V2 解释器。该扩展并非简单的模拟器,而是基于 Michael Steil 的 cbmbasic 项目,将原始的 6502 ROM 静态重新编译为 C 代码,并直接嵌入数据库的共享库中。每次函数调用时,系统会执行一次“上电循环”,重置 64KB 内存和 CPU 寄存器,耗时仅 15 至 20 微秒,比原始硬件快 1000 倍。该技术完美复刻了 C64 的所有特性,包括强制性的行号、仅大写字符、以及变量名长度限制等怪癖,甚至将当年的 TOKENIZER 错误(如变量名 TOTAL 包含关键字 TO)转化为现在的 PostgreSQL 报错信息。最精妙的设计在于,它将 C64 的磁盘驱动器(设备 8)映射为数据库连接,用户可以使用 OPEN、INPUT# 等经典命令执行 SQL 查询,甚至通过命令通道(设备 15)执行 DDL 操作。虽然性能约为 PL/Python 的 1/14,且需要超级用户权限,但该项目展现了 PostgreSQL 极致的扩展性,让开发者能用 40 年前的语言操作现代数据库。
事件分析
💡 核心观点:将 40 年前的 8 位机解释器嵌入现代数据库内核,展现了 PostgreSQL 极致的扩展性与复古编程的独特美学。
原文链接:Hacker News





