Releases: orbistry/nash
Release list
0.7.0 — 2026-09-27
Released: nash-cli 0.7.0, nash-ast 0.12.0, nash-can 0.13.0, nash-codegen 0.4.3, nash-constrain 0.8.3, nash-docs 0.2.0, nash-driver 0.12.0, nash-fmt 0.2.0, nash-ir 0.3.4, nash-language-server 0.4.6, nash-nitpick 0.3.3, nash-parse 0.9.0, nash-plutus 0.3.3, nash-report 0.6.0, nash-solve 0.9.2, nash-source 0.10.0, nash-test 0.4.2
Minor changes
-
nash-cli,nash-fmt,nash-parse,nash-report— fd56cc68 Add an AST-based Nash source formatter with 80-column layout, comment preservation,
and source snapshot tests. Exposenash format(fmt), in-place and stdin
formatting, and contextual--checkdiffs through the existing report style.
Correct whitespace handling after message keywords and before constructor docs.
Allow aligned explicit continuations insidedowithout merging statements. — Thanks @MicroProofs! -
nash-cli,nash-docs— d87929ed Render searchable HTML and Markdown API documentation withnash docs, including compiler-bundled Base documentation. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-docs,nash-driver,nash-report,nash-solve— 4a3ec22f Add Primitive.map as a native pair-list alias with storable key/value types.
Map builtins and library results preserve the alias. Library Eq implementations
use structural Data equality for Big-element lists and Big/Big maps, and retain
selected element equality for Little elements and mixed maps. No optimizer
special case is needed. Generic callers with unknown element representations
must request container Eq directly. Map equality preserves order and duplicates.Keep reflexive Lift inference nominal when checking alias identity, so explicit
alias conversions can infer hidden type parameters without a false competitor. — Thanks @MicroProofs! -
nash-can,nash-codegen,nash-driver— 77149037 Move boolean helpers and &&/|| into Logic, below Eq and Ord. Preserve fully
applied short-circuit behavior and default application scope. Qualified callers
must use Logic.and/or/not/xor instead of Bool; explicit operator imports use
Logic instead of Prelude. Simplify equality and boolean ordering with the helpers. — Thanks @MicroProofs! -
nash-docs,nash-driver— 4858f596 Extract public documentation from source comments and solved interfaces, and document the compiler-bundled Base API. — Thanks @MicroProofs! -
nash-parse,nash-source— 551b5d96 Preserve source comments and documentation in the surface AST for formatting and documentation extraction. Retain comment regions and text through parser backtracking, and attach module and declaration documentation. — Thanks @MicroProofs!
Patch changes
nash-cli— 0cfd85a3 Process format inputs concurrently with asynchronous filesystem and stream I/O, and keep formatting work off Tokio executor threads. — Thanks @MicroProofs!nash-codegen,nash-driver,nash-plutus— 44e22412 Remove completed performance experiments, benchmark fixtures and unused benchmark dependencies while retaining functional coverage. — Thanks @MicroProofs!nash-codegen— 26011dab Lower unused native-unit bindings to a single-branch UPLC case, preserving strict sequencing without a lambda/application pair. — Thanks @MicroProofs!nash-fmt— bc3d00cd Wrap constrained type signatures before the fat arrow, keeping the function type together when it fits. Start multiline exposing lists on the next line. — Thanks @MicroProofs!nash-fmt— 27d64a27 Keep short definitions and arithmetic compact, and place do blocks after assignment and bind operators without extra indentation. — Thanks @MicroProofs!nash-plutus— 70a160a9 Decode deeply nested Flat terms with an explicit stack, avoiding host stack overflow for large generated programs. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-codegen@0.4.3, nash-docs@0.2.0, nash-driver@0.12.0, nash-fmt@0.2.0, nash-language-server@0.4.6, nash-report@0.6.0, nash-test@0.4.2nash-ast: nash-source@0.10.0nash-can: nash-ast@0.12.0, nash-source@0.10.0nash-codegen: nash-ast@0.12.0, nash-can@0.13.0, nash-ir@0.3.4, nash-plutus@0.3.3, nash-solve@0.9.2, nash-test@0.4.2nash-constrain: nash-ast@0.12.0, nash-can@0.13.0nash-docs: nash-ast@0.12.0, nash-can@0.13.0, nash-driver@0.12.0, nash-parse@0.9.0, nash-report@0.6.0, nash-source@0.10.0nash-driver: nash-ast@0.12.0, nash-can@0.13.0, nash-codegen@0.4.3, nash-constrain@0.8.3, nash-nitpick@0.3.3, nash-parse@0.9.0, nash-plutus@0.3.3, nash-report@0.6.0, nash-solve@0.9.2, nash-source@0.10.0, nash-test@0.4.2nash-fmt: nash-parse@0.9.0, nash-report@0.6.0, nash-source@0.10.0nash-ir: nash-ast@0.12.0, nash-plutus@0.3.3nash-language-server: nash-driver@0.12.0, nash-report@0.6.0nash-nitpick: nash-ast@0.12.0nash-parse: nash-source@0.10.0nash-report: nash-ast@0.12.0, nash-can@0.13.0, nash-constrain@0.8.3, nash-nitpick@0.3.3, nash-parse@0.9.0, nash-source@0.10.0nash-solve: nash-ast@0.12.0, nash-can@0.13.0, nash-constrain@0.8.3nash-test: nash-plutus@0.3.3, nash-source@0.10.0
0.6.3 — 2026-09-26
Released: nash-cli 0.6.3, nash-can 0.12.0, nash-codegen 0.4.2, nash-constrain 0.8.2, nash-driver 0.11.0, nash-ir 0.3.3, nash-language-server 0.4.5, nash-plutus 0.3.2, nash-report 0.5.3, nash-solve 0.9.1, nash-test 0.4.1
Minor changes
-
nash-can,nash-driver,nash-plutus— d7301b1f Consolidate Data conversion and checking in traits. Allow explicit little-type
ToData and FromData implementations alongside Big-only identity blankets. Add
independent optional Decode instances, including Cardano V3 types, and remove
the separate encoder and decoder combinator modules.Encode Flat terms iteratively so large context decoders do not exhaust the host stack. — Thanks @MicroProofs!
-
nash-can,nash-driver— bec1d2ac Add integer gcd/lcm/square-root operations and result-checking predicates,
normalized little rational arithmetic, and Big/little Crypto wrappers over
Plutus hash and signature builtins. Move the Bytes hash helpers into Crypto. Embed Rational and Crypto with implicit
qualified imports, exact reference snapshots and predicate budget comparisons. — Thanks @MicroProofs! -
nash-can,nash-driver— 6c489a62 Ship Cardano V3 context, address, governance, value, and interval modules in Base. Use native value builtins, explicit Nash wire validation, and Haskell-generated encoding and interval comparisons. — Thanks @MicroProofs! -
nash-can— 4c3c9dbb Add Function to the application default imports for qualified access to applyForward and applyBackward. — Thanks @MicroProofs! -
nash-driver— 4f8f3a68 Choose small-biased bit widths before generating Prop.intAtLeast offsets and wide Prop.int magnitudes. Preserve arbitrary precision while replacing the zero-or-huge distribution with useful small nonzero values. Use exact expModInteger powers within each eight-bit band, with CEK budget snapshots comparing CPU and memory. Expose Int.pow2 and use its exact modular fast path in Int.pow for base two. — Thanks @MicroProofs! -
nash-driver— 594d180d Complete Prop generators with booleans, options, bounded and exact bytes, weighted alternatives, and arbitrary-precision integer generation. Normalize Big/little bounds and weights, preserve strict replay groups, and express tuple2 through generator do. Add source snapshots for range properties and reduced counterexamples. — Thanks @MicroProofs!
Patch changes
nash-driver— 09ca8317 Use pipe operators for list Data conversions and share their implementations through Function. — Thanks @MicroProofs!nash-driver— 80fbf743 Use a compile-time constant array for small powers of two in Int.pow2 and the base-two Int.pow path. Budget snapshots compare runtime arrays, constant arrays and modular exponentiation; constant lookup uses less CPU and memory without runtime table construction. — Thanks @MicroProofs!nash-driver— 80fbf743 Remove predicate-filtered generators and their bounded retry loop, fixtures, and documentation. Build valid values directly through generator composition. — Thanks @MicroProofs!nash-driver— 100e54a5 Use pipe operators for one-argument call chains across the base library. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-codegen@0.4.2, nash-driver@0.11.0, nash-language-server@0.4.5, nash-report@0.5.3, nash-test@0.4.1nash-codegen: nash-can@0.12.0, nash-ir@0.3.3, nash-plutus@0.3.2, nash-solve@0.9.1, nash-test@0.4.1nash-constrain: nash-can@0.12.0nash-driver: nash-can@0.12.0, nash-codegen@0.4.2, nash-constrain@0.8.2, nash-plutus@0.3.2, nash-report@0.5.3, nash-solve@0.9.1, nash-test@0.4.1nash-ir: nash-plutus@0.3.2nash-language-server: nash-driver@0.11.0, nash-report@0.5.3nash-report: nash-can@0.12.0, nash-constrain@0.8.2nash-solve: nash-can@0.12.0, nash-constrain@0.8.2nash-test: nash-plutus@0.3.2
0.6.2 — 2026-09-25
Released: nash-cli 0.6.2, nash-ast 0.11.0, nash-can 0.11.0, nash-codegen 0.4.1, nash-constrain 0.8.1, nash-driver 0.10.0, nash-ir 0.3.2, nash-language-server 0.4.4, nash-nitpick 0.3.2, nash-parse 0.8.0, nash-report 0.5.2, nash-solve 0.9.0, nash-source 0.9.0, nash-test 0.4.0
Minor changes
nash-ast,nash-can,nash-codegen,nash-parse,nash-report,nash-solve,nash-source— 95d828a2 Distinguish implementation heads by compiler-owned representation classes. Allow disjoint Big and Little blankets, preserve representation bounds during selection and evidence resolution, and accept inline Little bounds. — Thanks @MicroProofs!nash-can,nash-driver,nash-solve— 9cc6614c Infer missing components of multi-parameter constraints from unique compatible implementations or supplied dictionaries. Retain connected hidden variables in generic signatures, account for identity Lift, and reject ambiguous conversions. Map.keys and Map.values now accept Big maps or little pair lists and return little lists with unchanged element types. — Thanks @MicroProofs!nash-can,nash-driver— 2ebeab1f Add composable Data decoders, encoders, and Map helpers to bundled Base. Embed nested Base modules with implicit qualified imports. Make Data.tag and Data.fields direct constructor accessors. — Thanks @MicroProofs!nash-codegen,nash-driver,nash-test— feeb1edb Use nested Choice/Group traces for property generation, strict replay, and reduction. Compose generator functions through ordinary Functor, Applicative, and Monad instances in Nash. Preserve reduced replay trees in runner outcomes. Retain concrete little type layouts when specializing generic trait helpers. — Thanks @MicroProofs!nash-driver,nash-test— 04cb160c Use consumed-draw feedback to repair unsuccessful property reductions. Reconstruct boundary proposals in Nash and validate them with strict replay. Add adaptive draw deletion, joint numeric reduction, whole-draw reordering, and coordinated decrement/deletion passes. — Thanks @MicroProofs!
Patch changes
nash-driver— 22000039 Use Monad and Functor operations in property list and byte generators while preserving replay group boundaries. — Thanks @MicroProofs!nash-driver— 1a46ff5a Exercise nested little choice traces through compiled Nash generators and the
CEK, including Rust-side group deletion, strict replay boundaries, dependent
bounds, and consumed-trace normalization. — Thanks @MicroProofs!nash-driver,nash-test— 940d8d58 Evaluate rebuilt property candidates without regenerating them through replay, cache their complete outcomes, and express list element grouping through Monad.bind. — Thanks @MicroProofs!nash-driver,nash-test— 661376a3 Normalize recorded property traces in Rust instead of reversing groups during Nash execution. Remove the unused Test.assertFailed helper. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-codegen@0.4.1, nash-driver@0.10.0, nash-language-server@0.4.4, nash-report@0.5.2, nash-test@0.4.0nash-ast: nash-source@0.9.0nash-can: nash-ast@0.11.0, nash-source@0.9.0nash-codegen: nash-ast@0.11.0, nash-can@0.11.0, nash-ir@0.3.2, nash-solve@0.9.0, nash-test@0.4.0nash-constrain: nash-ast@0.11.0, nash-can@0.11.0nash-driver: nash-ast@0.11.0, nash-can@0.11.0, nash-codegen@0.4.1, nash-constrain@0.8.1, nash-nitpick@0.3.2, nash-parse@0.8.0, nash-report@0.5.2, nash-solve@0.9.0, nash-source@0.9.0, nash-test@0.4.0nash-ir: nash-ast@0.11.0nash-language-server: nash-driver@0.10.0, nash-report@0.5.2nash-nitpick: nash-ast@0.11.0nash-parse: nash-source@0.9.0nash-report: nash-ast@0.11.0, nash-can@0.11.0, nash-constrain@0.8.1, nash-nitpick@0.3.2, nash-parse@0.8.0, nash-source@0.9.0nash-solve: nash-ast@0.11.0, nash-can@0.11.0, nash-constrain@0.8.1nash-test: nash-source@0.9.0
0.6.1 — 2026-09-22
Released: nash-cli 0.6.1, nash-ast 0.10.0, nash-can 0.10.0, nash-codegen 0.4.0, nash-constrain 0.8.0, nash-driver 0.9.0, nash-ir 0.3.1, nash-language-server 0.4.3, nash-nitpick 0.3.1, nash-parse 0.7.1, nash-plutus 0.3.1, nash-report 0.5.1, nash-solve 0.8.0, nash-source 0.8.1, nash-test 0.3.0
Minor changes
nash-ast,nash-can,nash-codegen,nash-constrain,nash-driver,nash-nitpick,nash-solve— aee8c3d2 Overload bare boolean and unit expressions through FromBool and FromUnit, with
little defaults and bundled implementations for bool, Bool, unit, and Unit.
Like integer literals, unannotated values retain their literal constraints;
annotate concrete entry points where needed. Qualified constructors and patterns
retain their declared types. Add source snapshots for inference, diagnostics,
custom conversions, and execution. — Thanks @MicroProofs!nash-ast,nash-can,nash-codegen,nash-driver,nash-nitpick,nash-parse,nash-report,nash-solve,nash-source,nash-test— 3f9188b0 Name property generation Prop throughout the compiler, Base, diagnostics and
examples. Use direct draws returning values and PRNG states. Remove the identity
run helper, generator map/bind functions and generator trait instances; ordinary
Option do notation remains available for explicit state-threaded draws. — Thanks @MicroProofs!nash-can,nash-codegen,nash-driver,nash-report,nash-solve— 402557e5 Complete Base type helpers with Big or little inputs and little outer results.
Preserve payload types in Lift conversions, support identity conversion for all
types, and keep mixed-representation boolean calls lazy. Add source snapshots
for helper behavior and rejected recursive conversions. — Thanks @MicroProofs!nash-can,nash-driver— afaa06a4 Keep computation trait instances on little representations. Add mixed Big/little
integer arithmetic and ordering helpers, byte append/ordering helpers, Map.union,
and Option.apply; return little outer representations without converting payloads.
Remove Result/result, its implicit import, and Option.toResult from bundled Base. — Thanks @MicroProofs!nash-codegen,nash-driver,nash-plutus,nash-solve,nash-test— dccae3df Use a function alias for generators, returning value and next PRNG state per draw.
Remove the redundant replay count. Prepare properties once and retain their
state, body function, and deferred display function without rerunning generators.
Preserve function aliases in typed definitions and captured variables inside
native constructor and case nodes when returning CEK closures. — Thanks @MicroProofs!nash-codegen,nash-driver,nash-parse— 9a7fe0ec Move property sampling, rejection, tuple preparation and deferred body/display
functions into Nash Test helpers. Keep codegen responsible for source callbacks
and pattern binding. Compose assertion capture traces through Nash helpers while
preserving failure-only evaluation and compiler trace settings. Base Test uses
Builtin.trace directly. Allow keyword-named qualified references in source,
removing the compiler special case for Test-module traces. — Thanks @MicroProofs!nash-driver,nash-test— 1d057156 Use little prng state with native bytes, integers, and lists for property testing.
Pass native constructor terms between generators and the runner, removing Data
wrapping from seeded draws and replay. — Thanks @MicroProofs!nash-driver— e4abaade Add List.isLength for Big or little lists and integer counts, using dropList
and a singleton pattern rather than traversing the full list to count it. — Thanks @MicroProofs!nash-solve— 76a7a02e Allow record updates on visible single-constructor labeled types. Preserve
constructor encoding, declared field order, and existing field type checking. — Thanks @MicroProofs!
Patch changes
nash-codegen— 24a661d6 Reuse list tails across Big field projections and preserve unchanged suffixes when updating Big records. — Thanks @MicroProofs!nash-codegen— 4bdf1519 Use declared Big record field counts to reuse adjacent tails without requiring earlier field reads. — Thanks @MicroProofs!nash-codegen,nash-driver— b3699dba Use shared native list and pair cases for field extraction and Base traversal.
Reuse case-bound tails across adjacent accesses and use dropList for remaining
gaps of two or more, preserving evaluation order and record update suffixes. — Thanks @MicroProofs!nash-codegen— 737b7237 Trust solved constructor layouts when compiling patterns. Remove Data variant
checks for typed Big unions, omit dispatch for single-constructor types, and use
native integer case dispatch for dense constructor tags. Preserve strict
scrutinee evaluation and explicit matches on unrestricted Data. Add Nash source,
Core, UPLC, and execution snapshots for Bool, Unit, and nested constructors. — Thanks @MicroProofs!nash-codegen,nash-driver— 76a7a02e Skip payload decoding for ignored Data-pattern fields. Use direct Data
unwrappers in Base validation implementations, preserving their failure behavior
and existing element validation without redundant Data variant dispatch. — Thanks @MicroProofs!nash-codegen,nash-driver— ba13694e Preserve short-circuiting for fully applied Bool.and and Bool.or calls, including assertions. Correct Show Data constructor formatting and add executable snapshots for bundled Base traits and operators. — Thanks @MicroProofs!nash-codegen— 4243f95b Skip ignored Big constructor and record field projections during pattern
lowering. Reuse list tails between required fields and avoid reconstructing
unused Big-list tails while preserving strict scrutinee evaluation. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-codegen@0.4.0, nash-driver@0.9.0, nash-language-server@0.4.3, nash-report@0.5.1, nash-test@0.3.0nash-ast: nash-source@0.8.1nash-can: nash-ast@0.10.0, nash-source@0.8.1nash-codegen: nash-ast@0.10.0, nash-can@0.10.0, nash-ir@0.3.1, nash-plutus@0.3.1, nash-solve@0.8.0, nash-test@0.3.0nash-constrain: nash-ast@0.10.0, nash-can@0.10.0nash-driver: nash-ast@0.10.0, nash-can@0.10.0, nash-codegen@0.4.0, nash-constrain@0.8.0, nash-nitpick@0.3.1, nash-parse@0.7.1, nash-plutus@0.3.1, nash-report@0.5.1, nash-solve@0.8.0, nash-source@0.8.1, nash-test@0.3.0nash-ir: nash-ast@0.10.0, nash-plutus@0.3.1nash-language-server: nash-driver@0.9.0, nash-report@0.5.1nash-nitpick: nash-ast@0.10.0nash-parse: nash-source@0.8.1nash-report: nash-ast@0.10.0, nash-can@0.10.0, nash-constrain@0.8.0, nash-nitpick@0.3.1, nash-parse@0.7.1, nash-source@0.8.1nash-solve: nash-ast@0.10.0, nash-can@0.10.0, nash-constrain@0.8.0nash-test: nash-plutus@0.3.1, nash-source@0.8.1
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
0.5.0 — 2026-09-18
Released: nash-cli 0.5.0, nash-codegen 0.2.0, nash-driver 0.7.0, nash-language-server 0.4.1, nash-report 0.4.0, nash-solve 0.6.0
Minor changes
nash-cli,nash-driver,nash-report— 1650217 Add validator entry-point diagnostics and build solved modules into Plutus V3 scripts withnash buildoutput in UPLC, Flat, and single-wrapped CBOR formats. — Thanks @MicroProofs!nash-cli,nash-codegen,nash-driver— bf78f35 Complete validator builds with project and CLI target/trace settings, production
test-block exclusion, protocol-10 target validation, and verified script hashes.
Write single-wrapped CBOR as hex text instead of binary and track generated
artifacts for safe stale-output cleanup. Existing output directories without an
ownership manifest must be cleared of colliding artifacts or replaced with a
fresh output directory. Optimizer settings remain unavailable. — Thanks @MicroProofs!nash-codegen— ca0a5ee Compile reachable solved definitions with static trait specialization, scoped field-access sharing, checked program assembly, and bounded comptime evaluation. Add exhaustive Core traversal helpers, single-wrapped CBOR encoding, and executable Vesting budget baselines. — Thanks @MicroProofs!nash-codegen,nash-driver— 9440314 Add Core IR with explicit representations, UPLC text printing and checked DeBruijn conversion, executable structural lowering, recursion rewriting, complete builtin mapping, and lazy canonical type conversion for code generation. Add checked Data casts, shared pattern decision trees, evidence normalization, layout-demand analysis, and a driver callback retaining solved build state. — Thanks @MicroProofs!nash-solve— fb37ab1 Canonicalize and type-check assertions, aborts, traces, and compile-time expressions while preserving source locations, dependency tracking, solved node types, and pattern coverage checks. — Thanks @MicroProofs!nash-solve— c064513 Publish solved types for every canonical expression and pattern in the owning scheme's type-variable scope for code generation. — Thanks @MicroProofs!
Patch changes
-
nash-cli,nash-report— 6a9afd5 Display diagnostic source paths relative to the loaded workspace or package root, with absolute file hyperlinks on supported terminals, including related diagnostics. Preserve miette diagnostic-code headers and severity markers, and retain absolute source identities for JSON and editor clients. — Thanks @MicroProofs! -
nash-cli,nash-codegen,nash-driver,nash-report,nash-solve— 3cb7a0f Preserve miette diagnostic codes and error/warning markers in terminal output. Show source paths relative to the project root while keeping file hyperlinks absolute.Expand colorless rendered diagnostic snapshot coverage across parser, canonicalizer, solver, driver, and CLI tests. Record Nash source instead of Rust assertion expressions in source-driven snapshots, move codegen snapshots to source-compilation tests, and check snapshot metadata for regressions. Keep direct assertions for internal error values and hand-built Core behavior. — Thanks @MicroProofs!
-
nash-codegen— 4d27cd2 Add Nash source-to-UPLC snapshot tests for collections, pattern matching,
data conversions, traces, and validators. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-codegen@0.2.0, nash-config@0.4.0, nash-driver@0.7.0, nash-language-server@0.4.1, nash-plutus@0.2.0, nash-report@0.4.0nash-codegen: nash-ast@0.8.0, nash-can@0.8.0, nash-constrain@0.6.0, nash-ir@0.2.0, nash-nitpick@0.2.2, nash-parse@0.6.1, nash-plutus@0.2.0, nash-solve@0.6.0nash-driver: nash-ast@0.8.0, nash-can@0.8.0, nash-codegen@0.2.0, nash-config@0.4.0, nash-constrain@0.6.0, nash-nitpick@0.2.2, nash-parse@0.6.1, nash-plutus@0.2.0, nash-report@0.4.0, nash-solve@0.6.0nash-language-server: nash-driver@0.7.0, nash-report@0.4.0nash-report: nash-ast@0.8.0, nash-can@0.8.0, nash-constrain@0.6.0, nash-nitpick@0.2.2, nash-parse@0.6.1, nash-solve@0.6.0nash-solve: nash-ast@0.8.0, nash-can@0.8.0, nash-constrain@0.6.0, nash-parse@0.6.1, nash-report@0.4.0
0.4.0 — 2026-09-10
Released: nash-cli 0.4.0, nash-ast 0.7.1, nash-can 0.7.0, nash-constrain 0.5.0, nash-driver 0.6.0, nash-language-server 0.4.0, nash-nitpick 0.2.1, nash-parse 0.6.0, nash-region 0.3.0, nash-report 0.3.0, nash-solve 0.5.0, nash-source 0.7.0
Minor changes
-
nash-cli,nash-constrain,nash-language-server,nash-parse,nash-report,nash-solve— e3e72a7 Use concise diagnostics with full expected/actual type comparisons, expectation-origin labels, and stable codes independent of display titles. Retain parser opening positions for closing-delimiter reports. Support arbitrary secondary labels and related reports across source files.Extend diagnostic JSON with code, severity, labels, suggestions, and related reports. JSON messages now contain styled prose without embedded source drawings; consumers should render the structured labels. LSP diagnostic codes now use stable identifiers instead of titles and include secondary and related source locations. — Thanks @MicroProofs!
-
nash-can— d06f2c5 Borrow module data and local binding maps during canonicalization instead of cloning the full environment at each scope. Preserve shadowing, diagnostics, and error recovery. — Thanks @MicroProofs! -
nash-can,nash-language-server,nash-parse,nash-region,nash-report,nash-source— 8bb97f6 Use source-sized coordinates and diagnostic widths throughout parsing and reporting. Check LSP coordinate conversion instead of truncating. Reject oversized Unicode escapes without integer overflow, and make arbitrary lookahead offsets safe. — Thanks @MicroProofs! -
nash-constrain,nash-driver,nash-report,nash-solve— 0ed0c75 Infer directly from the canonical AST into the existing union-find and predicate engine. Remove the allocated constraint tree and intermediate inference Type, preserving schemes, evidence, rank ownership, recursive-group sequencing, and complete diagnostics. Pass canonical modules directly to the solver. — Thanks @MicroProofs! -
nash-driver— 7dab841 Remove unused disk interface-cache APIs, serialization, and cache metadata. Preserve in-memory exports, kind contracts, and fingerprints returned by compilation. — Thanks @MicroProofs! -
nash-driver,nash-parse— 3bd387a Require UTF-8 text at the parser boundary instead of arbitrary bytes. Remove unchecked string conversions and pass source text directly from the driver. — Thanks @MicroProofs!
Patch changes
nash-can,nash-solve— e22bfb5 Use ordered map ranges for trait candidate lookup, evidence construction, entailment, and missing-implementation suggestions. Preserve candidate order without a second index. — Thanks @MicroProofs!nash-parse,nash-report— 9977e60 Report excessive expression, pattern, and type nesting before stack exhaustion. Parse flat sequences and nested comments with loops. — Thanks @MicroProofs!nash-parse— 28c946c Accumulate function arguments and binary operators without cloning partial chains. Keep parser arena allocation linear in operator-chain length. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-driver@0.6.0, nash-language-server@0.4.0, nash-report@0.3.0nash-ast: nash-region@0.3.0, nash-source@0.7.0nash-can: nash-ast@0.7.1, nash-parse@0.6.0, nash-region@0.3.0, nash-source@0.7.0nash-constrain: nash-ast@0.7.1, nash-region@0.3.0nash-driver: nash-ast@0.7.1, nash-can@0.7.0, nash-constrain@0.5.0, nash-nitpick@0.2.1, nash-parse@0.6.0, nash-region@0.3.0, nash-report@0.3.0, nash-solve@0.5.0, nash-source@0.7.0nash-language-server: nash-driver@0.6.0, nash-region@0.3.0, nash-report@0.3.0nash-nitpick: nash-ast@0.7.1, nash-region@0.3.0nash-parse: nash-region@0.3.0, nash-source@0.7.0nash-report: nash-ast@0.7.1, nash-can@0.7.0, nash-constrain@0.5.0, nash-nitpick@0.2.1, nash-parse@0.6.0, nash-region@0.3.0, nash-solve@0.5.0, nash-source@0.7.0nash-solve: nash-ast@0.7.1, nash-can@0.7.0, nash-constrain@0.5.0, nash-parse@0.6.0, nash-region@0.3.0, nash-source@0.7.0nash-source: nash-region@0.3.0
0.3.0 — 2026-09-10
Released: nash-cli 0.3.0, nash-can 0.6.1, nash-constrain 0.4.1, nash-driver 0.5.0, nash-language-server 0.3.0, nash-parse 0.5.1, nash-report 0.2.0, nash-solve 0.4.1
Minor changes
nash-cli,nash-can,nash-constrain,nash-driver,nash-language-server,nash-solve— b7ff823 Collect independent compiler errors with dependency-aware recovery, retain failed module dependencies, and render owned diagnostics in the terminal, JSON, and language server. Preserve trait-method call names in error context. Add JSON and warning controls tonash check, and publish diagnostics for unsaved editor buffers with UTF-16 ranges. — Thanks @MicroProofs!nash-parse,nash-report— b7ff823 Add compiler report documents, source spans, terminal rendering and name suggestions. Expose parser token classifiers and preserve nested parse errors for diagnostics. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-driver@0.5.0, nash-language-server@0.3.0, nash-report@0.2.0nash-can: nash-parse@0.5.1nash-driver: nash-can@0.6.1, nash-constrain@0.4.1, nash-parse@0.5.1, nash-report@0.2.0, nash-solve@0.4.1nash-language-server: nash-driver@0.5.0, nash-report@0.2.0nash-report: nash-can@0.6.1, nash-constrain@0.4.1, nash-parse@0.5.1, nash-solve@0.4.1nash-solve: nash-can@0.6.1, nash-constrain@0.4.1, nash-parse@0.5.1
0.2.6 — 2026-09-10
Released: nash-cli 0.2.6, nash-ast 0.7.0, nash-can 0.6.0, nash-constrain 0.4.0, nash-driver 0.4.0, nash-nitpick 0.2.0, nash-parse 0.5.0, nash-solve 0.4.0, nash-source 0.6.0
Minor changes
nash-cli,nash-driver,nash-nitpick— c4b63fd Add Maranget exhaustiveness and redundancy checking across declarations,
trait defaults, impl methods and nested expressions. Render missing-pattern
examples and handle trait-overloaded literals conservatively.
Reject modules with incomplete or redundant patterns after type solving,
before publishing interfaces or retaining solved modules for dependents. — Thanks @MicroProofs!nash-cli,nash-ast,nash-can,nash-constrain,nash-driver,nash-parse,nash-solve,nash-source— adf37e3 Replace row polymorphism with nominal record aliases. Resolve literals by
visible field sets, preserve declaration-order metadata, and resolve record
operations before generalization. Support qualified lowercase type names and
alias constructor functions while preserving trait-based literals and
representation predicates.
Use the complete primitive type inventory under the Builtin qualifier and
represent unit uniformly as a named builtin type throughout inference and
instance selection.
Preserve labeled constructor metadata, support construction and pattern sugar,
and permit field projection only through visible single-constructor unions.
Keep parenthesized record literals as positional constructor arguments. — Thanks @MicroProofs!
Dependency updates
nash-cli: nash-driver@0.4.0nash-ast: nash-source@0.6.0nash-can: nash-ast@0.7.0, nash-parse@0.5.0, nash-source@0.6.0nash-constrain: nash-ast@0.7.0nash-driver: nash-ast@0.7.0, nash-can@0.6.0, nash-constrain@0.4.0, nash-nitpick@0.2.0, nash-parse@0.5.0, nash-solve@0.4.0, nash-source@0.6.0nash-nitpick: nash-ast@0.7.0nash-parse: nash-source@0.6.0nash-solve: nash-ast@0.7.0, nash-can@0.6.0, nash-constrain@0.4.0, nash-parse@0.5.0, nash-source@0.6.0
0.2.5 — 2026-09-08
Released: nash-cli 0.2.5, nash-ast 0.6.0, nash-can 0.5.0, nash-constrain 0.3.0, nash-driver 0.3.0, nash-parse 0.4.0, nash-solve 0.3.0, nash-source 0.5.0
Minor changes
-
nash-cli,nash-ast,nash-can,nash-constrain,nash-driver,nash-parse,nash-solve,nash-source— 3495cc5 Infer Haskell 98 kinds with occurs checks and defaulting. Check storage
requirements through separate representation predicates and inline
representation annotations. Infer datatype contexts with a terminating SCC
worklist and enforce them at declarations and local or imported uses.Preserve higher-kinded and partial alias applications, captured variables,
head-only impl coherence, superclass evidence and literal defaulting. Export
closed kinds and ordered predicate contexts through interfaces. Use
elementwise builtin-list Eq, structural Big Eq and reflexive Lift. — Thanks @MicroProofs! -
nash-cli,nash-driver— dc3d24f Carry discovered package ownership into canonicalization and imported
interfaces so core literal defaulting works through the CLI. Preserve
application identities and reject conflicting ownership of a source URI. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-solve— 343b710 Desugar do statements through the checked core Monad.bind method with sequential pattern and let scope. Reject refutable bind patterns and missing core Monad declarations. Verify inferred constraints and evidence against explicit nested bind calls. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-solve— ec35b41 Provide structural Eq for all Big types, reject explicit Big Eq overrides,
and retain compiler-owned equality evidence through inference and resolution. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— 011f4fc Desugar prefix negation to the checked core Num.negate method with evidence on its generated method node. Remove the canonical Negate variant, fabricated method scheme, and dedicated negation constraints. Report a missing core Num method during canonicalization. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— 25ee81e Add canonical trait declarations, predicates, method references, and impl evidence. Preserve predicate contexts when copying annotations and compare evidence type arguments independently of source locations. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— 95c059e Infer partially applied aliases while preserving nominal impl identity and closed parameterized bodies across interfaces. Saturate aliases without capturing caller variables, and make evidence keys independent of alias body normalization. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— c494bc8 Match recursive impl patterns consistently during inference, ground resolution
and superclass checks. Preserve repeated variables and full impl identity,
reject structural overlaps, and retain nested patterns in diagnostics. — Thanks @MicroProofs! -
nash-ast,nash-can— 6b3cf28 Represent the compiler-owned reflexive Lift rule explicitly in evidence. Recognize only the exact core trait during superclass checking, prove Big without narrowing rigid types, and reject overlapping constructor impls. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— 1aa6f28 Add the first real core Eq and Literal implementations and CLI acceptance.
Use little list for list literals and patterns, with Storable element predicates.
Put all compiler-known types in scope and count literal trait imports as used. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— 44f917f Constrain integer, string and bytes literals through their core literal traits, retaining ordered literal and Eq evidence for patterns. Canonicalize bytes literals and preserve qualified polymorphic schemes for let-destructuring at the original pattern node. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-solve— 84b506d Expose the specified representation cast bindings only inside nash/core, with
symbolic lowering operations and independent nominal source and target types. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-solve— 719e577 Preserve the full tuple arity in impl keys and evidence lookup. Large tuple heads no longer wrap onto smaller tuple heads and produce false overlap errors. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-solve— fc9fe15 Export the specified Builtin value schemes with checked representation predicates, including
the Storable list and pair APIs. Keep backend identifiers symbolic so the AST
does not depend on the Plutus runtime. Normalize builtin unit annotations and
impl heads to the same unit type as (). — Thanks @MicroProofs! -
nash-ast,nash-can,nash-solve— e05004f Expose the real bool and Data constructors through the synthetic Builtin
interface. Recognize bool patterns by the exact core identity and count their
imports correctly, removing the old Basics.Bool special case. — Thanks @MicroProofs! -
nash-ast,nash-can,nash-constrain,nash-solve— 5904496 Allow infix declarations backed by local or imported trait methods. Preserve
the operator provider, backing method identity, and checked scheme across
interfaces, with evidence attached to each operator use and section. — Thanks @MicroProofs! -
nash-can,nash-constrain,nash-solve— c2a42e7 Support all tuple components in canonicalization, constraints, inference, impl resolution, and error types. Preserve tuple tails when instantiating schemes and reject mismatched arities, component types, and recursive types. — Thanks @MicroProofs! -
nash-can— e469b3e Retain impl metadata in module interfaces and expose global trait and impl tables to subsequent passes. Reject duplicate impl keys across build interfaces, with both defining modules in the diagnostic. — Thanks @MicroProofs! -
nash-can— a39b831 Check impl superclass requirements using global instances and the impl context's superclass closure. Report missing proofs, context cycles, and bounded-search exhaustion without depending on declaration order. — Thanks @MicroProofs! -
nash-can— 0919811 Resolve trait predicates in annotations, check their arity and free variables, and retain contexts on top-level and local typed definitions. — Thanks @MicroProofs! -
nash-can— 390409f Remove the superseded interface deep-copy API. Compiled interfaces now borrow the retained build arena, preserving original type and evidence identities. — Thanks @MicroProofs! -
nash-can,nash-solve— 38e93c3 Resolve matching user-defined little/Big twin constructors by qualification. Bare names select the little twin and module-qualified names select the Big twin, with independent import privacy. Preserve duplicate-constructor errors for unrelated declarations and malformed pairs. — Thanks @MicroProofs! -
nash-can— d43d7c3 Canonicalize impl heads and method bodies, check head and context kinds, and substitute method types without capturing head variables. — Thanks @MicroProofs! -
nash-can,nash-solve— 1a8fb4f Allow partial named constructors and nominal aliases in higher-kinded type
annotations. Retain unsupplied alias parameters and diagnose invalid value
positions through kind checking; keep overapplication errors. — Thanks @MicroProofs! -
nash-can— 6ab29e5 Export and import trait schemes and method metadata. Preserve their identities in retained build arenas, retain private metadata for checking public schemes, and report ambiguous trait and method imports. — Thanks @MicroProofs! -
nash-can,nash-driver— 9ad0e77 Retain canonical module nodes and solved trait evidence together for the duration of a build. Separate the canonical...