Commit Graph

215 Commits

Author SHA1 Message Date
Brummel 8068be27a1 roadmap: P2 milestone — module-qualified class names + type-driven method dispatch 2026-05-11 00:36:15 +02:00
Brummel 33932cb6e6 spec: canonical type names — name MethodNameCollision as the workaround it is 2026-05-11 00:33:57 +02:00
Brummel b840c340d4 spec: canonical type names — class-names out-of-scope rationale 2026-05-11 00:28:39 +02:00
Brummel 4d614a053f spec: revise canonical type names — module-scoped, bare=local 2026-05-11 00:22:28 +02:00
Brummel 72d719010c spec: revise canonical type names — AST is context-free 2026-05-11 00:11:39 +02:00
Brummel b6a84041eb spec: canonical type names — internal qualification 2026-05-10 23:55:05 +02:00
Brummel 2c974e3c7e plan: 23.3 Ord class + primitive instances (compare__Int/Bool/Str) 2026-05-10 22:57:54 +02:00
Brummel 24f900194f iter 23.2.5: journal entry — Eq class + primitive instances 2026-05-10 22:51:29 +02:00
Brummel c6c3c21013 plan: 23.2 Eq class + primitive instances (eq__Int/Bool/Str) 2026-05-10 21:47:49 +02:00
Brummel c461a0b5a8 iter 23.1.5: JOURNAL entry 2026-05-10 21:36:41 +02:00
Brummel 9cf616a593 plan: 23.1 — Ordering ADT + prelude skeleton + auto-load 2026-05-10 21:10:27 +02:00
Brummel 9c3d29084c spec: 23 status → Approved 2026-05-10 21:04:06 +02:00
Brummel 03b6d15db4 spec: 23 — Eq/Ord Prelude (Show + heap-Str ABI deferred to next milestone) 2026-05-10 20:35:06 +02:00
Brummel 2a98b31d84 iter architect-iron-law.3: JOURNAL entry + close roadmap todo 2026-05-10 20:03:21 +02:00
Brummel 1f5689a952 plan: architect-iron-law extension — sweep script + lockstep-checklist 2026-05-10 20:00:40 +02:00
Brummel 1de300ed2c fieldtest close: Floats — B1 fixed, F1+G1 documented, architect-checklist queued 2026-05-10 17:14:09 +02:00
Brummel 1ce2ff42dc fieldtest follow-up: G1 (DESIGN.md NaN-print Unspecified) + F1 roadmap entry 2026-05-10 16:59:18 +02:00
Brummel 2052f4dfcc fieldtest: floats — 4 examples, 6 findings (1 bug, 1 friction, 1 spec_gap, 3 working) 2026-05-10 16:57:38 +02:00
Brummel 741f3bbf08 audit close: Floats milestone — clean (architect/bench/rustdoc all green; carry-on) 2026-05-10 16:47:10 +02:00
Brummel 41dd2ddc1b floats iter 5: JOURNAL — iter-5 close + Floats milestone close 2026-05-10 16:40:37 +02:00
Brummel 965e628c52 floats iter 5.4: roadmap — mark Floats [x] + unblock Post-22 Prelude 2026-05-10 16:38:45 +02:00
Brummel 47b32bff3d floats iter 5.3: DESIGN.md — new §Float semantics subsection (A5 determinism contract) 2026-05-10 16:38:24 +02:00
Brummel 2d2646afa7 floats iter 5.2: DESIGN.md — Float in primitive types + refreshed builtins list 2026-05-10 16:37:42 +02:00
Brummel fd287c9740 plan: floats iter 5 — prose + DESIGN.md + milestone close 2026-05-10 16:33:35 +02:00
Brummel 73d65baa81 floats iter 4: JOURNAL — iteration close (codegen + E2E) 2026-05-10 16:28:10 +02:00
Brummel 0c514e034b plan: floats iter 4 — codegen + runtime (Float lowering paths + E2E fixture) 2026-05-10 15:51:20 +02:00
Brummel dbec90cefd floats iter 3: JOURNAL — iteration close (typecheck + builtins) 2026-05-10 15:43:31 +02:00
Brummel 00a1c5f0e7 plan: floats iter 3 — typecheck + builtins (widen + install + Pattern::Lit::Float reject) 2026-05-10 15:20:09 +02:00
Brummel 4ccf1f25c1 floats iter 2: JOURNAL — iteration close (surface layer) 2026-05-10 15:14:02 +02:00
Brummel 6664af4995 plan: floats iter 2 — surface lex + parse + print (round-trip property) 2026-05-10 14:57:34 +02:00
Brummel f227cce846 floats iter 1: JOURNAL — iteration close (schema layer) 2026-05-10 14:50:42 +02:00
Brummel ec2811194b floats iter 1.1: Literal::Float variant + canonical hex serde + drift-test anchors 2026-05-10 14:36:08 +02:00
Brummel cdc9d64169 plan: floats iter 1 — schema layer (Literal::Float + canonical hex serde + primitive registration) 2026-05-10 14:26:17 +02:00
Brummel e37366f8dd spec: floats LLVM-IR fixes — fcmp une for !=, synth.rs sites, container-slot precision
Three classes of fix from the LLVM-IR audit:

