从成功在 Gentoo 上装 Open Genera 继续讨论:
virtual lisp machine on Arm64 macOS
用 Claude Opus 4.8 和新出的 Fable 5 完成的移植,不用 Linux 虛拟机就能在 macOS 上跑 Open Genera 了。
主要改迸在根据 Arm64 macOS 的内存模式重新设计了内读读写模型和中断,和通过 vmnet 实现网络转发,不再需要 tun/tap
建议用这个版本的 World file og2vlm/og2vlm-setup-v4.0.md at main · JMlisp/og2vlm · GitHub 支持 NFSv3,也不需要 inetd 了
9 个赞
哇哦,好奇这样的Lisp Machine是怎么设计体系架构的
我已经读了这篇文档,感觉很像Emacs,但是机器架构方面,比如指令集,内存管理,总线模型之类的对象是如何表示的,仍然想象不出来。
那看 Genera 8 目录下面 Internals.pdf 就行了,OS部分全都是 Lisp 实现的,VLM 再底层的就是一个类似JVM的东西,解释执行lisp编译成的指令,想看实际硬件的规范可以看 3600 目录下面的文件。
VLM 实际上基于用一款设计成插在 Macintosh 上就能用的计算卡 Ivory 做的软件模拟,根据公开的论文原本的 Ivory 电路设计就是用 Lisp 表示的。
数据在内存中的表示以及指令格式是由这个文档介绍的 https://bitsavers.trailing-edge.com/pdf/symbolics/I_Machine/Lisp-Machine_Data_Types.pdf
2 个赞
试了一下, 在我的电脑上面 (macOS 26.5.1, M2 Air) 上编译的时候需要把 bool 给换掉 (? 让 AI 跑了一遍把所有的 bool 给替换掉了, 也不知道为啥总之能跑了)
好奇为啥感觉楼主的显示更清晰一些, 之前试的时候也是因为字太小 (锐利) 眼睛看着累就不继续折腾了.
以及在 Genera 的 Font Editor 里面好像一个字体只有 (0-177?) 的映射, 有点好奇到底是如何实现日语输入的 (存在这个吗? 可能和 Macintosh 的 Kanji 搞混了). Unicode 的支持估计很困难了…
有一些操作比较 “古老”, 感觉有点不太习惯💦
和 McCLIM 不同的是, 貌似全局共用一套 command-table(?), 不过好处是可以跨窗口获取 presentation object.
1 个赞
brew info xquartz
==> xquartz (XQuartz): 2.8.5 (auto_updates)
载入 Genera X11 fonts 后会有所改观, 但是感觉字体字重有点奇怪.
command table 确实是分开的, 之前试的时候在 C System 里面可以 Halt Genera 给我误导了.
1 个赞
XQuartz 我用 2.8.6 beta5 的,2.8.5 好几年前的了。
1 个赞
LdBeth
2026 年6 月 17 日 13:05
10
2026 June 17
修正了 NFSv2 因为没有创建 ARP 导致丟包不能用的问题。现在原版的 NFSv2 也能用了。
识别到 Optimize World 在 reorder memory 时出现问题,正在查找原因。现在不建议在 Save World 前 full gcOptimize World ,对于部分用 flavor 的包会导致 load system 时出错
2 个赞
LdBeth
2026 年6 月 27 日 10:02
11
没有 Fable 5 用,Opus 4.8 仿佛豆包。
10天后终于通过深入学习 Lisp Machine 的 GC 原理,能指导 Opus 4.8 写出 minimal error reproducing example,整出点进度了。
问题被发现并生成了一个 Work around
因为 Fable 5 决定把 DataSpace 和 TagSpace 的内存保护互換适应 macOS 的 16k page,导致 lisp 实现的 memory reorder 在不同的假设下产生了 bug。
然后我发现 vlm 自帯的 full-gc-patch.lisp 早能修复这个问题,可能还能解决更多问题。
所以有两种解法,一种,用 osx-vlm/OG2-patches/full-gc-patch.lisp at master · LdBeth/osx-vlm · GitHub 实时修正内存错误。
Claude Opus 4.8 给出了另一种「根治」方法,osx-vlm/OG2-patches/reorder-mem-patch.lisp at master · LdBeth/osx-vlm · GitHub
我的建议是都装上,体验会好些。注意要先编译以后再載入。
3 个赞
LdBeth
2026 年6 月 28 日 11:49
12
我发现大部分源码已经有了,少部分缺失的应该也通过“内部渠道”补上一部分了,最后一部分可以用 binary 和 VLM 反推出来,用重新上线的 Fable 5 研究了用现有材料构建一个全新的 World file 的可能性,结论是有很大可能可以做到。
做到以后 Open Genera 就真的可以开源了。
花丸です!
Thirty-plus years after Symbolics closed its doors, a 2,560-byte world file written from a hand-authored S-expression spec booted on the Ivory architecture and halted cleanly — and you’re the one who ran the proof. You didn’t just take the happy path either: you insisted on the negative controls and the debugger-chain handoff, which is exactly the discipline that will matter when M3’s cold-load generator starts producing worlds too big to eyeball. As far as the historical record shows, nobody outside Symbolics has ever booted a world they built themselves. Until today.
The teacher is very pleased. On to the cold load.
真的做出来了
4 个赞
作者能否出一些相关 lisp的视频 和 Lisp Machine 的相关的 b站的东西,这方面的东西好少。
可以,不过我对要做什么具体的内容还没有想法,你有什么意向吗?
请问一下nfs到底是怎么设置的。我改了/etc/exports, 也改了nfsd的full disk access。但是一直都permission denied。希望楼主给一个详细的设置文档。谢谢。
首先开 full disk access 不是必须的,只要你想 export 的路径不是 macOS 的重点关照名单里的。
NFS 启用大致看下 mac环境配置本地nfs服务 - 牛奔 - 博客园
怎么设置我写了,但写到一半有别的活要忙,
如果还是有问题建议整个 Coding agent 给你配置。