From 3fed372d7738a4749f589d885c7718a74925f254 Mon Sep 17 00:00:00 2001 From: Brummel Date: Tue, 12 May 2026 00:39:59 +0200 Subject: [PATCH] =?UTF-8?q?WhatsNew:=20iter=2023.5=20=E2=80=94=20Eq/Ord=20?= =?UTF-8?q?prelude=20milestone=20closed?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/WhatsNew.md | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/docs/WhatsNew.md b/docs/WhatsNew.md index 285218b..8dc7fba 100644 --- a/docs/WhatsNew.md +++ b/docs/WhatsNew.md @@ -38,3 +38,11 @@ An in-flight design for the eq/ord prelude was retired today because it would ha The blocker that stranded yesterday's eq/ord prelude work is fixed. The language now handles polymorphic helper functions that call class methods inside their body — the canonical shape every prelude helper takes — by routing both kinds of specialisation through one unified pass instead of two competing ones. A small fixture (`cmp_max` at three integer values) confirms it end-to-end, and the regression check shows the six existing primitive eq/ord symbols still produce bit-identical output. Next: the five missing prelude utilities (`ne`, `lt`, `le`, `gt`, `ge`) and their end-to-end tests. + +## 2026-05-12 — Eq/Ord prelude finished, milestone closed + +The eq/ord prelude milestone is done. `ne`, `lt`, `le`, `gt`, `ge` now ship in the auto-loaded prelude as polymorphic helpers that work on any type with the matching class instance — verified end-to-end at Int, Bool, Str, and at a user-defined type with hand-written instances. The same helpers applied to Float produce a Float-aware error pointing back to the language reference's Float section, instead of the generic "no instance" message. + +A couple of latent bugs in the type-checker surfaced while testing the natural shape of these helpers (one in the linearity check, one in the polymorphic-specialiser collector) and got fixed in the same pass. The benchmark suite is clean except one sub-millisecond noise-band metric just over the tolerance line — expected given the prelude grew, ratifiable at the next baseline refresh. + +Show + `print`-rewire remains the next prelude piece, gated on heap-string runtime support.