WhatsNew: post-fieldtest follow-up — bug fix, spec tightening, str_concat
This commit is contained in:
@@ -124,3 +124,15 @@ Queue back to user-direction: the next roadmap item is that corpus migration, wh
|
||||
`.ail` is now the form you read, edit, and check in. The JSON-AST counterpart is still the canonical hashable representation, but it is no longer something you look at or maintain by hand — the tools derive it from `.ail` whenever they need it. About a hundred example programs that previously existed as JSON-AST were converted to `.ail` and the JSON files were deleted; only eight stay as `.ail.json` (seven negative-test fixtures whose subject matter cannot be expressed in `.ail`, plus the prelude, which is loaded at compile time and depends on internal plumbing that lands in a later milestone).
|
||||
|
||||
If you were used to opening a `.ail.json` file to see what a program looks like, you now open the `.ail` sibling instead.
|
||||
|
||||
## 2026-05-13 — Three follow-ups from the Form-A field test
|
||||
|
||||
Post-fieldtest follow-up complete; three iterations landed back-to-back.
|
||||
|
||||
- `ail check` now catches unbound variables inside instance method bodies. Before this, the typecheck step silently passed the program and the error only surfaced at build time as a degraded internal-error diagnostic with no source location or symbol hint.
|
||||
|
||||
- The Form-A authoring spec now documents the typeclass surface — class declarations, instance declarations, and constraints on polymorphic functions — so a downstream LLM author can write typeclass programs from the spec alone, without having to mine the example corpus to reverse-engineer the grammar.
|
||||
|
||||
- New `str_concat` primitive for combining two strings. The natural Show-MyType body shape (`"Item " ++ int_to_str x`-style labelled output) is now expressible; previously every such instance had to either drop the prefix or punt entirely.
|
||||
|
||||
Queue back to user-direction: two next-milestone candidates queued on the roadmap — retiring the per-type `io/print_int|bool|float` operators in favour of polymorphic `print` (about eighty-six fixtures to migrate), or moving the prelude embed to Form-A as compile-time source (resolves the one remaining `.ail.json` carve-out that exists for architectural reasons rather than subject-matter reasons).
|
||||
|
||||
Reference in New Issue
Block a user