<

v101-alpha.1

2026-03-06

Classes and data types now accept primary constructors. Functions can declare contracts with in/out/old(), and test blocks use the new observe keyword instead of the old expect builtins. Other syntax additions: triple-quoted strings, raw string literals, if-expressions, the Never type, ok/err with ?else for result handling, and defer for cleanup. The standard library has a declarative CLI system, HTTP serving, process execution, file watching, and YAML/Markdown/template/time builtins. Mutation testing now classifies survivors as LIE or GAP, with a leverage analyzer that explains why mutants survived in plain language. The website generator was rewritten from Python to Vary.

ChangeDescription
Primary constructorsClasses and data types accept constructor parameters directly in the declaration, with init blocks for validation.
Contractsin {}, out {}, and old() expressions for preconditions and postconditions on functions.
observe keywordReplaces expect_* builtins in test blocks with a single observe keyword for oracle-boundary semantics.
throws expressionobserve throws { expr } for asserting that an expression raises an error.
Named argumentsAll function, method, and constructor calls support named arguments.
Triple-quoted stringsMulti-line string literals with escape sequences and automatic dedent.
Raw string literalsr"..." and r'...' for strings without escape processing.
if-expressionsUse if/elif/else as expressions that return values.
Never typeBottom type for functions that never return normally.
ok/err and ?elseResult-style error handling with ok(), err(), and the ?else unwrap operator.
deferDeferred cleanup blocks that run when the enclosing scope exits.
Tuples 6-8 arityExtended tuple support from 5-element to 8-element tuples.
Set literalsset{} literal prefix and empty typed collection expressions.
Declarative CLI systemstdlib/cli/ module for declarative command-line argument parsing.
HTTP server builtinserve() builtin for static HTTP file serving.
Process executionrun() and cmd() builtins for structured subprocess execution.
File watchingwatch() and watch_once() builtins for filesystem change monitoring.
Yaml, Markdown, Template, TimeNew runtime builtins for YAML parsing, Markdown rendering, template engines, and time operations.
vary install/uninstallPackage install and uninstall commands for dependency management.
argv() fixFixed argv() returning an empty list.
Match/case return fixFixed codegen bug where match/case expressions did not return values correctly.
Elif/if-expr null narrowingNull safety narrowing now works inside elif branches and if-expressions.
Mutation semantic pillarsEight mutation testing pillars: oracle graph, contract mutation, effect classification, stable signatures, manifest, expression IDs, oracle validation, and integrity scoring.
Lie detectorLIE vs GAP classification with proof mutations for mutation survivor analysis.
Mutation UX 2.0Leverage analyzer, human-readable survivor explanations, and structured output for mutation results.
Website generator rewriteWebsite build tool rewritten from Python to Vary (programs/wg).
SHA256 download verificationAll binary downloads verified with SHA256 checksums.
varyup Go 1.26.1Upgraded varyup toolchain manager to Go 1.26.1 to fix stdlib CVEs.