Verify turtle.4th rendering live, revert overdue ART-STRESS-CAMPAIGN disable
Disabled capsules/artemis/init.4th block 4170's ART-STRESS-CAMPAIGN -- its own comment already said to revert to disabled once the K-invariant/ heartbeat verification run (item 4.6, closed earlier this session) was done. This was the actual ~25-30 minute wall blocking interactive REPL access, unrelated to any DoE mechanism. Verified capsules/turtle.4th and capsules/sdk.4th live in a gtk-display QEMU session: a red hexagon (6 100 POLYGON) and a green self-intersecting star (100 STAR) both render with correct geometry and color. Screenshot in evidence/amd64/. Two real obstacles found and worked around along the way: CS's full- framebuffer PLOT loop is far slower under TCG than previously documented (closer to 20+ minutes than "slow"), and the kernel's heartbeat CSV logging draws to the same console surface PLOT writes pixels to, overwriting drawings within a fraction of a second unless silenced first with the existing HB-OFF word. Both HOWTOs updated to record this. Re-verified full three-arch acceptance boot (POST, DoE, parity) with the ART-STRESS-CAMPAIGN change: 1012/0/0 and matching dict_hash on all three, identical to the pre-change baseline. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
d1547ecdae
commit
413b5a9bbf
+50
-5
@@ -1830,8 +1830,53 @@ Not yet driven interactively through a live REPL, same DoE-before-REPL practical
|
||||
`turtle.4th`'s own still-open item.
|
||||
|
||||
This closes the mechanism + capsule work for SDK v1.9.0 scoping. Still open, not decided here:
|
||||
the `1.5.4`→`1.9.0` version-string bump itself, and whether to verify `turtle.4th`'s actual
|
||||
rendering before treating either it or this SDK as release-ready — both are release-process
|
||||
decisions, not implementation work, and belong to the user's call per the same pattern used
|
||||
throughout this scoping (`AskUserQuestion` for the calls that are genuinely the user's, not
|
||||
inferred).
|
||||
the `1.5.4`→`1.9.0` version-string bump itself. `turtle.4th`'s rendering — the other open
|
||||
item — was resolved next, below.
|
||||
|
||||
## L. `turtle.4th` rendering verified live — and a real, overdue capsule revert found doing it — 2026-08-19
|
||||
|
||||
User's explicit instruction: disable the DoE wall and verify turtle rendering interactively.
|
||||
First correction: the actual blocker was never any DoE mechanism from section K's "which DoE?"
|
||||
survey — it's `capsules/artemis/init.4th` block 4170's `ART-STRESS-CAMPAIGN`, which auto-runs
|
||||
unconditionally at Artemis's birth (itself unconditionally triggered by a `kernel_main.c`
|
||||
self-test at every boot). Block 4170's own comment already said what to do: *"TEMP: 30-
|
||||
replicate campaign enabled for the K-invariant/heartbeat verification run. Revert to `\
|
||||
ART-STRESS` (disabled) once that run is done."* That run was item 4.6, closed earlier this
|
||||
session (Section H) — the revert was already overdue, not a new decision. Reverted to
|
||||
`\ ART-STRESS-CAMPAIGN` (disabled), matching the file's own stated intent exactly.
|
||||
|
||||
**Screenshot methodology, since this codebase's tooling had none.** No QEMU monitor socket is
|
||||
configured by `Makefile.starkernel`'s `qemu` target (no `screendump` path), and this
|
||||
environment has no `import`/`ImageMagick`/`netpbm`. Used `spectacle -b -f -n -o <file>` (KDE's
|
||||
screenshot utility, background mode) against the real X11 session already running on this
|
||||
machine, then cropped to the QEMU window with a one-off PIL script — landed the result in
|
||||
`evidence/amd64/` following the existing `qemu-screenshot-<timestamp>-<description>.png`
|
||||
convention (first entry in that directory since 2026-08-11's console work).
|
||||
|
||||
**Two genuine, previously-undocumented obstacles found and worked around, not just a slow
|
||||
wait.** First attempt: launched, waited, and by the time `TURTLE-DEMO` (which calls `CS` before
|
||||
drawing) finally returned to the prompt, someone had typed directly into the QEMU window itself
|
||||
(visible in the log as a literal typo sequence — `vye`, `bye`, `b bye`, then `BYE`) and cold-
|
||||
restarted the machine before a screenshot could be taken. Established from this: (1) `CS`'s
|
||||
full-framebuffer nested `PLOT` loop is far slower than the existing "slow under TCG" caveat
|
||||
suggested — it consumed essentially this session's entire ~20+ minute runtime for one clear,
|
||||
not a minor delay; (2) the kernel's heartbeat CSV logging (`[HADES][DOE ]` rows, from
|
||||
`src/starkernel/doe_log.c`) draws to the *same* console surface `PLOT` writes pixels to, and
|
||||
scrolls continuously — anything drawn is visually overwritten within a fraction of a second
|
||||
regardless of timing, which is *why* nothing was visible in an earlier screenshot taken while
|
||||
the console was still scrolling (not a "didn't wait long enough" problem, a "wrong surface
|
||||
staying dirty" problem). `doe_log.c` already registers `HB-OFF`/`HB-ON` for exactly this
|
||||
purpose (silence/re-enable per-tick console output, `g_doe_log_enabled` flag) — calling
|
||||
`HB-OFF` before drawing, and skipping `CS` in favor of calling `HOME`/`SETCOLOR`/`POLYGON`/
|
||||
`STAR` directly, produced a clean, fast, visually correct result on the next attempt.
|
||||
|
||||
**Verified:** `S" sdk.4th" EXEC` loads live (banner prints), `HB-OFF` silences heartbeat output,
|
||||
`HOME 16711680 SETCOLOR 6 100 POLYGON` draws a correct red hexagon, `HOME 65280 SETCOLOR 100
|
||||
STAR` draws a correct green self-intersecting five-pointed star below it — both geometrically
|
||||
correct, both the requested colors, zero VM errors on any call. Screenshot:
|
||||
`evidence/amd64/qemu-screenshot-20260819-074637-turtle-polygon-star-verified.png`. Both HOWTOs
|
||||
(`TURTLE-GRAPHICS-HOWTO-20260819.md`, `SDK-HOWTO-20260819.md`) updated to record this and the
|
||||
two obstacles/workarounds, replacing their earlier "not yet visually confirmed" caveats.
|
||||
|
||||
This closes the last open item from SDK v1.9.0 scoping's own list. Only the version-string bump
|
||||
remains, and it's a release decision, not implementation work.
|
||||
|
||||
+49
-49
@@ -1,5 +1,5 @@
|
||||
# Capsule Block Manifest — Auto-generated
|
||||
<!-- Generated by mkcapsule --manifest 2026-08-19T10:07:24Z -->
|
||||
<!-- Generated by mkcapsule --manifest 2026-08-19T11:54:28Z -->
|
||||
<!-- DO NOT EDIT — re-run mkcapsule --manifest to refresh. -->
|
||||
<!-- Hand-written justifications and immutability notes live -->
|
||||
<!-- in MANIFEST.md alongside this auto-generated index. -->
|
||||
@@ -9,7 +9,7 @@
|
||||
| Capsule | Blocks claimed | xxHash64 |
|
||||
|---------|----------------|----------|
|
||||
| `ACL.4th` | 4000, 4001, 4002, 4003, 4004, 4005, 4006, 4007, 4015 | `0xd781d22148ff171d` |
|
||||
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4177, 4178, 4179, 4180, 4181, 4182, 4851, 4852 | `0x2d2c57ec0cb5ec18` |
|
||||
| `artemis:init.4th` | 4110, 4111, 4112, 4113, 4122, 4123, 4124, 4125, 4126, 4127, 4128, 4129, 4130, 4131, 4132, 4133, 4134, 4135, 4136, 4137, 4138, 4139, 4140, 4141, 4160, 4161, 4162, 4163, 4164, 4165, 4166, 4167, 4168, 4169, 4170, 4171, 4172, 4173, 4174, 4177, 4178, 4179, 4180, 4181, 4182, 4851, 4852 | `0x1859f0148048a2c1` |
|
||||
| `common:msg.4th` | 4055 | `0xa99c5bcd3877f80e` |
|
||||
| `doe-campaign.4th` | 4060, 4061, 4062, 4063, 4064, 4065 | `0x3d4549142d91ec20` |
|
||||
| `doe.4th` | 2100, 2101, 2102, 2103, 2104, 2105, 2106, 2107 | `0xb6ecf5374e8ee77c` |
|
||||
@@ -124,10 +124,10 @@
|
||||
| 4107 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4108 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4109 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4110 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4111 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4112 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4113 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4110 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4111 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4112 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4113 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4114 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4115 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4116 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
@@ -136,26 +136,26 @@
|
||||
| 4119 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4120 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4121 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4122 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4123 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4124 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4125 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4126 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4127 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4128 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4129 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4130 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4131 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4132 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4133 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4134 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4135 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4136 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4137 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4138 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4139 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4140 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4141 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4122 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4123 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4124 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4125 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4126 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4127 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4128 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4129 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4130 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4131 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4132 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4133 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4134 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4135 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4136 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4137 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4138 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4139 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4140 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4141 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4142 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4143 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4144 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
@@ -174,29 +174,29 @@
|
||||
| 4157 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4158 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4159 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4160 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4161 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4162 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4163 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4164 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4165 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4166 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4167 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4168 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4169 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4170 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4171 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4172 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4173 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4174 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4160 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4161 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4162 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4163 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4164 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4165 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4166 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4167 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4168 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4169 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4170 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4171 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4172 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4173 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4174 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4175 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4176 | `hermes:init.4th` | `0x85c7b311d1e5bf97` | ok |
|
||||
| 4177 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4178 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4179 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4180 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4181 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4182 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4177 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4178 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4179 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4180 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4181 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4182 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4200 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
||||
| 4201 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
||||
| 4202 | `user-font-demo.4th` | `0xce1fd7d1b581a56d` | ok |
|
||||
@@ -236,8 +236,8 @@
|
||||
| 4840 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
||||
| 4841 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
||||
| 4842 | `init-l8-transition.4th` | `0xbcc1a81976f0a4c9` | ok |
|
||||
| 4851 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4852 | `artemis:init.4th` | `0x2d2c57ec0cb5ec18` | ok |
|
||||
| 4851 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4852 | `artemis:init.4th` | `0x1859f0148048a2c1` | ok |
|
||||
| 4900 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 4901 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
| 4902 | `fabric.4th` | `0x9b1d061339cea98d` | ok |
|
||||
|
||||
@@ -473,10 +473,12 @@ Block 4174
|
||||
LOOP
|
||||
." [ARTSTRESS] CAMPAIGN-DONE" CR ;
|
||||
Block 4170
|
||||
( TEMP: 30-replicate campaign enabled for the )
|
||||
( K-invariant/heartbeat verification run. Revert to )
|
||||
( "\ ART-STRESS" (disabled) once that run is done. )
|
||||
ART-STRESS-CAMPAIGN
|
||||
( K-invariant/heartbeat verification run (item 4.6) )
|
||||
( completed and closed -- reverted to disabled per this )
|
||||
( block's own note. Re-enable ART-STRESS-CAMPAIGN (or )
|
||||
( \ ART-STRESS for a quick single-run smoke check) if a )
|
||||
( future change needs the full 30-rep campaign again. )
|
||||
\ ART-STRESS-CAMPAIGN
|
||||
Block 4851
|
||||
( Cheap touch target for Phase 3 fleet DoE workload -- O(1), )
|
||||
( unlike ART-TICK/ART-STATUS which scan all ART-DATA-BLKS. )
|
||||
|
||||
Binary file not shown.
@@ -88,8 +88,11 @@ Everything from `turtle.4th` and `doe.4th` is also available after loading
|
||||
identically, `dict_hash` unchanged from the pre-`sdk.4th` baseline on
|
||||
all three (expected — `sdk.4th` isn't autoloaded, so it cannot affect
|
||||
boot-time dictionary content).
|
||||
- Not yet driven interactively through a live REPL — same practical
|
||||
limitation as `turtle.4th`'s own HOWTO documents (the DoE campaign that
|
||||
auto-runs on every kernel boot blocks the REPL for ~25–30 minutes before
|
||||
serial commands can reach it). The FORTH logic is verified; the
|
||||
interactive load-and-run experience is not.
|
||||
- **Driven interactively 2026-08-19**, live over the QEMU serial socket:
|
||||
`S" sdk.4th" EXEC` loads cleanly (`SDK v1.9.0 (scoping)` banner prints),
|
||||
and the re-exported `turtle.4th` renders correctly (see that HOWTO's own
|
||||
updated verification section for the screenshot and the two practical
|
||||
gotchas found along the way — `ART-STRESS-CAMPAIGN` was the actual
|
||||
~25–30 minute wall, not any DoE mechanism, and `HB-OFF` is needed before
|
||||
drawing anything since heartbeat logging shares the same console surface
|
||||
`PLOT` draws to).
|
||||
|
||||
@@ -132,9 +132,26 @@ rather than a `POLYGON` call with `n=5`.
|
||||
`Makefile.starkernel ARCH=amd64` build, zero warnings; boot verified
|
||||
clean through POST and into the DoE campaign with the capsule present
|
||||
(not autoloaded, so it cannot affect the boot path it isn't on).
|
||||
- Not yet visually confirmed pixel-by-pixel in a live framebuffer (that
|
||||
requires an interactive `gtk`-display QEMU session with a human at the
|
||||
keyboard, or driving the serial socket past the ~25–30 minute DoE
|
||||
campaign that runs automatically before the REPL is reachable — neither
|
||||
was practical to do unattended). The arithmetic and control flow are
|
||||
verified; the actual rendered image is not.
|
||||
- **Visually confirmed 2026-08-19**, live in a `gtk`-display QEMU session:
|
||||
a red `6 100 POLYGON` (hexagon) and a green `100 STAR` both render with
|
||||
correct geometry and color. Screenshot:
|
||||
`evidence/amd64/qemu-screenshot-20260819-074637-turtle-polygon-star-
|
||||
verified.png`. Two things had to be worked out first, worth recording
|
||||
since they'll matter for any future interactive session:
|
||||
- The `~25–30` minute wall this doc used to describe turned out to
|
||||
actually be `capsules/artemis/init.4th`'s `ART-STRESS-CAMPAIGN`
|
||||
(auto-runs at Artemis's birth, unrelated to any DoE mechanism
|
||||
documented in `DOE-LIBRARY-HOWTO-20260819.md`) — it carried a stale
|
||||
`TEMP: ... revert once that run is done` comment for a verification
|
||||
run that had already closed. Reverted to disabled, matching the
|
||||
file's own note (FABRIC-2.md section K/L).
|
||||
- The kernel's heartbeat CSV logging (`[HADES][DOE ]` rows) draws to
|
||||
the *same* console surface `PLOT` draws pixels to, and scrolls
|
||||
continuously — anything drawn gets visually overwritten within a
|
||||
fraction of a second unless silenced first with `HB-OFF` (registered
|
||||
in `src/starkernel/doe_log.c`; `HB-ON` re-enables it). Do this before
|
||||
drawing anything you want to actually see.
|
||||
- `TURTLE-DEMO`'s own `CS` call turned out to be dramatically slower
|
||||
than "slow under TCG" suggested — closer to 20+ minutes than a minor
|
||||
delay, for a full-framebuffer nested `PLOT` loop. For a quick visual
|
||||
check, call `HOME`/`SETCOLOR`/`POLYGON`/`STAR` directly and skip `CS`.
|
||||
|
||||
Binary file not shown.
|
After Width: | Height: | Size: 39 KiB |
+5699
-78756
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user