Norm 0.15
Norm 0.15 establishes the unified runtime boundary for standard-library system capabilities and delivers the first complete vertical slices for file reading, time, and I/O foundations.
System runtime
SystemPlatformis the backend-neutral capability entry point.platform-jdkimplements the JDK file system and clock, and the CLI injects it at the application composition root.ExecutionContextuses a builder to compose input, output, arguments, cancellation, module publication, and platform capabilities without a global service locator.- System intrinsics, opaque values, opaque resources, and
ResourceScopeprovide one boundary for host calls and external-resource lifecycles. builtin-abi.jsondefines intrinsic and system-exception mappings. Generated domain ABI contracts drive construction of catchable Norm exceptions at runtime.- Platform adapters normalize host failures into strongly typed operation and reason values before the Truffle boundary converts them into the corresponding Norm domain exception.
Standard library
std.system.SystemExceptionprovides stable error codes, and system operations uniformly report failures with domain exceptions.std.ioprovidesIOException,Bytes,ReadChunk,Resource, and explicitTextEncoding.std.filesystemprovides nominalPath,FileException, and UTF-8readText.std.timeprovides canonicalDurationandInstantvalues, explicitClock,systemClock(), andTimeException.Bytes,Duration, andInstantvalidate and construct private implementations through a single public factory path, avoiding duplicate construction paths and nominal identities.
Execution and acceptance
Focused tests cover the JDK adapters, fixed clocks, platform-failure mapping, opaque dispatch, resource cleanup, and exception capture. Standard-library acceptance programs exercise file reading, time, bytes, read results, and resource closure through the real JVM and CLI paths.
Migration and boundary
Java execution embedders should compose contexts with ExecutionContext.builder() and provide a SystemPlatform when programs use system intrinsics. The 0.15 filesystem surface contains UTF-8 text reading only; file streams, writes, directory operations, networking, processes, HTTP, and concurrency remain future work.
See the system runtime architecture for the layering and extension rules.