Repository navigation
0.4.0 — 2026-09-06
Released: alder-cli 0.4.0, alder-bundle 0.3.1, alder-can 0.5.0, alder-codegen 0.4.1, alder-constrain 0.5.0, alder-driver 0.5.0, alder-fmt 0.2.2, alder-kernel 0.4.1, alder-language-server 0.2.0, alder-parse 0.4.0, alder-report 0.3.0, alder-runtime 0.3.0, alder-solve 0.5.0
Minor changes
-
alder-cli,alder-driver,alder-kernel,alder-runtime— 52f2954 Add consistent Cargo-style CLI statuses, global quiet/verbose/color options,
elapsed summaries, accurate diagnostic counts, and compiler proxy reporting.
Expose optional semantic driver progress and an injected CLI renderer while
preserving source diagnostics, hyperlinks, and program/LSP streams. Add opt-in
structured runtime test results so CLI test summaries use actual executed counts
on stderr without intercepting user output or duplicating failure summaries. — Thanks @rvcas! -
alder-cli,alder-can,alder-driver,alder-report— 6590795 Generate unused import-binding warnings through resolved source lookups, respecting
aliases, shadowing, type and trait uses, and public re-exports. Preserve initializer
effects and source-order diagnostic delivery in check, build, and test commands. — Thanks @rvcas! -
alder-cli,alder-language-server— 2802ca8 Publish real compiler errors and warnings for versioned unsaved documents,
recheck dependents, and clear stale editor diagnostics. Preserve UTF-16 source
ranges and secondary requirement locations. Fix incomplete stdio responses by
using the native Tokio language-server transport. — Thanks @rvcas! -
alder-can,alder-driver,alder-solve— 8e03ebe Recover independent implementation and trait-default body failures using fresh inference attempts, retaining declaration contracts for diagnostics and suppressing dependent bodies without hiding unrelated methods. — Thanks @rvcas! -
alder-can,alder-driver— 0b70ba7 Generate unused-local and parameter warnings from resolved source bindings,
respecting shadowing, alternatives, captures, pins, guards, and writes. Explain
safe pattern discards without recommending removal of needed initializer effects. — Thanks @rvcas! -
alder-can,alder-driver— effb878 Warn on unused module value bindings using resolved references and conservative
reachability. Respect exports, recursion, shadowing, entry points, tests and
method bodies, while retaining side-effectful initializers and their helpers. — Thanks @rvcas! -
alder-can,alder-driver,alder-solve— 563041a Accumulate independent declaration type errors using fresh inference attempts,
suppress dependent failures, and retain the failed-module publication barrier. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— 8cb8b18 Check pattern exhaustiveness and redundancy uniformly across enums, Option,
Result, nested payloads, tuples, records and array prefixes. Reject refutable
bindings and parameters at compile time, report uncovered patterns and covering
source locations, and preserve effectful guard and pin behavior. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— 8dc960c Retain available record fields in missing-field diagnostics and offer conservative, unambiguous typo suggestions. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— 30635be Retain structured recursive type equations for occurs-check failures and explain
why structural cycles cannot have finite types. Use shared readable variable
names and preserve call, branch and array-element diagnostic context. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— ea12495 Preserve owned nominal identities in diagnostic types and render consumer import names, re-export aliases, or explicit module/package provenance instead of ambiguous short names. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— db5af22 Preserve structured mismatch types until diagnostic rendering, including distinct generic variables and open record/error rows. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— 5567bf1 Retain structured generic restrictions and explain concrete specialization, independent-variable equality, open-row restrictions, and shared-storage escape without speculative signature changes. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— b0bb65b Preserve structured record comparisons and distinguish missing from unexpected fields, including conservative typo suggestions and enclosing nested-record shapes. — Thanks @rvcas! -
alder-constrain,alder-driver,alder-solve— 875607f Explain immediate type expectations with contextual source labels and originating annotations, and report call arity with argument counts. — Thanks @rvcas! -
alder-driver,alder-parse— 8727140 Preserve detailed parser failures and nearby source context for core expressions,
patterns, and loops. Explain common separator and branch-syntax mistakes, label
whole Unicode characters, and identify end-of-file failures without changing
source identities or editor coordinates.Render dedicated declaration, template, and escape diagnostics. Raw macro errors
now retain the expected closing delimiter and its opening position, enabling
precise nested-delimiter and end-of-file messages.Cover active types, traits, impls, imports, attributes, queries, styles, markup,
reserved operators, direct errors, and nesting guards with reviewed rendered
regressions. Verify canonical CLI hyperlinks and LSP Unicode/EOF ranges and
related labels end to end without changing accepted syntax. — Thanks @rvcas! -
alder-driver,alder-parse— fe6e840 Retain pre-whitespace/comment boundaries in shared delimiter errors, including
parser backtracking. Report cross-line missing punctuation at the insertion
boundary and label the actual opening punctuation, not the enclosing declaration.
Keep detection evidence internal rather than labeling valid following code, retain
actual mismatched closer locations, and distinguish required separators from list
entries in CLI/editor messages. Delimiter error variants now carry ExpectedEnd
instead of a row/column pair; error-row extension and non-select query closers have
separate variants so their messages do not offer invalid continuations. — Thanks @rvcas!
Patch changes
alder-cli,alder-can,alder-driver,alder-solve— 5adcd76 Report independent statement type errors within a function using isolated retries, suppressing invalid local dependencies and delivering the results to CLI and editor consumers. — Thanks @rvcas!alder-cli,alder-report— 166922e Display compiler errors and warnings with project-relative source paths in the
CLI, including related and bundler diagnostics, without changing editor file
identities or diagnostic locations. Supported terminals receive explicit absolute
file hyperlinks behind the short labels so navigation does not depend on the
shell's working directory. — Thanks @rvcas!alder-constrain,alder-driver,alder-solve— 52732c2 Preserve structured types in missing-return, invalid Result error-kind, and associated-equality diagnostics so nested types use resolved import names at reporting time. — Thanks @rvcas!alder-constrain,alder-driver,alder-solve— 00451d1 Label the earlier local requirement when associated-type equalities conflict. — Thanks @rvcas!alder-driver,alder-solve— 6b0010f Collect invalid declaration error kinds before body inference, preventing dependent type-error cascades. — Thanks @rvcas!alder-driver— 841eb16 Keep impossible error-pattern advice within the scrutinee's declared contract rather than recommending a broader error type. — Thanks @rvcas!alder-driver,alder-solve— 8c09806 Keep enclosing function, tuple and applied type comparisons in mismatch diagnostics, including deferred Option payload checks and normalized associated types. — Thanks @rvcas!alder-driver,alder-solve— 750ac88 Preserve complete structured trait arguments and obligation chains, localize imported names consistently, retain declared and distinct inferred variables, and keep trait hints within valid equality and generic-contract rules. — Thanks @rvcas!alder-driver,alder-solve— 66077d5 Do not count nested pinned Result payloads as unconditional pattern coverage. — Thanks @rvcas!alder-driver,alder-solve— 43eaf30 Preserve argument position and callee names when optional-argument compatibility
is checked after inference, including piped calls and inconsistent Option depths. — Thanks @rvcas!alder-driver,alder-solve— 5120a13 Report independent missing trait evidence after core type-error recovery by
checking only the freshly re-inferred remainder. Preserve dependency suppression
and failed-build publication gates, and order mixed diagnostic kinds by source. — Thanks @rvcas!alder-driver,alder-solve— f137a2b Detect trait resolution cycles using complete predicate identities instead of rendered type names, allowing nested-record equality and preserving the actual missing-payload diagnostic. — Thanks @rvcas!alder-driver— 9893f6c Suppress cascading importer diagnostics after a source module fails, including
transitive public re-exports. Failed builds return no executable artifacts,
interfaces, or partial package indexes, including consumers of invalid sibling
implementation bodies. — Thanks @rvcas!alder-driver,alder-solve— 9e410e9 Retain return annotation locations for explicit returns and lambda tails, and
highlight the returned expression. Isolate annotation origins at nested lambda
and async boundaries so diagnostics do not blame an outer function's signature. — Thanks @rvcas!alder-driver,alder-solve— 51a458d Preserve return-annotation context for early record type comparisons, including transparent aliases and explicit returns, without relabeling unrelated projection failures. — Thanks @rvcas!alder-driver,alder-solve— a63a5e0 Label written return annotations in missing-return diagnostics, including aliases and async functions, without inventing annotation origins for inferred results. — Thanks @rvcas!
Dependency updates
alder-cli: alder-bundle@0.3.1, alder-driver@0.5.0, alder-fmt@0.2.2, alder-language-server@0.2.0, alder-runtime@0.3.0alder-bundle: alder-codegen@0.4.1, alder-kernel@0.4.1, alder-report@0.3.0alder-can: alder-parse@0.4.0alder-codegen: alder-solve@0.5.0alder-driver: alder-can@0.5.0, alder-codegen@0.4.1, alder-constrain@0.5.0, alder-parse@0.4.0, alder-report@0.3.0, alder-solve@0.5.0alder-fmt: alder-parse@0.4.0alder-language-server: alder-driver@0.5.0, alder-report@0.3.0alder-solve: alder-can@0.5.0, alder-constrain@0.5.0