v113-alpha.1

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.

ChangeDescription
Structured concurrencyTask groups with cooperative cancellation and timeouts for safe parallel execution.
Effect systemCompile-time effect tracking with capability checks and per-module policy enforcement via vary.toml.
Bounded type parametersType parameters can specify upper bounds and interface constraints for more expressive generics.
Typed boundariesProcesses, determinism markers, and JSON decode use typed boundary expansion for safer interop.
across generated inputsType-directed generated input testing with the across keyword for property-based test patterns.
Module root discoveryModules resolve from a discovered project root with relative imports and improved diagnostics.
stdlib.timeDuration, instant, calendar, timezone, and clock types with deterministic testing support.
stdlib.collections overhaulRemoved legacy APIs, added new list, dict, and set utility functions.
stdlib.fs typed metadataFilesystem module returns typed metadata, permissions, and query results.
stdlib.http upgradeResult-based API, mock transport for testing, request builder, and JSON-first defaults.
stdlib.cryptoJVM-backed cryptography module with typed wrappers for hashing, HMAC, and encryption.
Bytes typeNew Bytes type with binary I/O across filesystem, HTTP, and crypto modules.
Decimal and Money typesExact-precision Decimal arithmetic and Money type for financial calculations.
URL, UUID, CSV modulesThree new stdlib modules for URL parsing, UUID generation, and CSV read/write.
Text processingText normalization, case transforms, layout utilities, and display-width support.
JSON path accessJSON values support path-based access, typed encode/decode, and schema validation.
Process typed resultsProcess execution returns typed results; new date and time type system.
Surface area shrinkEffectful 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 explainSuppress individual diagnostics with inline comments; view detailed explanations with --explain.
Check SARIF outputProject-wide summaries and SARIF-format output for CI integration.
Autofix safety hardeningAutofixes validated against output contracts to prevent destructive rewrites.
CLI framework overhaulTyped argument parsing, validation, structured output modes, and consistent help text across all subcommands.
Unified diagnostic modelAll compiler diagnostics go through a canonical model with consistent terminal and JSON renderers.
Unified failure modelErrors, warnings, and traces use a single structured failure model for consistent reporting.
LSP improvementsEnhanced Language Server with docs generation, incremental cache, and bug fixes.
vary new templateScaffolding template passes vary check clean and better demonstrates language features.
Scoped mutationMutation testing can be scoped to specific modules or functions for faster targeted runs.
Equivalent-likely detectionLie detector tracks mutations likely equivalent to the original, reducing false survivor noise.
Testing governanceTest inventory system and check rule coverage tracking for quality gates.
Performance guardsProfiling infrastructure and regression guards to catch performance regressions.
VAST as release gateVAST is now a required release-candidate gate, blocking releases that fail semantic validation.
VAST semantic profilesPhase-based profiles replaced with semantic naming for clarity.
VAST 4-path differentialValidates compiler output across four optimization paths to catch optimizer bugs.
VAST feature expansionCoverage expanded to collections, enums, data classes, match, exceptions, generics, floats, and concurrency.
Docker imageOfficial Docker image at ghcr.io/ccollicutt/vary with pre-installed compiler and examples.
List + List codegen fixFixed list concatenation emitting LADD (long addition) instead of list concat.
Nullable codegen fixesFixed two nullable-type code generation bugs found by VAST differential testing.
Collections codegen fixesFixed collections builtin bypass, None unwrap store, and flatten on empty list.
Generic type validation fixFixed generic type validation rejecting valid type parameter usage.
Formatter round-trip fixesFixed not-precedence grouping, right-associativity, and negative literal formatting.