固定 isa/compiler/vm/host 的职责边界,样例与测试单独成目录。 Co-authored-by: Cursor <cursoragent@cursor.com>
compiler
ST / toml 编译器。CMake 目标:compiler(STATIC),依赖 isa。
读齐工程后走直通 pass,产出单一映像,不上 LLVM。词法、语法、符号表、检查、codegen、链接都留在本库,不再拆 CMake 子库。
管线
读 toml、收齐 .st
→ 词法 / 递归下降语法
→ 收集导出符号
→ 解析 VAR_EXTERNAL、链接、定地址
→ 类型检查
→ 按 PROGRAM / FUNCTION / FB 编寄存器码
→ 回填跳转、写映像头与工程哈希
工程文件
toml 不声明变量,只做三件事:列出源文件、指定唯一 GVL、(可选)把已声明的全局接到硬件。
- 字段:
files/entry/cycle_limit/dt_ms/gvl.file/ 可选io.* - 第一版只有
gvl.file允许出现VAR_GLOBAL [[io.*]]的var必须已在 GVL 中声明,否则编译错误- 同名
VAR_GLOBAL链接失败,禁止覆盖
第三方 toml 解析放在 third_party/,本库私有链接。