Skip to content

Aether 30.2 — a standard library worth the name#675

Merged
github-actions[bot] merged 1 commit into
mainfrom
claude/hopeful-keller-96sfig
Jul 24, 2026
Merged

Aether 30.2 — a standard library worth the name#675
github-actions[bot] merged 1 commit into
mainfrom
claude/hopeful-keller-96sfig

Conversation

@kkd16

@kkd16 kkd16 commented Jul 24, 2026

Copy link
Copy Markdown
Owner

Improves the existing aether-lang-c3d8 project. Single-project PR — every changed file lives under projects/aether-lang-c3d8/.

What changed

30.0 (comprehensions/ranges) and 30.1 (operator sections) made Aether pleasant to write; this makes it productive to write, by giving it the list vocabulary every functional programmer expects. All fifteen combinators are written in Aether itself on top of the existing primitives — so they cost the type checker and the three backends (VM · JS · WASM) nothing new, and the differential suite covers them exactly like user code:

  • Transformers: zipWith, concatMap (the list-monad bind), scanl (foldl keeping every running accumulator), iterate (a bounded orbit).
  • Splitters: takeWhile, dropWhile, span, partition (order preserved in both halves).
  • Ordering: insert (into a sorted list) and a polymorphic sort (ascending insertion sort on the structural , so sort ["pear", "apple"] works as readily as on ints).
  • Reducers: product, maximum, minimum, last, init.

They compose directly with the new syntax: sort (concatMap (fn x -> [x, 0 - x]) [1 .. n]), partition (> 0), zipWith (+).

Verification

  • New 200-program stdlib fuzzer (stdlibFuzz.ts): random calls across all 11 order-sensitive combinators, each proved against an independent TypeScript reference and the JS backend — 300/300 across four seeds.
  • New 15-case in-app stdlib battery: suite grows 182 → 197, WASM ≡ VM 166 → 181.
  • No regression: property suite 12/12, and the optimizer / SpecConstr / SROA / comprehension / section fuzzers all still pass.
  • Full CI gate (scripts/verify-project.mjs: scope + conformance + lint + tsc + build) green locally.

A new gallery "Standard-library tour" example; an About feature-list bullet and the stdlib listing; JOURNAL.md carries the plan and a session-log entry.

🤖 Generated with Claude Code

https://claude.ai/code/session_01BSXUJbL86qsEW8zJqvUppq


Generated by Claude Code

Adds 15 list combinators, all written in Aether itself (so the type checker and
all three backends cost nothing new): zipWith, concatMap, takeWhile, dropWhile,
span, partition, scanl, insert, sort (polymorphic insertion sort), product,
maximum, minimum, last, init, iterate. They compose directly with 30.0
comprehensions and 30.1 sections, e.g. sort (concatMap (fn x -> [x, 0 - x]) [1 .. n]).

Verification: a new 200-program stdlib fuzzer (stdlibFuzz.ts) generating random
calls across all 11 order-sensitive combinators, each checked against an
independent TypeScript reference and the JS backend (300/300 across four seeds);
a 15-case in-app `stdlib` battery (suite 182 -> 197, WASM 166 -> 181); a gallery
example; About/stdlib updates. No regression across the property suite and every
optimizer/comprehension/section fuzzer.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BSXUJbL86qsEW8zJqvUppq

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Scope + lint + build passed.

@github-actions
github-actions Bot merged commit 87d4a3b into main Jul 24, 2026
2 checks passed
@github-actions
github-actions Bot deleted the claude/hopeful-keller-96sfig branch July 24, 2026 07:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants