font.4th: default system font-set capsule, 113 glyphs (item 4.3.6c)
Punch list §25 item 4.3.6c complete. Digits, upper/lowercase, ASCII punctuation, Latin-1 Supplement, and General Punctuation, each a stroke-drawing word in the 4.3.6 em-square convention. Corrected mid-build: the first pass used G-LINE only, missing that CIRCLE/ARC/ELLIPSE already existed (4.3.3b). Reworked all round shapes to use them via new em-square-aware wrappers (G-CIRCLE/G-ARC/G-ELLIPSE/ EM-R, fabric.4th 5000-5002), bounded to quarter/half/three-quarter/ full sweeps to avoid unbounded per-glyph angle tuning. font.4th also redefines DISPATCH-GLYPH/DRAW-GLYPH themselves, not just the six DISPATCH-* bucket words, since fabric.4th's originals were compiled early against the 4.3.6b placeholders (CASE early-binding, §27.6.5). Three-arch acceptance boot clean, Stadium conservation unchanged. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
4427986c96
commit
5d2e1c2184
@@ -4514,12 +4514,55 @@ document and committing that amendment as its own item.*
|
||||
> amd64 (`logs/20260809-191200`), aarch64 (`logs/20260809-191237`), riscv64
|
||||
> (`logs/20260809-191327`).
|
||||
|
||||
- [ ] **4.3.6c — Default system font-set capsule.** The confirmed 113-glyph v1 repertoire
|
||||
- [x] **4.3.6c — Default system font-set capsule.** The confirmed 113-glyph v1 repertoire
|
||||
(95 ASCII printable + 11 Latin-1 Supplement + 7 General Punctuation, itemized in §27.6.4),
|
||||
each glyph a stroke-drawing word in the 4.3.6 em-square convention returning its own
|
||||
`em-advance`, one capsule. *Done when:* every glyph in the 113-glyph v1 repertoire is
|
||||
defined, lint-clean (`mkcapsule --lint`), individually verified to render a recognizable
|
||||
shape via screendump. *Refs:* §27.6.4.
|
||||
> **Done 2026-08-09.** `capsules/font.4th`, all 113 glyphs, blocks 4925-4984, 60 blocks.
|
||||
>
|
||||
> **Correction found mid-build, not designed around silently:** the first pass built every
|
||||
> glyph with `G-LINE` only, missing that `CIRCLE`/`ARC`/`ELLIPSE` already existed
|
||||
> (item 4.3.3b, `fabric.4th` 4907-4912) for exactly this. User caught it and chose to rework
|
||||
> everything already built, not just curves going forward. Required new em-square-aware
|
||||
> wrappers — `EM-R` (magnitude scaling, no `GOX`/`GOY` translation) plus `G-CIRCLE`/
|
||||
> `G-ARC`/`G-ELLIPSE`, added to `fabric.4th` blocks 5000-5002 (non-contiguous with
|
||||
> `fabric.4th`'s own 4900-4924 range because `font.4th` had already claimed 4925+ —
|
||||
> BLOCK_MAP.md checked before picking 5000). Scoped to this item (4.3.6c), not a reopening
|
||||
> of 4.3.6, same precedent as the FORGET-hook/`stadium_owner` additions elsewhere in this
|
||||
> list — but 4.3.6 itself should be read as having grown these three words later.
|
||||
> `ARC`'s sweep direction was derived, not assumed (`ang=0`→3 o'clock, increasing angle
|
||||
> sweeps CCW through 12 o'clock) and confirmed by a one-shot render before any glyph used
|
||||
> it (top semicircle at `a0=0 a1=PI`, matched the derivation).
|
||||
>
|
||||
> **Bounded curve scope** (advisor-flagged risk: hand-tuning arc sweep angles per glyph is
|
||||
> unbounded, one QEMU boot per iteration). Only quarter/half/three-quarter/full sweeps of
|
||||
> the four Q48.16 literals (`0`, `PI/2`=102944, `PI`=205887, `3PI/2`=308831) plus full
|
||||
> `CIRCLE`/`ELLIPSE`, no custom-fitted angles. Converted: digit `0`, upper `O` `Q` `C` `G`
|
||||
> `D`, lower `o` `b` `d` `p` `q` `c` `e`, punct `%` `.` `@`. `D`'s bowl and the lowercase
|
||||
> `b`/`d`/`p`/`q` bowls use one `ARC` each, radius = half the bowl height, centered on the
|
||||
> stem's x — the arc's two endpoints land exactly on the stem ends by construction (no
|
||||
> seam). Everything else (`S`/`s`/`&`/digits 2-9/etc.) stays the original blocky `G-LINE`
|
||||
> style — recognizable, not hand-fitted, per the same advisor guidance.
|
||||
>
|
||||
> **Early-binding fix applied, not just documented:** per §27.6.5 (found during 4.3.6b),
|
||||
> `CASE` binds early, so `font.4th` redefines all six `DISPATCH-*` bucket words with real
|
||||
> `CASE` tables (replacing fabric.4th's 4.3.6b placeholders) *and* redefines
|
||||
> `DISPATCH-GLYPH`/`DRAW-GLYPH` themselves (blocks 4979-4984) — fabric.4th's originals were
|
||||
> also compiled early, against the old placeholder buckets, so redefining only the six
|
||||
> bucket words would not have been enough. Verified live: `DRAW-GLYPH` called directly with
|
||||
> codepoints 48/67/111/176 rendered the real `0`/`C`/`o`/`°` (ellipse/arc/ellipse/circle),
|
||||
> not `TOFU`, confirming the full pipeline binds to the new definitions.
|
||||
>
|
||||
> Verification: `mkcapsule --lint capsules/font.4th` clean. All 113 glyphs screendump-
|
||||
> verified in one grid render (digits+`%.@`, upper, lower, Latin-1+GenPunct rows) plus a
|
||||
> separate `DRAW-GLYPH`-pipeline render — arc-bowl direction, oval shapes, and dispatch
|
||||
> routing all confirmed correct by eye.
|
||||
>
|
||||
> Three-architecture acceptance boot clean, Stadium conservation unchanged
|
||||
> (`resident_sum=43691 reservoir=21845 sum=65536`): amd64 (`logs/20260809-202214`),
|
||||
> aarch64 (`logs/20260809-202252`), riscv64 (`logs/20260809-202342`).
|
||||
|
||||
- [ ] **4.3.6d — Boot-time loading.** Wire `fabric.4th` and the 4.3.6c font capsule into
|
||||
`init.4th`'s boot chain. *Done when:* standard three-arch QEMU boot shows both capsules
|
||||
|
||||
Reference in New Issue
Block a user