Norm 0.14
Norm 0.14 建立可独立演进的编译阶段契约,并将增量编译、内容存储和后端复用收敛到稳定身份边界。
编译器
- 语义分析由组合式 import、类型、表达式、Annotation、构造器流和可见性组件共同完成,产出唯一的不可变
SemanticModel; - 声明身份由文档、声明类别、名称和规范签名确定,空白与声明重排通过 token anchor 保持诊断和语义贡献映射;
- 声明新增、删除和重载族变化按语义依赖失效,独立编译单元可并行处理,同一编译单元保持顺序提交;
- Bound/Core 节点族由
bound-core-schema.json定义并生成契约,sealed hierarchy 与遍历覆盖由构建测试校验; - 内建 intrinsic、运行时 shape 和异常 ABI 由
builtin-abi.json定义,生成的 ABI 指纹参与后端可执行身份。
Core 与执行
- 产物身份拆分为公开 ABI、Core 代码、运行期 metadata、调试信息、可执行程序和发布组合,缓存按各自实际依赖失效;
- standalone Truffle 后端按
ExecutableId复用已 lower 的程序,源码位置通过当前 artifact 的 authoring sidecar 映射; - Core 规范化记录 component、refinement、搜索、memo 和 automorphism 剪枝指标,并对对称定义图保持确定结果;
- 文件定义存储按内容分片协调写入,并在发布后以根目录容量边界串行回收。
迁移
嵌入编译器的 Java 调用方应使用 dev.w0fv1.norm.abi 中生成的 ABI 类型,并按用途选择 PublicAbiId、CoreCodeId、MetadataId、DebugInfoId、ExecutableId 或组合 ArtifactId。
语言层继续提供 Norm 0.13 的 Annotation、reflection 和 std.validation 能力。编译阶段与身份边界见编译器架构。