公告

FujoOS公布日延期,以仓库发布为准

文档 语言 L0 单一真源

L0 单一真源

L0 是整个语言计划里最先落地的一层,因为它不依赖任何语言设计决策,只依赖一件已经存在的事实:同一个接口被写了很多遍。它落地得比语言本体还早,而语言本体(L1)现在也已经完成。

它要收掉的重复

事实 此前存在几处
FUAI 操作码表 spec.json · 内核 syscall.rs · LinuxFUAI 头文件 —— 三处,且常量已经实际漂移
.fuc 节点布局(64 字节记录) 打包器 struct.pack · 内核 NODE_SIZE · 文档 —— 改一处忘两处
FUJR .run 容器格式 五处实现,合计约 39 KB 平行代码
契约谓词 生成脚本里的 dict · 内核里的 match —— 顺序与编号靠人工对齐

形态

lom lom/fuc.lom · lom/fuai.lom
// .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 形式对象