Skip to content

feat(runtimec): C11 运行时架构骨架、BinIR 契约与 fail-closed 主干 - #629

Open
miaobyte wants to merge 6 commits into
masterfrom
feat/runtimec-arch
Open

miaobyte wants to merge 6 commits into
masterfrom
feat/runtimec-arch

Conversation

@miaobyte

@miaobyte miaobyte commented Nov 2, 2026

Copy link
Copy Markdown
Contributor

从零搭建 runtimec/:C11 运行时底座、BinRWIR 契约、唯一 fail-closed 主干。99 个新文件,全部是净新增,不改动任何既有文件。

⚠ 当前是架构骨架:目录、数据结构、函数边界、失败封闭骨架已建立,语言执行语义尚未实现。产物名保留 scaffold,防止骨架被误当成可发布实现。

为什么是现在

runtimec2 已按裁决完全冻结(见 #624 的冻结声明),runtime 方向回归 C。本 PR 是 C 侧从零开始的底座,不搬迁 c2 代码,只确立主干。

唯一主干(不可分叉)

myrwircaps + RWIR specification
    -> vmkv 验证 RWIR,等价生成 canonical BinRWIR(不优化、不选执行器、不生成机器码)
    -> binrwir_compiler 生成 execution plan,并在同一次编译中确定执行目标
    -> 编译期决定:JIT code 或 VMBIN plan
    -> compilation repository 缓存完整 compilation
    -> engine/route.c 读取已决定的目标,只调用一个执行入口

执行期不得重新判定、改选或隐式降级;engine/route.c 是唯一同时看见 vmkv、compiler、JIT executor 与 vmbin 的文件。

九条绝对原则(见 runtimec/README.md)

只有一条正常方向 · 语义先于实现 · 等价生成 · 编译期一次决定 · 执行期不改决定 · 只有一个策略汇合点 · 错误立即停止 · 不保留旧入口 · Less code, more useful capability。

失败封闭:未实现返回 RUNTIMEC_STATUS_NOT_IMPLEMENTED,非法输入返回 RUNTIMEC_STATUS_INVALID;空值、零、false 或默认结构不能伪装成功。

目录结构(99 文件)

目录 内容
runtimec/documentation/architecture/ 架构总纲、能力映射、依赖图/执行流/主干图(mmd + png + svg)
runtimec/specification/ 五语言行为矩阵、myrwircap↔BinRWIR 映射、rwir_catalog.def、scalar_operations.def
runtimec/contract/ allocator / checkpoint / error 等契约层
runtimec/vmkv/ RWIR 验证与 canonical BinRWIR 等价生成
runtimec/binrwir/、runtimec/binrwir_compiler/ BinRWIR 表示与执行计划编译
runtimec/vmbin/、runtimec/vmjit/ 两个执行目标
runtimec/engine/、runtimec/host/、runtimec/interface/、runtimec/include/ 调度、宿主接入、公共接口
runtimec/tests/、runtimec/tools/ 测试与工具

验证范围

本 PR 只立骨架,不含语言语义实现,因此验收是「结构与契约自洽 + 文档与代码一致」:

  • 全部 99 个文件为净新增(git diff --name-only 只含 runtimec/ 下路径,无任何既有文件改动)
  • runtimec/README.md 的九条原则与 documentation/architecture/runtimec-architecture.md 可互相对照
  • 未实现路径统一返回 NOT_IMPLEMENTED,非法输入统一返回 INVALID

未做:执行语义、JIT 代码生成、任何性能工作。这些在后续阶段。

🤖 Generated with Claude Code

miaobyte and others added 6 commits November 2, 2026 14:04
从零搭建 runtimec:C11 架构骨架(vmkv/vmbin/vmjit/engine/host/interface/
include)、BinIR 契约与读写别名约定、优化支柱文档、架构交接文档,并把主干
收敛为单一 fail-closed 架构。

净新增 99 个文件,全部位于 runtimec/ 下。

Co-Authored-By: Claude Code <noreply@anthropic.com>
- 原则 15:保留逐指令 pc/status 的可观察、可暂停、可恢复语义;不迁移
  mem_frame / segment_may_stop 这类不可观察纯内存帧。
- 原则 16:Program、执行计划、机器码、JIT register/spill、profile 与
  repository 条目均为派生进程内状态,必须可丢弃、可从明文重建。
- 按 #622 依赖顺序给出四阶段路线(引擎 → 明文艺文与 canonical BinRWIR →
  compiler 含 JIT → 成为默认 runtime 并删除 runtimec2)。
- 行为矩阵与架构检查工具同步。

Co-Authored-By: Claude Code <noreply@anthropic.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant