0.6.0 — 2026-09-20
Released: nash-cli 0.6.0, nash-ast 0.9.0, nash-can 0.9.0, nash-codegen 0.3.0, nash-config 0.5.0, nash-constrain 0.7.0, nash-driver 0.8.0, nash-ir 0.3.0, nash-language-server 0.4.2, nash-nitpick 0.3.0, nash-parse 0.7.0, nash-plutus 0.3.0, nash-report 0.5.0, nash-solve 0.7.0, nash-source 0.8.0, nash-test 0.2.0
Minor changes
-
nash-cli,nash-codegen,nash-config,nash-driver— 9fa1d0a7 Add module-local unit tests and properties, scoped test dependencies, source-aware
power assertions, deterministic seeded fuzzing and counterexample shrinking.
Providenash testwith budget checks, labels, trace controls, parallel execution,
and terminal/JSON reports. Type-check tests withnash checkwhile keeping them
out of production builds. Add core Fuzz and Test support with explicit imports.Preserve short-circuit evaluation for the core boolean infix operators, including
inside instrumented assertions. — Thanks @MicroProofs! -
nash-cli,nash-codegen,nash-plutus— 7d8979fa Target protocol 11 and UPLC 1.1.0 for all supported ledger languages. Lower
conditionals and boolean/list matches to native case terms, and dispatch Data
branches through a chooseData tag and native case. Preserve branch laziness and
single evaluation of scrutinees.Enable protocol-11 builtin and constant validation, correct constant-case branch
limits and UTF-8 string costing, and encode nested Data constants without panics.
Bundled evaluator costs remain estimates rather than live ledger parameters. — Thanks @MicroProofs! -
nash-cli,nash-ast,nash-can,nash-codegen,nash-constrain,nash-driver,nash-ir,nash-language-server,nash-nitpick,nash-report,nash-solve— 9d2a2b40 Embed compiler-versioned Base sources in the driver and make Prelude available automatically without a declared dependency, download, or installed source directory. Keep implicit imports out of source syntax and snapshots.Reserve
Builtinfor actual Plutus functions. Move compiler-owned types, constructors, representation traits, and uncheckedcoercetoPrimitive, with the foundation package renamed tonash/base.Check bundled Base through in-process compilation tests and remove CLI subprocess tests. — Thanks @MicroProofs!
-
nash-ast,nash-can,nash-codegen,nash-constrain,nash-driver,nash-ir,nash-nitpick,nash-parse,nash-report,nash-solve,nash-source— 21914bc6 Supportpair(first, second)patterns for builtin pairs in bindings, function arguments, lambdas, and case expressions. Preserve the distinction from tuples and enforce Storable component types.Lower pair patterns to native UPLC case even when a field is ignored. Use the same Core pair case for Data constructor payloads and implement Base Pair.fst and Pair.snd with Nash patterns. — Thanks @MicroProofs!
-
nash-ast,nash-can,nash-codegen,nash-ir— 09eb8f56 Restrict Builtin to actual Plutus operations and remove compiler cast nodes,
cast expansion, generated validation checkers, and privileged core intrinsics.
Implement core identity, Data encoding, decoding, and representation bridges in
Nash using concrete builtins and existing Data patterns.Data builtins now preserve nominal Int, Bytes, List, and Map types. Core fromData
reconstructs and validates nested values; shallow unchecked reinterpretation is
no longer available. Existing Data wire formats are preserved. — Thanks @MicroProofs! -
nash-ast,nash-codegen,nash-driver— a219dde2 Make Data.Constr accept onepair int (list Data)payload in expressions and patterns. Require explicit pair destructuring for the tag and fields, lowered with native UPLC case. Update Base helpers and source snapshots. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-nitpick,nash-report,nash-solve— 0ec9311b Canonicalize and type-check module-local tests and property generators. Preserve
scoped test imports and private declarations, enforce unit sequencing and
irrefutable generator patterns, and report source-aware test diagnostics. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-codegen,nash-driver— e69fd3cc AddBuiltin.coerce : 'a -> 'bas an unchecked, representation-preserving function. CoreFromData.fromDatanow defaults to unchecked coercion; usevalidateto reject malformed scalar and nested collection data. — Thanks @MicroProofs! -
nash-can,nash-codegen,nash-driver,nash-report,nash-solve— 352361ba Use one coercion-basedToDataimplementation for every Big type, including user-defined types and nested collections. Remove redundant recursive encoding implementations. Permit blanket impls in the trait's defining module while retaining overlap checks; existing concreteToDataimpls must be removed because they overlap the blanket. — Thanks @MicroProofs! -
nash-codegen,nash-driver— 4de7fb4b RenameFromData.validateDatatoFromData.validate. Update method definitions, imports, and calls to usevalidate; validation behavior is unchanged. — Thanks @MicroProofs! -
nash-codegen,nash-driver— a95b6910 Provide uncheckedFromDataconversion for every Big type through a blanket coercion impl. Move checkedvalidateinto the separateValidatetrait; migrate validation impls and trait imports toValidate. Unchecked conversion no longer requires validation instances for a type or its fields. — Thanks @MicroProofs! -
nash-test— 0c345bb3 Add deterministic CEK test execution, seeded property generation, exact replay
caching and choice-sequence shrinking. Report independent budget and generator
failures, labels, traces, and source-aligned assertions in terminal and JSON. — Thanks @MicroProofs!
Patch changes
nash-can,nash-parse— 9fa1d0a7 Preserve parsed call endpoints and the complete outer infix expression region so
assertion reports include closing delimiters in their original source text. — Thanks @MicroProofs!nash-codegen— c2d806a0 Lower mutually recursive functions using native constructor packets and case dispatch instead of selector lambdas. Preserve mixed arities, partial applications, lexical captures and lazy branch selection. — Thanks @MicroProofs!nash-codegen— 3ec1a9d9 Lower boolean and list matches directly to native case without an extra scrutinee binding. Dispatch Data shapes directly with lazy chooseData branches, removing the manufactured integer tag and second dispatch. Destructure unConstrData pairs with native case. — Thanks @MicroProofs!nash-codegen,nash-driver— c985eecb DefinetoDataandfromDatadirectly in their blanket impls using inline Big bounds, instead of trait defaults. Conversion behavior is unchanged. — Thanks @MicroProofs!nash-codegen— bdde6c9f Use dropList for Big record and constructor field offsets of two or more, retaining tailList for offset one. Share repeated constant-offset projections within their evaluation scope. — Thanks @MicroProofs!nash-driver— bfb38fbc Make the bundled map Lift instance explicitly require Big keys and values. Add regression coverage for rejecting native pair components and preserving already encoded map entries through lift and lower. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-codegen@0.3.0, nash-config@0.5.0, nash-driver@0.8.0, nash-language-server@0.4.2, nash-report@0.5.0, nash-test@0.2.0nash-ast: nash-source@0.8.0nash-can: nash-ast@0.9.0, nash-source@0.8.0nash-codegen: nash-ast@0.9.0, nash-can@0.9.0, nash-config@0.5.0, nash-ir@0.3.0, nash-plutus@0.3.0, nash-solve@0.7.0, nash-test@0.2.0nash-constrain: nash-ast@0.9.0, nash-can@0.9.0nash-driver: nash-ast@0.9.0, nash-can@0.9.0, nash-codegen@0.3.0, nash-config@0.5.0, nash-constrain@0.7.0, nash-nitpick@0.3.0, nash-parse@0.7.0, nash-plutus@0.3.0, nash-report@0.5.0, nash-solve@0.7.0, nash-source@0.8.0, nash-test@0.2.0nash-ir: nash-ast@0.9.0, nash-plutus@0.3.0nash-language-server: nash-driver@0.8.0, nash-report@0.5.0nash-nitpick: nash-ast@0.9.0nash-parse: nash-source@0.8.0nash-report: nash-ast@0.9.0, nash-can@0.9.0, nash-constrain@0.7.0, nash-nitpick@0.3.0, nash-parse@0.7.0, nash-source@0.8.0nash-solve: nash-ast@0.9.0, nash-can@0.9.0, nash-constrain@0.7.0nash-test: nash-config@0.5.0, nash-plutus@0.3.0, nash-source@0.8.0