1. != on Float: fcmp une, NOT fcmp one. one is 'ordered and not
   equal' (false for nan!=nan, breaks IEEE / user-fixed constraint).
   une is 'unordered or not equal' (true for nan!=nan, matches IEEE
   and Rust f64::ne).

2. crates/ailang-codegen/src/synth.rs touches the Float primitive at
   five sites the original spec missed: llvm_type, builtin_ail_type,
   builtin_effect_op_ret, type_descriptor (descriptor 'Fl' to avoid
   collision with ADT-name F-prefix), builtin_binop (becomes a
   transitional artefact, replaced by type-dispatched helper).

3. Float literals lower as LLVM hex-float syntax (double 0x4014...);
   nan/inf/neg_inf as direct SSA double constants at use site (NOT
   via the __unreachable__ analogue, which is a terminator
   instruction not a value); container slot layout precision
   (monomorphisation vs bitcast).
2026-05-10 14:14:54 +02:00
Brummel f7e2c3ee7a spec: floats — operators polymorphic over {Int, Float} + NaN/Inf constants + is_nan
Mainstream-aligns the Float surface: + - * / < <= > >= become
forall-quantified with codegen-dispatch on Int|Float (parallel to
today's == path), instead of the original draft's wort-style
fadd/flt/etc. Adds nan/inf/neg_inf as builtin constants and
is_nan : (Float) -> Bool. % stays Int-only (no fmod yet).

Iteration plan now flags iter 3 and iter 4 as widening passes
that must hold the no-Int-regression line.
2026-05-10 14:08:35 +02:00
Brummel 406bde0efc spec: floats milestone — Float as IEEE-754 binary64 primitive 2026-05-10 13:54:55 +02:00
Brummel b523ceb18d design-md-consolidation: audit close — JOURNAL entry + 3 follow-up items in roadmap (rustdoc sweep, architect-iron-law extension, drift-test fidelity widening) 2026-05-10 13:21:43 +02:00
Brummel 63df0c085c design-md-consolidation audit-tidy: close 3 architect drift items (Def kinds class/instance + Type::Forall constraints + letrec correction) 2026-05-10 13:20:40 +02:00
Brummel c6e433321e design-md-consolidation 4: journal entry + milestone close + roadmap mark done 2026-05-10 13:14:51 +02:00
Brummel e68d927e5a design-md-consolidation 4.4 fixup: drop 'Sharpened later the same day' temporal anchor + supplementary 'see closure conversion in JOURNAL' pointer 2026-05-10 13:10:45 +02:00
Brummel 49fc6738ba design-md-consolidation 4.4: cross-ref audit — JOURNAL queue → roadmap.md; bench pointers retained as binding-evidence anchors 2026-05-10 13:09:16 +02:00
Brummel 1605be75cb design-md-consolidation 4.3: drop 'Recently lifted gates' history paragraph from §What-is-not-yet-supported 2026-05-10 13:07:38 +02:00
Brummel 127a34a21b design-md-consolidation 4.2: strip ailang-docwriter agent workflow detail from Verification section; rule survives 2026-05-10 13:06:10 +02:00
Brummel 96270ced35 design-md-consolidation 4.1: fix Project-ecosystem stale agents/ path; expand Docs bullet to name roadmap.md + specs/ + plans/ 2026-05-10 13:04:03 +02:00
Brummel 9185014022 plan: design-md-consolidation 4 (workflow / cross-reference cleanup — final sweep) 2026-05-10 13:03:01 +02:00
Brummel af2064af6e design-md-consolidation 3: journal entry + roadmap sweep-3 closed 2026-05-10 12:58:54 +02:00
Brummel 934a6e18e6 design-md-consolidation 3.4 fixup: align DESIGN.md ClassDef/InstanceDef JSON tags with ast.rs lowercase serde rename 2026-05-10 12:53:36 +02:00
Brummel ac16100319 design-md-consolidation 3.2: invert §Data-model SoT — DESIGN.md canonical, ast.rs projection, drift test enforces 2026-05-10 12:46:15 +02:00
Brummel a100389c2f design-md-consolidation 3.1: remove 2 Rust code blocks from Decision 10 (Type::Fn + Suppress) — schema lives in §Data-model 2026-05-10 12:43:49 +02:00
Brummel 500aafb307 plan: design-md-consolidation 3 (schema SoT inversion + data-model hardening + drift test) 2026-05-10 12:42:35 +02:00