Norm 0.20
Norm 0.20 将单文件源码到可分发程序收敛为一条命令,并让无 package 的本地应用与 Java 框架使用同一类型系统。
本地应用身份
- 无 package 的单文件应用可以省略 Module 名称、版本与 exports,编译器为其分配不可发布的内部身份;
- Java Annotation、应用代理、运行时分派和 Language Server 共享同一个宿主类型名映射;
std.application.applicationPackage()提供框架扫描所需的实际宿主 package,不在业务源码中重复字符串配置。
自包含应用构建
norm build web.norm在源码旁生成web.norm.exe;norm build与norm build .读取项目的application.norm,并生成<module>/build/<artifact>.exe;- 构建时解析、校验并固化精确 NAR 和完整 Java JAR 图,产物运行时不访问 GitHub 或 Maven,也不要求安装 Norm 或 Java;
- 应用内容和 Norm 运行时按内容摘要缓存,同版本工具链内容发生变化时不会误用旧运行时。
Windows x64 是 0.20 的应用 EXE 目标。命令与输出约定见应用构建。
工具链一致性
VS Code、CLI 与应用构建共享 ProjectLoader 的 Module 图。扩展显示当前工具链来源与版本,并在 Norm 源码工作区优先选择同一 minor 下更新的工作区构建。
发布验收额外构建带 NAR 与 Java 依赖的应用 EXE,并在空缓存和断网环境执行。