L0 单一真源
L0 是整个语言计划里最先落地的一层,因为它不依赖任何语言设计决策,只依赖一件已经存在的事实:同一个接口被写了很多遍。它落地得比语言本体还早,而语言本体(L1)现在也已经完成。
它要收掉的重复
| 事实 | 此前存在几处 |
|---|---|
| FUAI 操作码表 | spec.json · 内核 syscall.rs · LinuxFUAI 头文件 —— 三处,且常量已经实际漂移 |
| .fuc 节点布局(64 字节记录) | 打包器 struct.pack · 内核 NODE_SIZE · 文档 —— 改一处忘两处 |
| FUJR .run 容器格式 | 五处实现,合计约 39 KB 平行代码 |
| 契约谓词 | 生成脚本里的 dict · 内核里的 match —— 顺序与编号靠人工对齐 |
形态
// .fuc 节点布局:此前散落在打包器、内核与新文档三处 record FucNode layout(packed, size=64) { kind: u16 @0 flags: u16 @2 x: i16 @4 y: i16 @6 } // 46 个契约原语与部署参数 enum Opcode: u16 { cfg_get = 0x8106 { sig: "a0=key", fujo: "fujo_cfg_get", linux: "fuai_cfg_get", semantics: "config read (defaults 1->50 2->0 7->45 8->35)" } }
生成物:Rust 常量与解码器、C 头文件、Python 打包器、JSON 规范,以及一个漂移检查器。判据是那个漂移检查器可以退役——因为漂移在生成期就不可能发生了。生成器本身也从 Python 换成了 Loment:loment/tools/lomc.lomt 的四个后端与 Python 版逐字节相同(审计主张 C18),所以这条线现在也不需要解释器了。
一个被抓出来的真实缺陷
首次运行就抓到:capability.rs 的第 68 行注释写着 τ_high = 46,而同文件的代码是 45。这不是“意外漂移”——部署参数本来就允许两个实现不同(FujoOS 45 / LinuxFUAI 46)。真正的缺陷是那行注释没跟着代码走,属于陈旧注释,正是 L0 要消除的那一类东西。
接下来:
L0 曾是 L1 的必要前提,两步现在都已落地。语言本身见 Loment 语言;编译器强制导出的那半边见 Potato 形式对象。