Skip to content
This repository was archived by the owner on Sep 17, 2026. It is now read-only.

Releases: orbistry/alder

0.7.0 — 2026-09-16

Choose a tag to compare

@github-actions github-actions released this 16 Sep 01:21
1d03a3a

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 with alder cloudflare setup and
    authenticate with alder 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 under examples/ 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.4
  • alder-bundle: alder-codegen@0.6.1
  • alder-codegen: alder-solve@0.6.1
  • alder-driver: alder-codegen@0.6.1, alder-solve@0.6.1
  • alder-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 | sh

Install 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/alder

Install prebuilt binaries into your npm project

npm install @alder-script/cli@0.7.0

Download 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

Choose a tag to compare

@github-actions github-actions released this 11 Sep 14:58
b0bedb5

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 unused ModuleMeta, InterfaceCache::start_build, and
    InterfaceCache::needs_rebuild APIs that did not participate in source builds.
    Remove the unused error-discarding load_package_index convenience method;
    load_package_index_checked remains 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.2
  • alder-bundle: alder-codegen@0.5.1
  • alder-codegen: alder-solve@0.5.2
  • alder-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.2
  • alder-language-server: alder-driver@0.7.0
  • alder-solve: alder-can@0.6.1, alder-constrain@0.5.2

0.5.0 — 2026-09-07

Choose a tag to compare

@github-actions github-actions released this 07 Sep 01:59
27b8b51

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.1
  • alder-ast: alder-source@0.4.0
  • alder-bundle: alder-codegen@0.5.0
  • alder-can: alder-ast@0.3.1, alder-parse@0.5.0, alder-source@0.4.0
  • alder-codegen: alder-ast@0.3.1, alder-solve@0.5.1
  • alder-constrain: alder-ast@0.3.1
  • alder-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.0
  • alder-fmt: alder-parse@0.5.0, alder-source@0.4.0
  • alder-language-server: alder-driver@0.6.0
  • alder-parse: alder-source@0.4.0
  • alder-solve: alder-ast@0.3.1, alder-can@0.6.0, alder-constrain@0.5.1

0.4.0 — 2026-09-06

Choose a tag to compare

@github-actions github-actions released this 06 Sep 23:56
a99ee52

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...
Read more

0.3.0 — 2026-09-06

Choose a tag to compare

@github-actions github-actions released this 06 Sep 14:50
a961bb4

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 mut from 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:...

Read more

0.2.3 — 2026-09-04

Choose a tag to compare

@github-actions github-actions released this 04 Sep 19:58
a7a4a5f

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-typed Result errors, 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.0
  • alder-bundle: alder-codegen@0.3.0, alder-kernel@0.3.0
  • alder-codegen: alder-solve@0.3.0
  • alder-driver: alder-can@0.3.0, alder-codegen@0.3.0, alder-constrain@0.3.0, alder-solve@0.3.0
  • alder-solve: alder-can@0.3.0, alder-constrain@0.3.0

0.2.2 — 2026-09-04

Choose a tag to compare

@github-actions github-actions released this 04 Sep 17:38
1af0c33

Released: alder-cli 0.2.2, alder-runtime 0.2.1

Patch changes

  • alder-cli, alder-runtime — 76d003f Update the embedded Deno runtime stack to restore Windows CLI builds and add a
    Windows build to regular CI. — Thanks @rvcas!

Dependency updates

  • alder-cli: alder-runtime@0.2.1

alder-cli-v0.1.0

Choose a tag to compare

@github-actions github-actions released this 01 Sep 21:43
96e0fd7

Released: alder-cli 0.1.0