Skip to content

Norm 0.16 ​

Norm 0.16 交付流式系统 I/O、HTTP 客户端和统一结构序列化运行时,并补齐 extension function、字段反射与 Annotation 生命周期的语言链路。

系统 I/O 与 HTTP ​

  • ByteReader、ByteWriter、Resource 与 use 统一流式资源生命周期,readAll 保留显式读取上限;
  • 文件系统支持流式读取、写入、追加、同步模式和强类型失败映射;
  • std.http 提供强类型 request、response、header、status 与 URI,响应 body 通过受控 reader 读取并确定性关闭;
  • JDK HTTP adapter 将发送、响应和 body 读取纳入同一 timeout 与 cancellation 预算,系统失败继续抛出领域 Exception。

语言与结构 metadata ​

  • extension function 是显式导入的静态顶层函数,可使用成员式调用;Parser、类型推断、Core、格式化和语言服务共享同一语义;
  • Annotation 的 passive target 与 FunctionInterceptor、ParameterInterceptor<T>、FieldInterceptor<T> 生命周期分离;
  • Type<T>.fields() 与 Field<T> 按稳定 ordinal 暴露字段名称、类型、runtime Annotation 和受控读取,不使用 JVM reflection 或字符串方法调用;
  • Core schema、language semantics 和 identity 版本随 callable、field metadata 与 runtime binding 变化同步升级。

JSON、XML 与 YAML ​

  • std.serialization 定义 immutable DataMapper、DataReader<T>、DataWriter<T> 以及 @Serializable、@SerialName、@SerialIgnore;
  • std.json 提供 typed mapping、UTF-8 bytes、JsonValue tree、parse/write 与带路径和位置的 JsonException;
  • std.xml 与 std.yaml 复用 exact Core type shape 和 reader/writer plan,同时保留 XML attribute、YAML document 等格式专属规则;
  • 序列化直接按 Core field ordinal 访问 value,以规范构造器反序列化,并分别缓存 immutable reader/writer plan;
  • Jackson streaming 与 Woodstox 被封装在格式 adapter 内,不参与 Norm 类型发现和对象构造。

工具与验收 ​

VS Code 插件版本与 Norm 版本建立构建门禁,并覆盖 extension、反射、Annotation 和 JSON/XML/YAML 标准库。跨文件补全只对当前文档应用声明顺序,导入的标准库 extension 不再受其他文件 source offset 影响。文档站点的 GitHub Pages base、manifest 与公开链接统一由 /Norm/ 配置派生并在构建时校验。

JVM、Native Image、真实文件、HTTP 回环、结构 round-trip、失败矩阵、递归 shape、Extension Host 与发布包布局均进入自动化验收。

迁移与边界 ​

只需要标记目标的 Annotation 应实现 TypeTarget、FieldTarget、FunctionTarget 或 ParameterTarget;需要执行生命周期时改用对应 interceptor。系统与数据格式失败统一抛出类型化 Exception。

自动结构映射当前只处理 value。class identity、对象图、循环引用和多态需要后续独立协议;HTTP server 尚未进入标准库。

架构边界见系统运行时与序列化运行时。

Norm 0.25