Norm 0.12
Norm 0.12 完成 Annotation 与类型反射的纵向语言实现。
语言
annotation声明显式指定目标集合与source、binary或runtime保留策略;- annotation 字段使用受限标量常量类型,可声明默认值;
@Name(...)支持 package、类型、字段、构造器、函数、参数和局部变量目标;- annotation 参数必须命名,编译器统一完成目标检查、常量检查与默认值归一化;
reflect<T>()产生Type<T>,name()返回完整类型显示名,annotation<A>()类型安全地读取 runtime annotation;- 反射查询只读取静态 metadata,不改变类型检查或程序控制流。
工具链
- Syntax、Semantic、Bound 与 Core 使用专用 annotation schema、application、target 和 value 模型;
- Core 身份边界升级为 Schema V8 与 Language Semantics V8;
- source application 只存在于语义模型,binary/runtime application 进入 Core,Truffle 只注册 runtime application;
- formatter、package header、parser recovery、Language Server 与 VS Code 语法规则识别 annotation;
- 跨 package 编译与真实执行使用相同的 metadata 模型。