Skip to content

0.6.0 — 2026-09-20

Choose a tag to compare

@github-actions github-actions released this 20 Sep 20:12
99a1a37

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.
    Provide nash test with budget checks, labels, trace controls, parallel execution,
    and terminal/JSON reports. Type-check tests with nash check while 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 Builtin for actual Plutus functions. Move compiler-owned types, constructors, representation traits, and unchecked coerce to Primitive, with the foundation package renamed to nash/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 Support pair(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 one pair 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 Add Builtin.coerce : 'a -> 'b as an unchecked, representation-preserving function. Core FromData.fromData now defaults to unchecked coercion; use validate to reject malformed scalar and nested collection data. — Thanks @MicroProofs!

  • nash-can, nash-codegen, nash-driver, nash-report, nash-solve — 352361ba Use one coercion-based ToData implementation 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 concrete ToData impls must be removed because they overlap the blanket. — Thanks @MicroProofs!

  • nash-codegen, nash-driver — 4de7fb4b Rename FromData.validateData to FromData.validate. Update method definitions, imports, and calls to use validate; validation behavior is unchanged. — Thanks @MicroProofs!

  • nash-codegen, nash-driver — a95b6910 Provide unchecked FromData conversion for every Big type through a blanket coercion impl. Move checked validate into the separate Validate trait; migrate validation impls and trait imports to Validate. 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 Define toData and fromData directly 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.0
  • nash-ast: nash-source@0.8.0
  • nash-can: nash-ast@0.9.0, nash-source@0.8.0
  • nash-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.0
  • nash-constrain: nash-ast@0.9.0, nash-can@0.9.0
  • nash-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.0
  • nash-ir: nash-ast@0.9.0, nash-plutus@0.3.0
  • nash-language-server: nash-driver@0.8.0, nash-report@0.5.0
  • nash-nitpick: nash-ast@0.9.0
  • nash-parse: nash-source@0.8.0
  • nash-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.0
  • nash-solve: nash-ast@0.9.0, nash-can@0.9.0, nash-constrain@0.7.0
  • nash-test: nash-config@0.5.0, nash-plutus@0.3.0, nash-source@0.8.0