Six new language features, twelve new or overhauled stdlib modules, a 28-rule check engine, and VAST promoted to a required release gate. The CLI framework was rewritten with typed parsing and structured output. Mutation testing gained scoped runs and equivalent-likely detection. Seven compiler codegen bugs were fixed, several found by VAST differential testing.
| Change | Description |
|---|---|
| Structured concurrency | Task groups with cooperative cancellation and timeouts for safe parallel execution. |
| Effect system | Compile-time effect tracking with capability checks and per-module policy enforcement via vary.toml. |
| Bounded type parameters | Type parameters can specify upper bounds and interface constraints for more expressive generics. |
| Typed boundaries | Processes, determinism markers, and JSON decode use typed boundary expansion for safer interop. |
across generated inputs | Type-directed generated input testing with the across keyword for property-based test patterns. |
| Module root discovery | Modules resolve from a discovered project root with relative imports and improved diagnostics. |
| stdlib.time | Duration, instant, calendar, timezone, and clock types with deterministic testing support. |
| stdlib.collections overhaul | Removed legacy APIs, added new list, dict, and set utility functions. |
| stdlib.fs typed metadata | Filesystem module returns typed metadata, permissions, and query results. |
| stdlib.http upgrade | Result-based API, mock transport for testing, request builder, and JSON-first defaults. |
| stdlib.crypto | JVM-backed cryptography module with typed wrappers for hashing, HMAC, and encryption. |
| Bytes type | New Bytes type with binary I/O across filesystem, HTTP, and crypto modules. |
| Decimal and Money types | Exact-precision Decimal arithmetic and Money type for financial calculations. |
| URL, UUID, CSV modules | Three new stdlib modules for URL parsing, UUID generation, and CSV read/write. |
| Text processing | Text normalization, case transforms, layout utilities, and display-width support. |
| JSON path access | JSON values support path-based access, typed encode/decode, and schema validation. |
| Process typed results | Process execution returns typed results; new date and time type system. |
| Surface area shrink | Effectful built-in APIs moved from the compiler into stdlib modules. |
vary check engine (28 rules) | Rule-based diagnostic engine with 28 lint rules, canonical renderers, and vary.toml configuration. |
| Check suppression and explain | Suppress individual diagnostics with inline comments; view detailed explanations with --explain. |
| Check SARIF output | Project-wide summaries and SARIF-format output for CI integration. |
| Autofix safety hardening | Autofixes validated against output contracts to prevent destructive rewrites. |
| CLI framework overhaul | Typed argument parsing, validation, structured output modes, and consistent help text across all subcommands. |
| Unified diagnostic model | All compiler diagnostics go through a canonical model with consistent terminal and JSON renderers. |
| Unified failure model | Errors, warnings, and traces use a single structured failure model for consistent reporting. |
| LSP improvements | Enhanced Language Server with docs generation, incremental cache, and bug fixes. |
vary new template | Scaffolding template passes vary check clean and better demonstrates language features. |
| Scoped mutation | Mutation testing can be scoped to specific modules or functions for faster targeted runs. |
| Equivalent-likely detection | Lie detector tracks mutations likely equivalent to the original, reducing false survivor noise. |
| Testing governance | Test inventory system and check rule coverage tracking for quality gates. |
| Performance guards | Profiling infrastructure and regression guards to catch performance regressions. |
| VAST as release gate | VAST is now a required release-candidate gate, blocking releases that fail semantic validation. |
| VAST semantic profiles | Phase-based profiles replaced with semantic naming for clarity. |
| VAST 4-path differential | Validates compiler output across four optimization paths to catch optimizer bugs. |
| VAST feature expansion | Coverage expanded to collections, enums, data classes, match, exceptions, generics, floats, and concurrency. |
| Docker image | Official Docker image at ghcr.io/ccollicutt/vary with pre-installed compiler and examples. |
| List + List codegen fix | Fixed list concatenation emitting LADD (long addition) instead of list concat. |
| Nullable codegen fixes | Fixed two nullable-type code generation bugs found by VAST differential testing. |
| Collections codegen fixes | Fixed collections builtin bypass, None unwrap store, and flatten on empty list. |
| Generic type validation fix | Fixed generic type validation rejecting valid type parameter usage. |
| Formatter round-trip fixes | Fixed not-precedence grouping, right-associativity, and negative literal formatting. |