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