Repository navigation
Releases: orbistry/alder
Release list
0.7.0 — 2026-09-16
Release Notes
Released: alder-cli 0.7.0, alder-bundle 0.5.1, alder-codegen 0.6.1, alder-driver 0.8.1, alder-language-server 0.2.4, alder-solve 0.6.1
Minor changes
alder-cli— dca31d3 Install shared Cloudflare tooling explicitly withalder cloudflare setupand
authenticate withalder cloudflare login. Keep Node user-managed, reuse pinned
tooling across compatible compiler versions, and ship stock binary-only releases
without custom installer patches. Preserve existing legacy support directories.
Keep cargo-dist's generated installation instructions and download links when
composing aggregated release notes.
Keep successful setup output in Alder's status format, showing npm diagnostics
only when installation fails; leave interactive login output unchanged. — Thanks @rvcas!
Patch changes
alder-cli,alder-driver— a9ea854 Match canonical Windows source roots to file URL paths during module discovery,
and reject unsafe archive path separators consistently across platforms. — Thanks @rvcas!alder-driver— 355ab9b Recognize routes on Windows by normalizing canonical source roots and native
path separators before route discovery, preserving generated route types. — Thanks @rvcas!alder-driver,alder-solve— dca31d3 Consolidate runnable projects underexamples/and use those shared sources in
compiler regressions and inference benchmarks. — Thanks @rvcas!
Dependency updates
alder-cli: alder-bundle@0.5.1, alder-codegen@0.6.1, alder-driver@0.8.1, alder-language-server@0.2.4alder-bundle: alder-codegen@0.6.1alder-codegen: alder-solve@0.6.1alder-driver: alder-codegen@0.6.1, alder-solve@0.6.1alder-language-server: alder-driver@0.8.1
Install alder-cli 0.7.0
Install prebuilt binaries via shell script
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/orbistry/alder/releases/download/alder-cli-v0.7.0/alder-cli-installer.sh | shInstall prebuilt binaries via powershell script
powershell -ExecutionPolicy Bypass -c "irm https://github.com/orbistry/alder/releases/download/alder-cli-v0.7.0/alder-cli-installer.ps1 | iex"Install prebuilt binaries via Homebrew
brew install orbistry/tap/alderInstall prebuilt binaries into your npm project
npm install @alder-script/cli@0.7.0Download alder-cli 0.7.0
| File | Platform | Checksum |
|---|---|---|
| alder-cli-aarch64-apple-darwin.tar.xz | Apple Silicon macOS | checksum |
| alder-cli-x86_64-apple-darwin.tar.xz | Intel macOS | checksum |
| alder-cli-x86_64-pc-windows-msvc.zip | x64 Windows | checksum |
| alder-cli-aarch64-unknown-linux-gnu.tar.xz | ARM64 Linux | checksum |
| alder-cli-x86_64-unknown-linux-gnu.tar.xz | x64 Linux | checksum |
0.5.1 — 2026-09-11
Released: alder-cli 0.5.1, alder-bundle 0.4.1, alder-can 0.6.1, alder-codegen 0.5.1, alder-config 0.2.1, alder-constrain 0.5.2, alder-driver 0.7.0, alder-language-server 0.2.2, alder-solve 0.5.2
Minor changes
alder-driver— f001988 Remove unusedModuleMeta,InterfaceCache::start_build, and
InterfaceCache::needs_rebuildAPIs that did not participate in source builds.
Remove the unused error-discardingload_package_indexconvenience method;
load_package_index_checkedremains the validated loading API. — Thanks @rvcas!
Patch changes
alder-cli— f001988 Use one options-aware command execution path and remove the redundant compile
wrapper and constant persistence flag. Remove subprocess-based CLI end-to-end
tests and their test-only dependencies; retain direct compiler, runtime, and
reporting renderer tests. — Thanks @rvcas!alder-can,alder-constrain— f001988 Remove unlinked Elm-era canonicalization and constraint implementations from
source packages. The active Alder canonicalizer and requirement traversal remain
unchanged. — Thanks @rvcas!alder-config— f001988 Remove unused PubGrub and snapshot-testing dependencies. Configuration parsing
and dependency declarations are unchanged; registry resolution remains deferred. — Thanks @rvcas!alder-solve— f001988 Restore shared inference types backed by weighted union-find and path compression.
Preserve Alder's kind checks, generic contracts, row/trait semantics, diagnostics,
and isolated recovery attempts. Add graph invariants and reproducible timing and
allocation benchmarks; remove the obsolete unlinked solver implementation. — Thanks @rvcas!
Dependency updates
alder-cli: alder-bundle@0.4.1, alder-config@0.2.1, alder-driver@0.7.0, alder-language-server@0.2.2alder-bundle: alder-codegen@0.5.1alder-codegen: alder-solve@0.5.2alder-driver: alder-can@0.6.1, alder-codegen@0.5.1, alder-config@0.2.1, alder-constrain@0.5.2, alder-solve@0.5.2alder-language-server: alder-driver@0.7.0alder-solve: alder-can@0.6.1, alder-constrain@0.5.2
0.5.0 — 2026-09-07
Released: alder-cli 0.5.0, alder-ast 0.3.1, alder-bundle 0.4.0, alder-can 0.6.0, alder-codegen 0.5.0, alder-constrain 0.5.1, alder-driver 0.6.0, alder-fmt 0.3.0, alder-language-server 0.2.1, alder-parse 0.5.0, alder-solve 0.5.1, alder-source 0.4.0
Minor changes
-
alder-cli,alder-ast,alder-bundle,alder-can,alder-codegen,alder-driver,alder-fmt,alder-language-server,alder-parse,alder-solve,alder-source— 2cc1d05 Unify bundled, local, and external imports with grouped syntax, lowercase
standard-library namespaces, explicit utility imports, identity-preserving
namespace re-exports, and canonical comment-preserving formatting. Share public
interfaces between prelude and explicit imports, reject conflicting bindings,
and make module initialization independent of import declaration order.Interface format 8 replaces earlier contracts without compatibility readers. — Thanks @rvcas!
Dependency updates
alder-cli: alder-bundle@0.4.0, alder-driver@0.6.0, alder-fmt@0.3.0, alder-language-server@0.2.1alder-ast: alder-source@0.4.0alder-bundle: alder-codegen@0.5.0alder-can: alder-ast@0.3.1, alder-parse@0.5.0, alder-source@0.4.0alder-codegen: alder-ast@0.3.1, alder-solve@0.5.1alder-constrain: alder-ast@0.3.1alder-driver: alder-ast@0.3.1, alder-can@0.6.0, alder-codegen@0.5.0, alder-constrain@0.5.1, alder-parse@0.5.0, alder-solve@0.5.1, alder-source@0.4.0alder-fmt: alder-parse@0.5.0, alder-source@0.4.0alder-language-server: alder-driver@0.6.0alder-parse: alder-source@0.4.0alder-solve: alder-ast@0.3.1, alder-can@0.6.0, alder-constrain@0.5.1
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. — Tha...
0.3.0 — 2026-09-06
Released: alder-cli 0.3.0, alder-ast 0.3.0, alder-bundle 0.3.0, alder-can 0.4.0, alder-codegen 0.4.0, alder-constrain 0.4.0, alder-driver 0.4.0, alder-fmt 0.2.1, alder-kernel 0.4.0, alder-parse 0.3.0, alder-runtime 0.2.2, alder-solve 0.4.0, alder-source 0.3.0
Minor changes
-
alder-cli,alder-ast,alder-can,alder-codegen,alder-driver,alder-kernel,alder-solve— 556a21c Treat optional record-field shorthand as an ordinary Option type and materialize omitted Option fields as None during contextual record construction.Remove separate record-field optionality from serialized interfaces and invalidate the previous interface format.
Read Fiber traversal concurrency options using ordinary Option semantics so omitted and explicit None fields both select the sequential default.
Preserve known generic Result error rows during propagation, including explicit Option fallback branches.
Provide conditional Option ordering and Unit ordering so derived record payloads use ordinary field dictionaries, including nested Options. — Thanks @rvcas!
-
alder-cli,alder-ast,alder-bundle,alder-can,alder-codegen,alder-driver,alder-kernel,alder-runtime,alder-solve— f87e540 Add inferred lazy tasks, generator-based async lowering, Promise extern lifting,
and a structured fiber runtime with interruption, scopes, finalizers,all, and
race. — Thanks @rvcas! -
alder-cli,alder-codegen,alder-solve— 556a21c Provide structural Json codecs for closed error rows with Json-capable payloads,
independent of group names and declaration order. — Thanks @rvcas! -
alder-cli,alder-bundle,alder-can— 83c2be3 Add lazy Ref cells with synchronous atomic reads, writes, updates, and modifications. — Thanks @rvcas! -
alder-cli,alder-codegen,alder-solve— 556a21c Provide structural Show for closed error rows when every payload supports Show,
independent of named error groups and their declaration order. — Thanks @rvcas! -
alder-cli,alder-driver,alder-solve— 0ddfea3 Report invalid stored dependency trait indexes once at build level, preserving
canonical module identities without attributing errors to unrelated source.
Reject incoherent registries even when the build contains no source modules. — Thanks @rvcas! -
alder-cli,alder-bundle,alder-can— 556a21c Expose Fiber.map, forEach, tryMap, and tryForEach with optional MapOptions,
execution-time concurrency validation, and sequential defaults. — Thanks @rvcas! -
alder-cli,alder-driver— 9c16136 Require explicit package and source-relative identity metadata for every source
module. Remove URI-based identity guesses and metadata-free driver entry points;
report missing metadata deterministically before publishing compiler artifacts. — Thanks @rvcas! -
alder-cli,alder-ast,alder-can,alder-codegen,alder-constrain,alder-driver,alder-parse,alder-solve,alder-source— 0db756d Represent explicit async function declarations and lazy async block syntax. — Thanks @rvcas! -
alder-cli,alder-can,alder-codegen,alder-kernel,alder-solve— 556a21c Resolve Hash structurally for closed error rows, honoring payload dictionaries
and preserving hashes across equivalent groups and row widening. Share payload
evidence with the equality superclass without duplicating nested generated code.
Remove nominal error-group derives and their declaration-order-dependent behavior;
error groups use conditional structural Eq, Show, Hash, and Json capabilities.
Normalize derived enum payloads through the ordinary annotation converter so
nominal wrappers of named error groups retain their checked structural evidence. — Thanks @rvcas! -
alder-cli,alder-bundle,alder-can— 83c2be3 Add fixed-capacity semaphores with FIFO weighted requests and scoped,
cancellation-safe permit ownership. — Thanks @rvcas! -
alder-cli,alder-bundle,alder-can— 83c2be3 Add synchronized shared cells with serialized task-based state transformations. — Thanks @rvcas! -
alder-cli,alder-driver— 0ddfea3 Stop body compilation after source-package coherence failures, reporting errors
at their defining modules and marking other modules blocked. Avoid phantom
source labels for overlapping implementations declared in different modules. — Thanks @rvcas! -
alder-ast,alder-can,alder-codegen,alder-solve— ea6b284 Resolve embedded stdlib members through packaged Alder signatures, rejecting unknown members, wrong arguments, invalid callbacks, and arity mismatches. Remove untyped builtin references and correct expected-versus-actual call diagnostics. — Thanks @rvcas! -
alder-ast,alder-can,alder-driver,alder-solve— d87e721 Carry error-row inclusion relationships in canonical and serialized annotations,
preserving them through arena copies and interface hydration. Bump the interface
format for the new scheme layout.Retain inclusion dependencies during solver generalization and instantiation,
and reject inferred inclusions between independent universal error-row tails.Resolve concrete error unions for inferred results, including exhaustive matches
across module boundaries. Preserve explicitly open result contracts and apply
directional Result return checking consistently to named functions and lambdas. — Thanks @rvcas! -
alder-ast,alder-can,alder-driver,alder-solve— 556a21c Add sparse exact-length tuple constraint metadata to annotations and stored interfaces, preserving arena copies and fingerprint identity with a new interface format. Carry imported constraints through inference and check concrete tuple lengths, constrained elements, and generic contracts.Finalize source tuple projections without allocating by the largest index, preserve fixed tuple lengths, and reject recursive tuple-element constraints. — Thanks @rvcas!
-
alder-ast,alder-can,alder-driver,alder-parse,alder-source— f7fb26b Permit type-checked reassignment and field/index writes through ordinary let bindings and function or lambda parameters. Keep assignment-aware generalization restrictions on shared replaceable values.Remove obsolete mutability fields from canonical lets, parameters, and assignment places. Local pattern bindings are writable; non-storage references retain assignment-target checks with diagnostics that no longer suggest adding
mut.Remove
mutfrom the grammar, keyword list, and source AST. Parsing uses the current grammar without compatibility handling or migration diagnostics. — Thanks @rvcas! -
alder-can,alder-driver,alder-parse,alder-source— 470e3ef Parse named optional parameter annotations and canonicalize their shorthand to
ordinary builtin Option types, including lambda and trait signatures. — Thanks @rvcas! -
alder-can,alder-driver— 749ba31 Publish public named and wildcard imports in module interfaces, preserving
original identities and checked schemes including multiple aliases of one name.
Interface construction APIs now require dependency interfaces; the driver threads
them through header and final publication. — Thanks @rvcas! -
alder-codegen,alder-driver,alder-solve— 556a21c Apply contextual recursive Option lifting to fresh record field initializers,
including direct record return contexts, without converting existing mutable
record aliases. Emit field wrapping through the centralized Option helpers. — Thanks @rvcas! -
alder-codegen,alder-constrain,alder-driver,alder-solve— 556a21c Infer contextual outer Option wrapping jointly across call arguments and emit
the resolved Some layers directly through the centralized kernel representation.
Report incompatible inference preferences with a source-aware diagnostic. — Thanks @rvcas! -
alder-codegen,alder-solve— 556a21c Allow omission of trailing Option arguments and emit explicit None values at
direct, higher-order, and piped call sites using solver-provided call metadata. — Thanks @rvcas! -
alder-codegen,alder-driver,alder-solve— [556a21c](https:...
0.2.3 — 2026-09-04
Released: alder-cli 0.2.3, alder-bundle 0.2.2, alder-can 0.3.0, alder-codegen 0.3.0, alder-constrain 0.3.0, alder-driver 0.3.0, alder-kernel 0.3.0, alder-solve 0.3.0
Minor changes
alder-can,alder-codegen,alder-constrain,alder-driver,alder-kernel,alder-solve— ac24445 Add row-typedResulterrors, inferred and propagated error rows, exhaustive
error matching, diagnostics, direct AST lowering, and typed JSON failures. — Thanks @rvcas!
Dependency updates
alder-cli: alder-bundle@0.2.2, alder-driver@0.3.0alder-bundle: alder-codegen@0.3.0, alder-kernel@0.3.0alder-codegen: alder-solve@0.3.0alder-driver: alder-can@0.3.0, alder-codegen@0.3.0, alder-constrain@0.3.0, alder-solve@0.3.0alder-solve: alder-can@0.3.0, alder-constrain@0.3.0
0.2.2 — 2026-09-04
alder-cli-v0.1.0
Released: alder-cli 0.1.0