starkernel: retarget REPL glyph rendering to TTF-TEXT's rasterizer (4.4j)

font_8x16.c keeps rendering everything through and including POST;
TTF-TEXT's rasterizer takes over at the interactive REPL boundary
(sk_repl()) via a new runtime mode switch, vt100_enable_ttf()
(console_fb_enable_ttf() wrapper), not a compile-time swap -- both
backends coexist in the same binary since boot/POST must stay
font_8x16.c per this item's own done-when.

TTF-TEXT (the FORTH word) isn't directly callable from vt100.c -- VM
stack arguments, different call shape than a one-glyph cell draw. Used
hal/ttf.c's VM-independent primitives directly instead (same rasterizer
TTF-TEXT itself calls underneath), added as a native C helper in
vt100.c. Lazily loads fonts:JetBrainsMono-Regular.ttf and kmallocs a
96-slot raster cache (covers all 95 printable ASCII, no eviction
thrash) on first switch.

Cell geometry changes at the switch (mode-aware cell_w()/cell_h()):
provisional 12x24 TTF cell (600/1000em * 20px = 12px exactly, using
4.4i's confirmed-uniform hmtx advance width) vs font_8x16's fixed 8x16
-- cols/rows re-derived and screen cleared at the switch point, same as
vt100_init() itself does. Final REPL text size is 4.4m's decision, not
this item's.

Also fixes the second call site 4.4i flagged: erase_line_range() now
uses one fb_fill_rect() instead of a per-cell font_8x16-specific blank
glyph draw, consistent with erase_display(2)'s full-screen case.

Three-arch verified: amd64/aarch64/riscv64 all reach ok>, POST
Failed: 0, identical dict-hashes. amd64 screendump shows real
proportional JetBrains Mono letterforms on the REPL tail, visibly
distinct from every prior font_8x16 screenshot.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
Robert Allan James
2026-08-11 19:56:50 -04:00
co-authored by Claude Sonnet 5
parent 64c20c78eb
commit f729b91a09
18 changed files with 55116 additions and 115 deletions
+71 -1
View File
@@ -5306,7 +5306,7 @@ document and committing that amendment as its own item.*
> `draw_cursor_glyph()`'s call, `erase_line_range()`'s call, and the `fb_cell_w()`/
> `fb_cell_h()`/`UNDERLINE_ROW` metrics that currently assume `font_8x16` specifically.
- [ ] **4.4j — Retarget the glyph-draw call site from `font_8x16.c` to `TTF-TEXT`.** Depends
- [x] **4.4j — Retarget the glyph-draw call site from `font_8x16.c` to `TTF-TEXT`.** Depends
on 4.4i. **Boundary, corrected 2026-08-11:** `font_8x16.c`/VT100 keeps rendering everything
through and including **POST** (the parity/dictionary-hash self-test) — not just the
pre-bootstrap M1M6 messages originally scoped here. POST runs *after* the capsule/VM system
@@ -5328,6 +5328,76 @@ document and committing that amendment as its own item.*
> preference"). The actual early-boot/POST fallback is `font_8x16.c` specifically, not "the
> stroke font" generically.
> **Done 2026-08-11.** `TTF-TEXT` (the FORTH word, `word_source/ttf_words.c`) turned out not
> to be directly callable from `vt100.c` — it takes VM-stack arguments and a
> string+advance-loop, a different call shape than a one-glyph-at-a-time cell draw.
> `hal/ttf.c`'s primitives underneath it (`ttf_load_from_capsule`, `ttf_raster_cache_get`,
> etc.) are VM-independent, though, exactly like `font_8x16.c`'s own C functions — so
> "retarget to TTF-TEXT" means "retarget to the same rasterizer TTF-TEXT itself uses",
> implemented as a native C helper in `vt100.c`, not a call into the FORTH word. Recording
> this now so it isn't read later as scope drift.
>
> **Boundary implemented as a runtime switch, not a compile-time swap** (this item's own
> done-when requires boot/POST to stay `font_8x16.c` while REPL output uses TTF — both must
> coexist in the same binary). New `vt100_enable_ttf()` (`vt100.c`, wrapped by
> `console_fb_enable_ttf()` in `console.c`) flips a mode flag; `draw_cursor_glyph()` and
> `erase_line_range()` branch on it. Called exactly once, at the top of `sk_repl()`
> (`repl.c`) — the actual start of "the interactive REPL itself", after boot/POST have both
> already run under `font_8x16.c`. Lazily loads `fonts:JetBrainsMono-Regular.ttf` from its
> capsule and `kmalloc`s a 96-slot raster cache (up from `ttf_words.c`'s 32 — sized to cover
> all 95 printable ASCII with no eviction thrash, since a terminal cycles through that whole
> set constantly; ~614 KB, checked against the 2 GiB kmalloc heap default before choosing it,
> trivial by comparison) on first call only.
>
> **Cell geometry changes at the switch, deliberately (advisor-reviewed option (a), not
> (b)):** `cell_w()`/`cell_h()` are now mode-aware — `font_8x16`'s fixed 8×16 in bitmap mode,
> a provisional 12×24 in TTF mode (`600/1000 × 20px = 12px` exactly, using 4.4i's own
> confirmed-uniform `hmtx` advance width so the fixed-cell grid tiles cleanly; final REPL
> text size is 4.4m's decision, not this item's — marked provisional throughout). Since the
> grid changes, `vt100_enable_ttf()` re-derives `cols`/`rows` from the new cell size and
> clears the screen, the same as `vt100_init()` itself does — safe because this runs once, at
> a point where nothing worth preserving is on screen yet.
>
> **Also fixed the second call site 4.4i flagged**, not just `draw_cursor_glyph()`'s:
> `erase_line_range()` no longer draws a per-cell blank glyph (`font_8x16`-specific, and
> already inconsistent with `erase_display(2)`'s full-screen case, which used a plain rect
> fill). A blank cell is visually identical to a filled background rect regardless of glyph
> backend, so it's now one `fb_fill_rect()` call for the whole erased range — simpler *and*
> mode-independent, closing 4.4i's inconsistency finding rather than carrying it forward.
>
> Underline positioning (the third 4.4i finding, `UNDERLINE_ROW` hardcoding "row 14 of 16")
> is branched per-mode: unchanged in bitmap mode, placed 2px below the TTF baseline in TTF
> mode — no equivalent fixed row exists there since this parser doesn't read `hhea`
> underline metrics (`ttf.h`), so this is provisional too.
>
> **Three-arch verified:** amd64 (`logs/20260811-194937/amd64/`), aarch64
> (`logs/20260811-195246/aarch64/`), riscv64 (`logs/20260811-195446/riscv64/`) — all reach
> `ok>`, POST `Failed: 0`, identical dict-hashes across all three (confirming the TTF switch,
> which only runs after POST, has no effect on the parity-hashed dictionary state). amd64
> screendump, full and zoomed on the REPL tail:
> [evidence/amd64/qemu-screenshot-20260811-195041-4.4j-ttf-repl.png](evidence/amd64/qemu-screenshot-20260811-195041-4.4j-ttf-repl.png),
> [evidence/amd64/qemu-screenshot-20260811-195041-4.4j-ttf-repl-zoom.png](evidence/amd64/qemu-screenshot-20260811-195041-4.4j-ttf-repl-zoom.png)
> — real proportional JetBrains Mono letterforms on the version banner, CLI banner, and
> `ok>` prompt, visibly distinct from every prior screenshot's blocky bitmap font; `[Hera]`
> stays orange, `ok>` stays cyan (4.4h unaffected). Boot/POST (everything above the visible
> tail) is unchanged `font_8x16.c` output, confirmed by this same screendump showing nothing
> else on screen — `erase_display(2)` at the switch point cleared it, same behavior as every
> screenshot since 4.4c.
>
> **Known, pre-existing, not touched here:** the mangled `â[box][box]` where an em-dash
> should read (`"FORTH-79 interpreter — type BYE..."`) is `vt100_putc()`'s byte-oriented
> pipeline treating each byte of the UTF-8 em-dash as its own codepoint — `TTF-TEXT`'s own
> word decodes UTF-8 (`ttf_words_decode_utf8()`), but `vt100.c`'s character path never did,
> in *either* glyph mode. Confirmed pre-existing by checking earlier font_8x16-mode
> screenshots (4.4f/4.4h): the same line already rendered wrong there too (garbled as "tgpe
> BYE" etc.) — not a 4.4j regression, a longstanding gap in `vt100.c` unrelated to which font
> backend draws the (wrong) glyph.
>
> **CANVAS scroll-box text**, per this item's original done-when: 4.4n/4.4o build that box as
> separate, later items — this item's job was making sure the *same* TTF renderer will serve
> it once it exists, not building the box itself. No box exists yet, so this is deferred by
> construction, not skipped.
- [ ] **4.4k — Live-verify ANSI color end-to-end.** Depends on 4.4j. Inject an SGR color
escape sequence (`ESC[3xm`/`ESC[9xm`/256-color) over serial and confirm it visibly changes
`TTF-TEXT`-rendered glyph color in a screendump — the parser and the retargeted draw call
BIN
View File
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 5.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.4 KiB

+36 -36
View File
@@ -72,39 +72,39 @@ tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_
71,710000,10000,0,0,44,22,39,4096,1757,0,0,0,65536,0,0,65536,0,0
72,720000,10000,0,0,130,24,27,4096,1757,0,0,0,65536,0,0,65536,0,0
73,730000,10000,0,0,134,26,21,4096,1757,0,0,0,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,25,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,33,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,40,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,46,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,57,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,65,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,214,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,389,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,564,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,739,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,916,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,1092,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,1269,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,1414,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,1588,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,1763,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,1938,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,2113,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,2291,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,2467,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,2643,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,2820,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,2996,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,3171,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,3348,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,3527,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,3706,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,3882,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,4058,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,4238,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,4414,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,4586,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,4762,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,4938,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,5113,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,5290,65536,0,1,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,26,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,34,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,42,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,48,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,59,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,67,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,220,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,396,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,571,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,747,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,923,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,1099,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,1276,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,1423,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,1597,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,1772,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,1949,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,2127,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,2306,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,2486,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,2665,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,2842,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,3021,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,3201,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,3382,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,3559,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,3737,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,3916,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,4097,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,4275,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,4451,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,4625,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,4802,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,4979,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,5156,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,5332,65536,0,1,65536,0,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48
72 71 710000 10000 0 0 44 22 39 4096 1757 0 0 0 65536 0 0 65536 0 0
73 72 720000 10000 0 0 130 24 27 4096 1757 0 0 0 65536 0 0 65536 0 0
74 73 730000 10000 0 0 134 26 21 4096 1757 0 0 0 65536 0 0 65536 0 0
75 1 10000 18446744073708831616 0 0 117 4 4 4096 0 0 4895412794951728796 25 26 65536 0 0 65536 0 0
76 2 20000 10000 0 0 78 10 7 4096 0 0 0 33 34 65536 0 0 65536 0 0
77 3 30000 10000 0 0 101 13 7 4096 0 0 0 40 42 65536 0 0 65536 0 0
78 4 40000 10000 0 0 63 19 8 4096 0 0 0 46 48 65536 0 0 65536 0 0
79 5 50000 10000 0 0 92 25 8 4096 2 0 0 57 59 65536 0 0 65536 0 0
80 6 60000 10000 0 0 64 27 8 4096 2 0 0 65 67 65536 0 0 65536 0 0
81 7 70000 10000 0 0 228 32 8 4096 210 0 0 214 220 65536 0 0 65536 0 0
82 8 80000 10000 0 0 256 34 9 4096 466 0 0 389 396 65536 0 0 65536 0 0
83 9 90000 10000 0 0 256 36 10 4096 722 0 0 564 571 65536 0 0 65536 0 0
84 10 100000 10000 0 0 256 36 11 4096 978 0 0 739 747 65536 0 0 65536 0 0
85 11 110000 10000 0 0 256 36 11 4096 1234 0 0 916 923 65536 0 0 65536 0 0
86 12 120000 10000 0 0 256 36 12 4096 1490 0 0 1092 1099 65536 0 0 65536 0 0
87 13 130000 10000 0 0 256 37 12 4096 1746 0 0 1269 1276 65536 0 0 65536 0 0
88 14 140000 10000 0 0 230 39 12 4096 1949 0 0 1414 1423 65536 0 0 65536 0 0
89 15 150000 10000 0 0 256 39 13 4096 2204 0 0 1588 1597 65536 0 0 65536 0 0
90 16 160000 10000 0 0 256 39 14 4096 2459 0 0 1763 1772 65536 0 0 65536 0 0
91 17 170000 10000 0 0 256 39 15 4096 2713 0 0 1938 1949 65536 0 0 65536 0 0
92 18 180000 10000 0 0 256 39 15 4096 2969 0 0 2113 2127 65536 0 0 65536 0 0
93 19 190000 10000 0 0 256 39 16 4096 3224 0 0 2291 2306 65536 0 1 65536 0 0
94 20 200000 10000 0 0 256 41 17 4096 3480 0 0 2467 2486 65536 0 1 65536 0 0
95 21 210000 10000 0 0 256 41 17 4096 3736 0 0 2643 2665 65536 0 1 65536 0 0
96 22 220000 10000 0 0 256 41 18 4096 3992 0 0 2820 2842 65536 0 1 65536 0 0
97 23 230000 10000 0 0 256 41 19 4096 4096 0 0 2996 3021 65536 0 1 65536 0 0
98 24 240000 10000 0 0 256 41 20 4096 4096 0 0 3171 3201 65536 0 1 65536 0 0
99 25 250000 10000 0 0 256 43 20 2048 2048 0 0 3348 3382 65536 0 1 65536 0 0
100 26 260000 10000 0 0 256 45 21 2048 2048 0 0 3527 3559 65536 0 1 65536 0 0
101 27 270000 10000 0 0 256 45 22 1024 1024 0 0 3706 3737 65536 0 1 65536 0 0
102 28 280000 10000 0 0 256 45 23 1024 1024 0 0 3882 3916 65536 0 1 65536 0 0
103 29 290000 10000 0 0 256 45 24 512 512 0 0 4058 4097 65536 0 1 65536 0 0
104 30 300000 10000 0 0 256 45 24 512 512 0 0 4238 4275 65536 0 1 65536 0 0
105 31 310000 10000 0 0 256 45 25 256 256 0 0 4414 4451 65536 0 1 65536 0 0
106 32 320000 10000 0 0 255 45 26 256 256 0 0 4586 4625 65536 0 1 65536 0 0
107 33 330000 10000 0 0 256 45 27 256 256 0 0 4762 4802 65536 0 1 65536 0 0
108 34 340000 10000 0 0 256 45 27 256 256 0 0 4938 4979 65536 0 1 65536 0 0
109 35 350000 10000 0 0 256 45 28 256 256 0 0 5113 5156 65536 0 1 65536 0 0
110 36 360000 10000 0 0 256 45 29 256 256 0 0 5290 5332 65536 0 1 65536 0 0
+34 -34
View File
@@ -74,37 +74,37 @@ tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_
73,730000,10000,0,0,134,26,21,4096,1757,0,0,0,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,13,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,17,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,21,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,24,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,30,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,34,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,114,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,212,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,304,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,404,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,500,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,600,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,698,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,774,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,869,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,962,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,1056,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,1150,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,1243,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,1337,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,1432,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,1525,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,1620,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,1713,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,1807,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,1899,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,1993,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,2086,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,2181,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,2275,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,2367,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,2458,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,2551,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,2643,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,2737,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,2830,65536,0,1,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,22,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,25,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,31,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,36,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,115,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,209,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,303,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,396,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,488,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,581,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,674,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,750,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,844,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,937,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,1030,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,1124,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,1219,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,1313,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,1408,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,1502,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,1596,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,1689,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,1787,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,1883,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,1976,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,2069,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,2162,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,2255,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,2349,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,2440,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,2533,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,2625,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,2719,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,2812,65536,0,1,65536,0,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48
74 73 730000 10000 0 0 134 26 21 4096 1757 0 0 0 65536 0 0 65536 0 0
75 1 10000 18446744073708831616 0 0 117 4 4 4096 0 0 4895412794951728796 13 65536 0 0 65536 0 0
76 2 20000 10000 0 0 78 10 7 4096 0 0 0 17 65536 0 0 65536 0 0
77 3 30000 10000 0 0 101 13 7 4096 0 0 0 21 22 65536 0 0 65536 0 0
78 4 40000 10000 0 0 63 19 8 4096 0 0 0 24 25 65536 0 0 65536 0 0
79 5 50000 10000 0 0 92 25 8 4096 2 0 0 30 31 65536 0 0 65536 0 0
80 6 60000 10000 0 0 64 27 8 4096 2 0 0 34 36 65536 0 0 65536 0 0
81 7 70000 10000 0 0 228 32 8 4096 210 0 0 114 115 65536 0 0 65536 0 0
82 8 80000 10000 0 0 256 34 9 4096 466 0 0 212 209 65536 0 0 65536 0 0
83 9 90000 10000 0 0 256 36 10 4096 722 0 0 304 303 65536 0 0 65536 0 0
84 10 100000 10000 0 0 256 36 11 4096 978 0 0 404 396 65536 0 0 65536 0 0
85 11 110000 10000 0 0 256 36 11 4096 1234 0 0 500 488 65536 0 0 65536 0 0
86 12 120000 10000 0 0 256 36 12 4096 1490 0 0 600 581 65536 0 0 65536 0 0
87 13 130000 10000 0 0 256 37 12 4096 1746 0 0 698 674 65536 0 0 65536 0 0
88 14 140000 10000 0 0 230 39 12 4096 1949 0 0 774 750 65536 0 0 65536 0 0
89 15 150000 10000 0 0 256 39 13 4096 2204 0 0 869 844 65536 0 0 65536 0 0
90 16 160000 10000 0 0 256 39 14 4096 2459 0 0 962 937 65536 0 0 65536 0 0
91 17 170000 10000 0 0 256 39 15 4096 2713 0 0 1056 1030 65536 0 0 65536 0 0
92 18 180000 10000 0 0 256 39 15 4096 2969 0 0 1150 1124 65536 0 0 65536 0 0
93 19 190000 10000 0 0 256 39 16 4096 3224 0 0 1243 1219 65536 0 1 65536 0 0
94 20 200000 10000 0 0 256 41 17 4096 3480 0 0 1337 1313 65536 0 1 65536 0 0
95 21 210000 10000 0 0 256 41 17 4096 3736 0 0 1432 1408 65536 0 1 65536 0 0
96 22 220000 10000 0 0 256 41 18 4096 3992 0 0 1525 1502 65536 0 1 65536 0 0
97 23 230000 10000 0 0 256 41 19 4096 4096 0 0 1620 1596 65536 0 1 65536 0 0
98 24 240000 10000 0 0 256 41 20 4096 4096 0 0 1713 1689 65536 0 1 65536 0 0
99 25 250000 10000 0 0 256 43 20 2048 2048 0 0 1807 1787 65536 0 1 65536 0 0
100 26 260000 10000 0 0 256 45 21 2048 2048 0 0 1899 1883 65536 0 1 65536 0 0
101 27 270000 10000 0 0 256 45 22 1024 1024 0 0 1993 1976 65536 0 1 65536 0 0
102 28 280000 10000 0 0 256 45 23 1024 1024 0 0 2086 2069 65536 0 1 65536 0 0
103 29 290000 10000 0 0 256 45 24 512 512 0 0 2181 2162 65536 0 1 65536 0 0
104 30 300000 10000 0 0 256 45 24 512 512 0 0 2275 2255 65536 0 1 65536 0 0
105 31 310000 10000 0 0 256 45 25 256 256 0 0 2367 2349 65536 0 1 65536 0 0
106 32 320000 10000 0 0 255 45 26 256 256 0 0 2458 2440 65536 0 1 65536 0 0
107 33 330000 10000 0 0 256 45 27 256 256 0 0 2551 2533 65536 0 1 65536 0 0
108 34 340000 10000 0 0 256 45 27 256 256 0 0 2643 2625 65536 0 1 65536 0 0
109 35 350000 10000 0 0 256 45 28 256 256 0 0 2737 2719 65536 0 1 65536 0 0
110 36 360000 10000 0 0 256 45 29 256 256 0 0 2830 2812 65536 0 1 65536 0 0
+33 -33
View File
@@ -72,39 +72,39 @@ tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_
71,710000,10000,0,0,44,22,39,4096,1757,0,0,0,65536,0,0,65536,0,0
72,720000,10000,0,0,130,24,27,4096,1757,0,0,0,65536,0,0,65536,0,0
73,730000,10000,0,0,134,26,21,4096,1757,0,0,0,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,10,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,13,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,9,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,12,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,15,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,17,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,22,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,21,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,24,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,67,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,120,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,174,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,230,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,284,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,338,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,390,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,431,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,486,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,535,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,590,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,644,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,699,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,754,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,809,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,864,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,919,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,974,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,1028,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,1079,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,1131,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,1183,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,1236,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,1291,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,1341,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,1393,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,1447,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,1502,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,1555,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,1602,65536,0,1,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,64,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,115,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,169,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,220,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,271,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,327,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,381,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,425,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,476,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,523,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,576,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,624,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,676,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,730,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,785,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,840,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,895,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,950,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,1003,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,1057,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,1106,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,1161,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,1216,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,1271,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,1326,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,1380,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,1435,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,1485,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,1533,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,1589,65536,0,1,65536,0,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48
72 71 710000 10000 0 0 44 22 39 4096 1757 0 0 0 65536 0 0 65536 0 0
73 72 720000 10000 0 0 130 24 27 4096 1757 0 0 0 65536 0 0 65536 0 0
74 73 730000 10000 0 0 134 26 21 4096 1757 0 0 0 65536 0 0 65536 0 0
75 1 10000 18446744073708831616 0 0 117 4 4 4096 0 0 4895412794951728796 10 9 65536 0 0 65536 0 0
76 2 20000 10000 0 0 78 10 7 4096 0 0 0 13 12 65536 0 0 65536 0 0
77 3 30000 10000 0 0 101 13 7 4096 0 0 0 15 65536 0 0 65536 0 0
78 4 40000 10000 0 0 63 19 8 4096 0 0 0 17 65536 0 0 65536 0 0
79 5 50000 10000 0 0 92 25 8 4096 2 0 0 22 21 65536 0 0 65536 0 0
80 6 60000 10000 0 0 64 27 8 4096 2 0 0 24 65536 0 0 65536 0 0
81 7 70000 10000 0 0 228 32 8 4096 210 0 0 67 64 65536 0 0 65536 0 0
82 8 80000 10000 0 0 256 34 9 4096 466 0 0 120 115 65536 0 0 65536 0 0
83 9 90000 10000 0 0 256 36 10 4096 722 0 0 174 169 65536 0 0 65536 0 0
84 10 100000 10000 0 0 256 36 11 4096 978 0 0 230 220 65536 0 0 65536 0 0
85 11 110000 10000 0 0 256 36 11 4096 1234 0 0 284 271 65536 0 0 65536 0 0
86 12 120000 10000 0 0 256 36 12 4096 1490 0 0 338 327 65536 0 0 65536 0 0
87 13 130000 10000 0 0 256 37 12 4096 1746 0 0 390 381 65536 0 0 65536 0 0
88 14 140000 10000 0 0 230 39 12 4096 1949 0 0 431 425 65536 0 0 65536 0 0
89 15 150000 10000 0 0 256 39 13 4096 2204 0 0 486 476 65536 0 0 65536 0 0
90 16 160000 10000 0 0 256 39 14 4096 2459 0 0 535 523 65536 0 0 65536 0 0
91 17 170000 10000 0 0 256 39 15 4096 2713 0 0 590 576 65536 0 0 65536 0 0
92 18 180000 10000 0 0 256 39 15 4096 2969 0 0 644 624 65536 0 0 65536 0 0
93 19 190000 10000 0 0 256 39 16 4096 3224 0 0 699 676 65536 0 1 65536 0 0
94 20 200000 10000 0 0 256 41 17 4096 3480 0 0 754 730 65536 0 1 65536 0 0
95 21 210000 10000 0 0 256 41 17 4096 3736 0 0 809 785 65536 0 1 65536 0 0
96 22 220000 10000 0 0 256 41 18 4096 3992 0 0 864 840 65536 0 1 65536 0 0
97 23 230000 10000 0 0 256 41 19 4096 4096 0 0 919 895 65536 0 1 65536 0 0
98 24 240000 10000 0 0 256 41 20 4096 4096 0 0 974 950 65536 0 1 65536 0 0
99 25 250000 10000 0 0 256 43 20 2048 2048 0 0 1028 1003 65536 0 1 65536 0 0
100 26 260000 10000 0 0 256 45 21 2048 2048 0 0 1079 1057 65536 0 1 65536 0 0
101 27 270000 10000 0 0 256 45 22 1024 1024 0 0 1131 1106 65536 0 1 65536 0 0
102 28 280000 10000 0 0 256 45 23 1024 1024 0 0 1183 1161 65536 0 1 65536 0 0
103 29 290000 10000 0 0 256 45 24 512 512 0 0 1236 1216 65536 0 1 65536 0 0
104 30 300000 10000 0 0 256 45 24 512 512 0 0 1291 1271 65536 0 1 65536 0 0
105 31 310000 10000 0 0 256 45 25 256 256 0 0 1341 1326 65536 0 1 65536 0 0
106 32 320000 10000 0 0 255 45 26 256 256 0 0 1393 1380 65536 0 1 65536 0 0
107 33 330000 10000 0 0 256 45 27 256 256 0 0 1447 1435 65536 0 1 65536 0 0
108 34 340000 10000 0 0 256 45 27 256 256 0 0 1502 1485 65536 0 1 65536 0 0
109 35 350000 10000 0 0 256 45 28 256 256 0 0 1555 1533 65536 0 1 65536 0 0
110 36 360000 10000 0 0 256 45 29 256 256 0 0 1602 1589 65536 0 1 65536 0 0
@@ -0,0 +1,110 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48
1,10000,10000,0,0,183,4,45,731,731,0,0,0,65536,0,0,65536,0,0
2,20000,10000,0,0,173,5,44,582,582,0,0,0,65536,0,0,65536,0,0
3,30000,10000,0,0,184,6,60,582,582,0,0,0,65536,0,0,65536,0,0
4,40000,10000,0,0,174,8,71,4096,0,0,0,0,65536,0,0,65536,0,0
5,50000,10000,0,0,150,9,78,582,582,0,0,0,65536,0,0,65536,0,0
6,60000,10000,0,0,159,11,73,4096,0,0,0,0,65536,0,0,65536,0,0
7,70000,10000,0,0,188,15,71,685,685,0,0,0,65536,0,0,65536,0,0
8,80000,10000,0,0,214,16,83,685,685,0,0,0,65536,0,0,65536,0,0
9,90000,10000,0,0,216,19,82,4096,0,0,0,0,65536,0,0,65536,0,0
10,100000,10000,0,0,222,21,84,567,567,0,0,0,65536,0,0,65536,0,0
11,110000,10000,0,0,207,23,86,731,731,0,0,0,65536,0,0,65536,0,0
12,120000,10000,0,0,189,26,83,4096,0,0,0,0,65536,0,0,65536,0,0
13,130000,10000,0,0,221,28,80,731,731,0,0,0,65536,0,0,65536,0,0
14,140000,10000,0,0,204,29,83,685,685,0,0,0,65536,0,0,65536,0,0
15,150000,10000,0,0,203,30,82,731,731,0,0,0,65536,0,0,65536,0,0
16,160000,10000,0,0,201,32,83,567,567,0,0,0,65536,0,0,65536,0,0
17,170000,10000,0,0,190,34,86,731,731,0,0,0,65536,0,0,65536,0,0
18,180000,10000,0,0,170,35,73,582,582,0,0,0,65536,0,0,65536,0,0
19,190000,10000,0,0,154,35,40,731,731,0,0,0,65536,0,0,65536,0,0
20,200000,10000,0,0,154,35,38,567,567,0,0,0,65536,0,0,65536,0,0
21,210000,10000,0,0,153,38,37,4096,0,0,0,0,65536,0,0,65536,0,0
22,220000,10000,0,0,167,38,38,582,582,0,0,0,65536,0,0,65536,0,0
23,230000,10000,0,0,176,12,40,685,685,0,0,0,65536,0,0,65536,0,0
24,240000,10000,0,0,175,10,25,731,731,0,0,0,65536,0,0,65536,0,0
25,250000,10000,0,0,196,11,23,731,731,0,0,0,65536,0,0,65536,0,0
26,260000,10000,0,0,192,14,24,4096,0,0,0,0,65536,0,0,65536,0,0
27,270000,10000,0,0,158,16,30,685,685,0,0,0,65536,0,0,65536,0,0
28,280000,10000,0,0,158,17,23,4096,0,0,0,0,65536,0,0,65536,0,0
29,290000,10000,0,0,164,17,27,4096,0,0,0,0,65536,0,0,65536,0,0
30,300000,10000,0,0,154,18,26,685,685,0,0,0,65536,0,0,65536,0,0
31,310000,10000,0,0,172,6,25,582,582,0,0,0,65536,0,0,65536,0,0
32,320000,10000,0,0,180,9,22,567,567,0,0,0,65536,0,0,65536,0,0
33,330000,10000,0,0,145,11,29,567,567,0,0,0,65536,0,0,65536,0,0
34,340000,10000,0,0,203,14,30,582,582,0,0,0,65536,0,0,65536,0,0
35,350000,10000,0,0,154,16,36,731,731,0,0,0,65536,0,0,65536,0,0
36,360000,10000,0,0,144,18,32,4096,0,0,0,0,65536,0,0,65536,0,0
37,370000,10000,0,0,144,18,29,4096,0,0,0,0,65536,0,0,65536,0,0
38,380000,10000,0,0,132,18,28,4096,0,0,0,0,65536,0,0,65536,0,0
39,390000,10000,0,0,180,18,24,4096,0,0,0,0,65536,0,0,65536,0,0
40,400000,10000,0,0,220,23,20,4096,0,0,0,0,65536,0,0,65536,0,0
41,410000,10000,0,0,215,25,19,4096,24,0,0,0,65536,0,0,65536,0,0
42,420000,10000,0,0,208,32,20,4096,24,0,0,0,65536,0,0,65536,0,0
43,430000,10000,0,0,177,36,19,4096,24,0,0,0,65536,0,0,65536,0,0
44,440000,10000,0,0,199,42,20,4096,24,0,0,0,65536,0,0,65536,0,0
45,450000,10000,0,0,223,47,19,4096,30,0,0,0,65536,0,0,65536,0,0
46,460000,10000,0,0,202,50,17,4096,67,0,0,0,65536,0,0,65536,0,0
47,470000,10000,0,0,218,57,18,4096,198,0,0,0,65536,0,0,65536,0,0
48,480000,10000,0,0,221,60,20,4096,350,0,0,0,65536,0,0,65536,0,0
49,490000,10000,0,0,225,66,20,4096,528,0,0,0,65536,0,0,65536,0,0
50,500000,10000,0,0,214,69,21,4096,694,0,0,0,65536,0,0,65536,0,0
51,510000,10000,0,0,227,71,23,4096,883,0,0,0,65536,0,0,65536,0,0
52,520000,10000,0,0,208,71,23,4096,1043,0,0,0,65536,0,0,65536,0,0
53,530000,10000,0,0,207,71,25,4096,1202,0,0,0,65536,0,0,65536,0,0
54,540000,10000,0,0,200,71,26,4096,1319,0,0,0,65536,0,0,65536,0,0
55,550000,10000,0,0,205,72,27,4096,1464,0,0,0,65536,0,0,65536,0,0
56,560000,10000,0,0,211,73,27,4096,1620,0,0,0,65536,0,0,65536,0,0
57,570000,10000,0,0,193,80,28,4096,1712,0,0,0,65536,0,0,65536,0,0
58,580000,10000,0,0,185,4,61,4096,1757,0,0,0,65536,0,0,65536,0,0
59,590000,10000,0,0,81,7,32,4096,1757,0,0,0,65536,0,0,65536,0,0
60,600000,10000,0,0,52,10,28,4096,1757,0,0,0,65536,0,0,65536,0,0
61,610000,10000,0,0,63,17,25,4096,1757,0,0,0,65536,0,0,65536,0,0
62,620000,10000,0,0,85,19,24,4096,1757,0,0,0,65536,0,0,65536,0,0
63,630000,10000,0,0,68,20,23,4096,1757,0,0,0,65536,0,0,65536,0,0
64,640000,10000,0,0,39,20,23,4096,1757,0,0,0,65536,0,0,65536,0,0
65,650000,10000,0,0,45,20,25,4096,1757,0,0,0,65536,0,0,65536,0,0
66,660000,10000,0,0,42,20,29,4096,1757,0,0,0,65536,0,0,65536,0,0
67,670000,10000,0,0,47,20,31,4096,1757,0,0,0,65536,0,0,65536,0,0
68,680000,10000,0,0,43,20,34,4096,1757,0,0,0,65536,0,0,65536,0,0
69,690000,10000,0,0,48,20,35,4096,1757,0,0,0,65536,0,0,65536,0,0
70,700000,10000,0,0,48,21,38,4096,1757,0,0,0,65536,0,0,65536,0,0
71,710000,10000,0,0,44,22,39,4096,1757,0,0,0,65536,0,0,65536,0,0
72,720000,10000,0,0,130,24,27,4096,1757,0,0,0,65536,0,0,65536,0,0
73,730000,10000,0,0,134,26,21,4096,1757,0,0,0,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,26,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,34,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,42,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,48,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,59,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,67,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,220,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,396,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,571,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,747,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,923,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,1099,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,1276,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,1423,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,1597,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,1772,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,1949,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,2127,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,2306,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,2486,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,2665,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,2842,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,3021,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,3201,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,3382,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,3559,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,3737,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,3916,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,4097,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,4275,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,4451,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,4625,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,4802,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,4979,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,5156,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,5332,65536,0,1,65536,0,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48
2 1 10000 10000 0 0 183 4 45 731 731 0 0 0 65536 0 0 65536 0 0
3 2 20000 10000 0 0 173 5 44 582 582 0 0 0 65536 0 0 65536 0 0
4 3 30000 10000 0 0 184 6 60 582 582 0 0 0 65536 0 0 65536 0 0
5 4 40000 10000 0 0 174 8 71 4096 0 0 0 0 65536 0 0 65536 0 0
6 5 50000 10000 0 0 150 9 78 582 582 0 0 0 65536 0 0 65536 0 0
7 6 60000 10000 0 0 159 11 73 4096 0 0 0 0 65536 0 0 65536 0 0
8 7 70000 10000 0 0 188 15 71 685 685 0 0 0 65536 0 0 65536 0 0
9 8 80000 10000 0 0 214 16 83 685 685 0 0 0 65536 0 0 65536 0 0
10 9 90000 10000 0 0 216 19 82 4096 0 0 0 0 65536 0 0 65536 0 0
11 10 100000 10000 0 0 222 21 84 567 567 0 0 0 65536 0 0 65536 0 0
12 11 110000 10000 0 0 207 23 86 731 731 0 0 0 65536 0 0 65536 0 0
13 12 120000 10000 0 0 189 26 83 4096 0 0 0 0 65536 0 0 65536 0 0
14 13 130000 10000 0 0 221 28 80 731 731 0 0 0 65536 0 0 65536 0 0
15 14 140000 10000 0 0 204 29 83 685 685 0 0 0 65536 0 0 65536 0 0
16 15 150000 10000 0 0 203 30 82 731 731 0 0 0 65536 0 0 65536 0 0
17 16 160000 10000 0 0 201 32 83 567 567 0 0 0 65536 0 0 65536 0 0
18 17 170000 10000 0 0 190 34 86 731 731 0 0 0 65536 0 0 65536 0 0
19 18 180000 10000 0 0 170 35 73 582 582 0 0 0 65536 0 0 65536 0 0
20 19 190000 10000 0 0 154 35 40 731 731 0 0 0 65536 0 0 65536 0 0
21 20 200000 10000 0 0 154 35 38 567 567 0 0 0 65536 0 0 65536 0 0
22 21 210000 10000 0 0 153 38 37 4096 0 0 0 0 65536 0 0 65536 0 0
23 22 220000 10000 0 0 167 38 38 582 582 0 0 0 65536 0 0 65536 0 0
24 23 230000 10000 0 0 176 12 40 685 685 0 0 0 65536 0 0 65536 0 0
25 24 240000 10000 0 0 175 10 25 731 731 0 0 0 65536 0 0 65536 0 0
26 25 250000 10000 0 0 196 11 23 731 731 0 0 0 65536 0 0 65536 0 0
27 26 260000 10000 0 0 192 14 24 4096 0 0 0 0 65536 0 0 65536 0 0
28 27 270000 10000 0 0 158 16 30 685 685 0 0 0 65536 0 0 65536 0 0
29 28 280000 10000 0 0 158 17 23 4096 0 0 0 0 65536 0 0 65536 0 0
30 29 290000 10000 0 0 164 17 27 4096 0 0 0 0 65536 0 0 65536 0 0
31 30 300000 10000 0 0 154 18 26 685 685 0 0 0 65536 0 0 65536 0 0
32 31 310000 10000 0 0 172 6 25 582 582 0 0 0 65536 0 0 65536 0 0
33 32 320000 10000 0 0 180 9 22 567 567 0 0 0 65536 0 0 65536 0 0
34 33 330000 10000 0 0 145 11 29 567 567 0 0 0 65536 0 0 65536 0 0
35 34 340000 10000 0 0 203 14 30 582 582 0 0 0 65536 0 0 65536 0 0
36 35 350000 10000 0 0 154 16 36 731 731 0 0 0 65536 0 0 65536 0 0
37 36 360000 10000 0 0 144 18 32 4096 0 0 0 0 65536 0 0 65536 0 0
38 37 370000 10000 0 0 144 18 29 4096 0 0 0 0 65536 0 0 65536 0 0
39 38 380000 10000 0 0 132 18 28 4096 0 0 0 0 65536 0 0 65536 0 0
40 39 390000 10000 0 0 180 18 24 4096 0 0 0 0 65536 0 0 65536 0 0
41 40 400000 10000 0 0 220 23 20 4096 0 0 0 0 65536 0 0 65536 0 0
42 41 410000 10000 0 0 215 25 19 4096 24 0 0 0 65536 0 0 65536 0 0
43 42 420000 10000 0 0 208 32 20 4096 24 0 0 0 65536 0 0 65536 0 0
44 43 430000 10000 0 0 177 36 19 4096 24 0 0 0 65536 0 0 65536 0 0
45 44 440000 10000 0 0 199 42 20 4096 24 0 0 0 65536 0 0 65536 0 0
46 45 450000 10000 0 0 223 47 19 4096 30 0 0 0 65536 0 0 65536 0 0
47 46 460000 10000 0 0 202 50 17 4096 67 0 0 0 65536 0 0 65536 0 0
48 47 470000 10000 0 0 218 57 18 4096 198 0 0 0 65536 0 0 65536 0 0
49 48 480000 10000 0 0 221 60 20 4096 350 0 0 0 65536 0 0 65536 0 0
50 49 490000 10000 0 0 225 66 20 4096 528 0 0 0 65536 0 0 65536 0 0
51 50 500000 10000 0 0 214 69 21 4096 694 0 0 0 65536 0 0 65536 0 0
52 51 510000 10000 0 0 227 71 23 4096 883 0 0 0 65536 0 0 65536 0 0
53 52 520000 10000 0 0 208 71 23 4096 1043 0 0 0 65536 0 0 65536 0 0
54 53 530000 10000 0 0 207 71 25 4096 1202 0 0 0 65536 0 0 65536 0 0
55 54 540000 10000 0 0 200 71 26 4096 1319 0 0 0 65536 0 0 65536 0 0
56 55 550000 10000 0 0 205 72 27 4096 1464 0 0 0 65536 0 0 65536 0 0
57 56 560000 10000 0 0 211 73 27 4096 1620 0 0 0 65536 0 0 65536 0 0
58 57 570000 10000 0 0 193 80 28 4096 1712 0 0 0 65536 0 0 65536 0 0
59 58 580000 10000 0 0 185 4 61 4096 1757 0 0 0 65536 0 0 65536 0 0
60 59 590000 10000 0 0 81 7 32 4096 1757 0 0 0 65536 0 0 65536 0 0
61 60 600000 10000 0 0 52 10 28 4096 1757 0 0 0 65536 0 0 65536 0 0
62 61 610000 10000 0 0 63 17 25 4096 1757 0 0 0 65536 0 0 65536 0 0
63 62 620000 10000 0 0 85 19 24 4096 1757 0 0 0 65536 0 0 65536 0 0
64 63 630000 10000 0 0 68 20 23 4096 1757 0 0 0 65536 0 0 65536 0 0
65 64 640000 10000 0 0 39 20 23 4096 1757 0 0 0 65536 0 0 65536 0 0
66 65 650000 10000 0 0 45 20 25 4096 1757 0 0 0 65536 0 0 65536 0 0
67 66 660000 10000 0 0 42 20 29 4096 1757 0 0 0 65536 0 0 65536 0 0
68 67 670000 10000 0 0 47 20 31 4096 1757 0 0 0 65536 0 0 65536 0 0
69 68 680000 10000 0 0 43 20 34 4096 1757 0 0 0 65536 0 0 65536 0 0
70 69 690000 10000 0 0 48 20 35 4096 1757 0 0 0 65536 0 0 65536 0 0
71 70 700000 10000 0 0 48 21 38 4096 1757 0 0 0 65536 0 0 65536 0 0
72 71 710000 10000 0 0 44 22 39 4096 1757 0 0 0 65536 0 0 65536 0 0
73 72 720000 10000 0 0 130 24 27 4096 1757 0 0 0 65536 0 0 65536 0 0
74 73 730000 10000 0 0 134 26 21 4096 1757 0 0 0 65536 0 0 65536 0 0
75 1 10000 18446744073708831616 0 0 117 4 4 4096 0 0 4895412794951728796 26 65536 0 0 65536 0 0
76 2 20000 10000 0 0 78 10 7 4096 0 0 0 34 65536 0 0 65536 0 0
77 3 30000 10000 0 0 101 13 7 4096 0 0 0 42 65536 0 0 65536 0 0
78 4 40000 10000 0 0 63 19 8 4096 0 0 0 48 65536 0 0 65536 0 0
79 5 50000 10000 0 0 92 25 8 4096 2 0 0 59 65536 0 0 65536 0 0
80 6 60000 10000 0 0 64 27 8 4096 2 0 0 67 65536 0 0 65536 0 0
81 7 70000 10000 0 0 228 32 8 4096 210 0 0 220 65536 0 0 65536 0 0
82 8 80000 10000 0 0 256 34 9 4096 466 0 0 396 65536 0 0 65536 0 0
83 9 90000 10000 0 0 256 36 10 4096 722 0 0 571 65536 0 0 65536 0 0
84 10 100000 10000 0 0 256 36 11 4096 978 0 0 747 65536 0 0 65536 0 0
85 11 110000 10000 0 0 256 36 11 4096 1234 0 0 923 65536 0 0 65536 0 0
86 12 120000 10000 0 0 256 36 12 4096 1490 0 0 1099 65536 0 0 65536 0 0
87 13 130000 10000 0 0 256 37 12 4096 1746 0 0 1276 65536 0 0 65536 0 0
88 14 140000 10000 0 0 230 39 12 4096 1949 0 0 1423 65536 0 0 65536 0 0
89 15 150000 10000 0 0 256 39 13 4096 2204 0 0 1597 65536 0 0 65536 0 0
90 16 160000 10000 0 0 256 39 14 4096 2459 0 0 1772 65536 0 0 65536 0 0
91 17 170000 10000 0 0 256 39 15 4096 2713 0 0 1949 65536 0 0 65536 0 0
92 18 180000 10000 0 0 256 39 15 4096 2969 0 0 2127 65536 0 0 65536 0 0
93 19 190000 10000 0 0 256 39 16 4096 3224 0 0 2306 65536 0 1 65536 0 0
94 20 200000 10000 0 0 256 41 17 4096 3480 0 0 2486 65536 0 1 65536 0 0
95 21 210000 10000 0 0 256 41 17 4096 3736 0 0 2665 65536 0 1 65536 0 0
96 22 220000 10000 0 0 256 41 18 4096 3992 0 0 2842 65536 0 1 65536 0 0
97 23 230000 10000 0 0 256 41 19 4096 4096 0 0 3021 65536 0 1 65536 0 0
98 24 240000 10000 0 0 256 41 20 4096 4096 0 0 3201 65536 0 1 65536 0 0
99 25 250000 10000 0 0 256 43 20 2048 2048 0 0 3382 65536 0 1 65536 0 0
100 26 260000 10000 0 0 256 45 21 2048 2048 0 0 3559 65536 0 1 65536 0 0
101 27 270000 10000 0 0 256 45 22 1024 1024 0 0 3737 65536 0 1 65536 0 0
102 28 280000 10000 0 0 256 45 23 1024 1024 0 0 3916 65536 0 1 65536 0 0
103 29 290000 10000 0 0 256 45 24 512 512 0 0 4097 65536 0 1 65536 0 0
104 30 300000 10000 0 0 256 45 24 512 512 0 0 4275 65536 0 1 65536 0 0
105 31 310000 10000 0 0 256 45 25 256 256 0 0 4451 65536 0 1 65536 0 0
106 32 320000 10000 0 0 255 45 26 256 256 0 0 4625 65536 0 1 65536 0 0
107 33 330000 10000 0 0 256 45 27 256 256 0 0 4802 65536 0 1 65536 0 0
108 34 340000 10000 0 0 256 45 27 256 256 0 0 4979 65536 0 1 65536 0 0
109 35 350000 10000 0 0 256 45 28 256 256 0 0 5156 65536 0 1 65536 0 0
110 36 360000 10000 0 0 256 45 29 256 256 0 0 5332 65536 0 1 65536 0 0
@@ -0,0 +1,110 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48
1,10000,10000,0,0,183,4,45,731,731,0,0,0,65536,0,0,65536,0,0
2,20000,10000,0,0,173,5,44,582,582,0,0,0,65536,0,0,65536,0,0
3,30000,10000,0,0,184,6,60,582,582,0,0,0,65536,0,0,65536,0,0
4,40000,10000,0,0,174,8,71,4096,0,0,0,0,65536,0,0,65536,0,0
5,50000,10000,0,0,150,9,78,582,582,0,0,0,65536,0,0,65536,0,0
6,60000,10000,0,0,159,11,73,4096,0,0,0,0,65536,0,0,65536,0,0
7,70000,10000,0,0,188,15,71,685,685,0,0,0,65536,0,0,65536,0,0
8,80000,10000,0,0,214,16,83,685,685,0,0,0,65536,0,0,65536,0,0
9,90000,10000,0,0,216,19,82,4096,0,0,0,0,65536,0,0,65536,0,0
10,100000,10000,0,0,222,21,84,567,567,0,0,0,65536,0,0,65536,0,0
11,110000,10000,0,0,207,23,86,731,731,0,0,0,65536,0,0,65536,0,0
12,120000,10000,0,0,189,26,83,4096,0,0,0,0,65536,0,0,65536,0,0
13,130000,10000,0,0,221,28,80,731,731,0,0,0,65536,0,0,65536,0,0
14,140000,10000,0,0,204,29,83,685,685,0,0,0,65536,0,0,65536,0,0
15,150000,10000,0,0,203,30,82,731,731,0,0,0,65536,0,0,65536,0,0
16,160000,10000,0,0,201,32,83,567,567,0,0,0,65536,0,0,65536,0,0
17,170000,10000,0,0,190,34,86,731,731,0,0,0,65536,0,0,65536,0,0
18,180000,10000,0,0,170,35,73,582,582,0,0,0,65536,0,0,65536,0,0
19,190000,10000,0,0,154,35,40,731,731,0,0,0,65536,0,0,65536,0,0
20,200000,10000,0,0,154,35,38,567,567,0,0,0,65536,0,0,65536,0,0
21,210000,10000,0,0,153,38,37,4096,0,0,0,0,65536,0,0,65536,0,0
22,220000,10000,0,0,167,38,38,582,582,0,0,0,65536,0,0,65536,0,0
23,230000,10000,0,0,176,12,40,685,685,0,0,0,65536,0,0,65536,0,0
24,240000,10000,0,0,175,10,25,731,731,0,0,0,65536,0,0,65536,0,0
25,250000,10000,0,0,196,11,23,731,731,0,0,0,65536,0,0,65536,0,0
26,260000,10000,0,0,192,14,24,4096,0,0,0,0,65536,0,0,65536,0,0
27,270000,10000,0,0,158,16,30,685,685,0,0,0,65536,0,0,65536,0,0
28,280000,10000,0,0,158,17,23,4096,0,0,0,0,65536,0,0,65536,0,0
29,290000,10000,0,0,164,17,27,4096,0,0,0,0,65536,0,0,65536,0,0
30,300000,10000,0,0,154,18,26,685,685,0,0,0,65536,0,0,65536,0,0
31,310000,10000,0,0,172,6,25,582,582,0,0,0,65536,0,0,65536,0,0
32,320000,10000,0,0,180,9,22,567,567,0,0,0,65536,0,0,65536,0,0
33,330000,10000,0,0,145,11,29,567,567,0,0,0,65536,0,0,65536,0,0
34,340000,10000,0,0,203,14,30,582,582,0,0,0,65536,0,0,65536,0,0
35,350000,10000,0,0,154,16,36,731,731,0,0,0,65536,0,0,65536,0,0
36,360000,10000,0,0,144,18,32,4096,0,0,0,0,65536,0,0,65536,0,0
37,370000,10000,0,0,144,18,29,4096,0,0,0,0,65536,0,0,65536,0,0
38,380000,10000,0,0,132,18,28,4096,0,0,0,0,65536,0,0,65536,0,0
39,390000,10000,0,0,180,18,24,4096,0,0,0,0,65536,0,0,65536,0,0
40,400000,10000,0,0,220,23,20,4096,0,0,0,0,65536,0,0,65536,0,0
41,410000,10000,0,0,215,25,19,4096,24,0,0,0,65536,0,0,65536,0,0
42,420000,10000,0,0,208,32,20,4096,24,0,0,0,65536,0,0,65536,0,0
43,430000,10000,0,0,177,36,19,4096,24,0,0,0,65536,0,0,65536,0,0
44,440000,10000,0,0,199,42,20,4096,24,0,0,0,65536,0,0,65536,0,0
45,450000,10000,0,0,223,47,19,4096,30,0,0,0,65536,0,0,65536,0,0
46,460000,10000,0,0,202,50,17,4096,67,0,0,0,65536,0,0,65536,0,0
47,470000,10000,0,0,218,57,18,4096,198,0,0,0,65536,0,0,65536,0,0
48,480000,10000,0,0,221,60,20,4096,350,0,0,0,65536,0,0,65536,0,0
49,490000,10000,0,0,225,66,20,4096,528,0,0,0,65536,0,0,65536,0,0
50,500000,10000,0,0,214,69,21,4096,694,0,0,0,65536,0,0,65536,0,0
51,510000,10000,0,0,227,71,23,4096,883,0,0,0,65536,0,0,65536,0,0
52,520000,10000,0,0,208,71,23,4096,1043,0,0,0,65536,0,0,65536,0,0
53,530000,10000,0,0,207,71,25,4096,1202,0,0,0,65536,0,0,65536,0,0
54,540000,10000,0,0,200,71,26,4096,1319,0,0,0,65536,0,0,65536,0,0
55,550000,10000,0,0,205,72,27,4096,1464,0,0,0,65536,0,0,65536,0,0
56,560000,10000,0,0,211,73,27,4096,1620,0,0,0,65536,0,0,65536,0,0
57,570000,10000,0,0,193,80,28,4096,1712,0,0,0,65536,0,0,65536,0,0
58,580000,10000,0,0,185,4,61,4096,1757,0,0,0,65536,0,0,65536,0,0
59,590000,10000,0,0,81,7,32,4096,1757,0,0,0,65536,0,0,65536,0,0
60,600000,10000,0,0,52,10,28,4096,1757,0,0,0,65536,0,0,65536,0,0
61,610000,10000,0,0,63,17,25,4096,1757,0,0,0,65536,0,0,65536,0,0
62,620000,10000,0,0,85,19,24,4096,1757,0,0,0,65536,0,0,65536,0,0
63,630000,10000,0,0,68,20,23,4096,1757,0,0,0,65536,0,0,65536,0,0
64,640000,10000,0,0,39,20,23,4096,1757,0,0,0,65536,0,0,65536,0,0
65,650000,10000,0,0,45,20,25,4096,1757,0,0,0,65536,0,0,65536,0,0
66,660000,10000,0,0,42,20,29,4096,1757,0,0,0,65536,0,0,65536,0,0
67,670000,10000,0,0,47,20,31,4096,1757,0,0,0,65536,0,0,65536,0,0
68,680000,10000,0,0,43,20,34,4096,1757,0,0,0,65536,0,0,65536,0,0
69,690000,10000,0,0,48,20,35,4096,1757,0,0,0,65536,0,0,65536,0,0
70,700000,10000,0,0,48,21,38,4096,1757,0,0,0,65536,0,0,65536,0,0
71,710000,10000,0,0,44,22,39,4096,1757,0,0,0,65536,0,0,65536,0,0
72,720000,10000,0,0,130,24,27,4096,1757,0,0,0,65536,0,0,65536,0,0
73,730000,10000,0,0,134,26,21,4096,1757,0,0,0,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,13,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,17,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,22,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,25,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,31,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,36,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,115,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,209,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,303,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,396,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,488,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,581,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,674,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,750,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,844,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,937,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,1030,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,1124,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,1219,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,1313,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,1408,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,1502,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,1596,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,1689,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,1787,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,1883,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,1976,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,2069,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,2162,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,2255,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,2349,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,2440,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,2533,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,2625,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,2719,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,2812,65536,0,1,65536,0,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48
2 1 10000 10000 0 0 183 4 45 731 731 0 0 0 65536 0 0 65536 0 0
3 2 20000 10000 0 0 173 5 44 582 582 0 0 0 65536 0 0 65536 0 0
4 3 30000 10000 0 0 184 6 60 582 582 0 0 0 65536 0 0 65536 0 0
5 4 40000 10000 0 0 174 8 71 4096 0 0 0 0 65536 0 0 65536 0 0
6 5 50000 10000 0 0 150 9 78 582 582 0 0 0 65536 0 0 65536 0 0
7 6 60000 10000 0 0 159 11 73 4096 0 0 0 0 65536 0 0 65536 0 0
8 7 70000 10000 0 0 188 15 71 685 685 0 0 0 65536 0 0 65536 0 0
9 8 80000 10000 0 0 214 16 83 685 685 0 0 0 65536 0 0 65536 0 0
10 9 90000 10000 0 0 216 19 82 4096 0 0 0 0 65536 0 0 65536 0 0
11 10 100000 10000 0 0 222 21 84 567 567 0 0 0 65536 0 0 65536 0 0
12 11 110000 10000 0 0 207 23 86 731 731 0 0 0 65536 0 0 65536 0 0
13 12 120000 10000 0 0 189 26 83 4096 0 0 0 0 65536 0 0 65536 0 0
14 13 130000 10000 0 0 221 28 80 731 731 0 0 0 65536 0 0 65536 0 0
15 14 140000 10000 0 0 204 29 83 685 685 0 0 0 65536 0 0 65536 0 0
16 15 150000 10000 0 0 203 30 82 731 731 0 0 0 65536 0 0 65536 0 0
17 16 160000 10000 0 0 201 32 83 567 567 0 0 0 65536 0 0 65536 0 0
18 17 170000 10000 0 0 190 34 86 731 731 0 0 0 65536 0 0 65536 0 0
19 18 180000 10000 0 0 170 35 73 582 582 0 0 0 65536 0 0 65536 0 0
20 19 190000 10000 0 0 154 35 40 731 731 0 0 0 65536 0 0 65536 0 0
21 20 200000 10000 0 0 154 35 38 567 567 0 0 0 65536 0 0 65536 0 0
22 21 210000 10000 0 0 153 38 37 4096 0 0 0 0 65536 0 0 65536 0 0
23 22 220000 10000 0 0 167 38 38 582 582 0 0 0 65536 0 0 65536 0 0
24 23 230000 10000 0 0 176 12 40 685 685 0 0 0 65536 0 0 65536 0 0
25 24 240000 10000 0 0 175 10 25 731 731 0 0 0 65536 0 0 65536 0 0
26 25 250000 10000 0 0 196 11 23 731 731 0 0 0 65536 0 0 65536 0 0
27 26 260000 10000 0 0 192 14 24 4096 0 0 0 0 65536 0 0 65536 0 0
28 27 270000 10000 0 0 158 16 30 685 685 0 0 0 65536 0 0 65536 0 0
29 28 280000 10000 0 0 158 17 23 4096 0 0 0 0 65536 0 0 65536 0 0
30 29 290000 10000 0 0 164 17 27 4096 0 0 0 0 65536 0 0 65536 0 0
31 30 300000 10000 0 0 154 18 26 685 685 0 0 0 65536 0 0 65536 0 0
32 31 310000 10000 0 0 172 6 25 582 582 0 0 0 65536 0 0 65536 0 0
33 32 320000 10000 0 0 180 9 22 567 567 0 0 0 65536 0 0 65536 0 0
34 33 330000 10000 0 0 145 11 29 567 567 0 0 0 65536 0 0 65536 0 0
35 34 340000 10000 0 0 203 14 30 582 582 0 0 0 65536 0 0 65536 0 0
36 35 350000 10000 0 0 154 16 36 731 731 0 0 0 65536 0 0 65536 0 0
37 36 360000 10000 0 0 144 18 32 4096 0 0 0 0 65536 0 0 65536 0 0
38 37 370000 10000 0 0 144 18 29 4096 0 0 0 0 65536 0 0 65536 0 0
39 38 380000 10000 0 0 132 18 28 4096 0 0 0 0 65536 0 0 65536 0 0
40 39 390000 10000 0 0 180 18 24 4096 0 0 0 0 65536 0 0 65536 0 0
41 40 400000 10000 0 0 220 23 20 4096 0 0 0 0 65536 0 0 65536 0 0
42 41 410000 10000 0 0 215 25 19 4096 24 0 0 0 65536 0 0 65536 0 0
43 42 420000 10000 0 0 208 32 20 4096 24 0 0 0 65536 0 0 65536 0 0
44 43 430000 10000 0 0 177 36 19 4096 24 0 0 0 65536 0 0 65536 0 0
45 44 440000 10000 0 0 199 42 20 4096 24 0 0 0 65536 0 0 65536 0 0
46 45 450000 10000 0 0 223 47 19 4096 30 0 0 0 65536 0 0 65536 0 0
47 46 460000 10000 0 0 202 50 17 4096 67 0 0 0 65536 0 0 65536 0 0
48 47 470000 10000 0 0 218 57 18 4096 198 0 0 0 65536 0 0 65536 0 0
49 48 480000 10000 0 0 221 60 20 4096 350 0 0 0 65536 0 0 65536 0 0
50 49 490000 10000 0 0 225 66 20 4096 528 0 0 0 65536 0 0 65536 0 0
51 50 500000 10000 0 0 214 69 21 4096 694 0 0 0 65536 0 0 65536 0 0
52 51 510000 10000 0 0 227 71 23 4096 883 0 0 0 65536 0 0 65536 0 0
53 52 520000 10000 0 0 208 71 23 4096 1043 0 0 0 65536 0 0 65536 0 0
54 53 530000 10000 0 0 207 71 25 4096 1202 0 0 0 65536 0 0 65536 0 0
55 54 540000 10000 0 0 200 71 26 4096 1319 0 0 0 65536 0 0 65536 0 0
56 55 550000 10000 0 0 205 72 27 4096 1464 0 0 0 65536 0 0 65536 0 0
57 56 560000 10000 0 0 211 73 27 4096 1620 0 0 0 65536 0 0 65536 0 0
58 57 570000 10000 0 0 193 80 28 4096 1712 0 0 0 65536 0 0 65536 0 0
59 58 580000 10000 0 0 185 4 61 4096 1757 0 0 0 65536 0 0 65536 0 0
60 59 590000 10000 0 0 81 7 32 4096 1757 0 0 0 65536 0 0 65536 0 0
61 60 600000 10000 0 0 52 10 28 4096 1757 0 0 0 65536 0 0 65536 0 0
62 61 610000 10000 0 0 63 17 25 4096 1757 0 0 0 65536 0 0 65536 0 0
63 62 620000 10000 0 0 85 19 24 4096 1757 0 0 0 65536 0 0 65536 0 0
64 63 630000 10000 0 0 68 20 23 4096 1757 0 0 0 65536 0 0 65536 0 0
65 64 640000 10000 0 0 39 20 23 4096 1757 0 0 0 65536 0 0 65536 0 0
66 65 650000 10000 0 0 45 20 25 4096 1757 0 0 0 65536 0 0 65536 0 0
67 66 660000 10000 0 0 42 20 29 4096 1757 0 0 0 65536 0 0 65536 0 0
68 67 670000 10000 0 0 47 20 31 4096 1757 0 0 0 65536 0 0 65536 0 0
69 68 680000 10000 0 0 43 20 34 4096 1757 0 0 0 65536 0 0 65536 0 0
70 69 690000 10000 0 0 48 20 35 4096 1757 0 0 0 65536 0 0 65536 0 0
71 70 700000 10000 0 0 48 21 38 4096 1757 0 0 0 65536 0 0 65536 0 0
72 71 710000 10000 0 0 44 22 39 4096 1757 0 0 0 65536 0 0 65536 0 0
73 72 720000 10000 0 0 130 24 27 4096 1757 0 0 0 65536 0 0 65536 0 0
74 73 730000 10000 0 0 134 26 21 4096 1757 0 0 0 65536 0 0 65536 0 0
75 1 10000 18446744073708831616 0 0 117 4 4 4096 0 0 4895412794951728796 13 65536 0 0 65536 0 0
76 2 20000 10000 0 0 78 10 7 4096 0 0 0 17 65536 0 0 65536 0 0
77 3 30000 10000 0 0 101 13 7 4096 0 0 0 22 65536 0 0 65536 0 0
78 4 40000 10000 0 0 63 19 8 4096 0 0 0 25 65536 0 0 65536 0 0
79 5 50000 10000 0 0 92 25 8 4096 2 0 0 31 65536 0 0 65536 0 0
80 6 60000 10000 0 0 64 27 8 4096 2 0 0 36 65536 0 0 65536 0 0
81 7 70000 10000 0 0 228 32 8 4096 210 0 0 115 65536 0 0 65536 0 0
82 8 80000 10000 0 0 256 34 9 4096 466 0 0 209 65536 0 0 65536 0 0
83 9 90000 10000 0 0 256 36 10 4096 722 0 0 303 65536 0 0 65536 0 0
84 10 100000 10000 0 0 256 36 11 4096 978 0 0 396 65536 0 0 65536 0 0
85 11 110000 10000 0 0 256 36 11 4096 1234 0 0 488 65536 0 0 65536 0 0
86 12 120000 10000 0 0 256 36 12 4096 1490 0 0 581 65536 0 0 65536 0 0
87 13 130000 10000 0 0 256 37 12 4096 1746 0 0 674 65536 0 0 65536 0 0
88 14 140000 10000 0 0 230 39 12 4096 1949 0 0 750 65536 0 0 65536 0 0
89 15 150000 10000 0 0 256 39 13 4096 2204 0 0 844 65536 0 0 65536 0 0
90 16 160000 10000 0 0 256 39 14 4096 2459 0 0 937 65536 0 0 65536 0 0
91 17 170000 10000 0 0 256 39 15 4096 2713 0 0 1030 65536 0 0 65536 0 0
92 18 180000 10000 0 0 256 39 15 4096 2969 0 0 1124 65536 0 0 65536 0 0
93 19 190000 10000 0 0 256 39 16 4096 3224 0 0 1219 65536 0 1 65536 0 0
94 20 200000 10000 0 0 256 41 17 4096 3480 0 0 1313 65536 0 1 65536 0 0
95 21 210000 10000 0 0 256 41 17 4096 3736 0 0 1408 65536 0 1 65536 0 0
96 22 220000 10000 0 0 256 41 18 4096 3992 0 0 1502 65536 0 1 65536 0 0
97 23 230000 10000 0 0 256 41 19 4096 4096 0 0 1596 65536 0 1 65536 0 0
98 24 240000 10000 0 0 256 41 20 4096 4096 0 0 1689 65536 0 1 65536 0 0
99 25 250000 10000 0 0 256 43 20 2048 2048 0 0 1787 65536 0 1 65536 0 0
100 26 260000 10000 0 0 256 45 21 2048 2048 0 0 1883 65536 0 1 65536 0 0
101 27 270000 10000 0 0 256 45 22 1024 1024 0 0 1976 65536 0 1 65536 0 0
102 28 280000 10000 0 0 256 45 23 1024 1024 0 0 2069 65536 0 1 65536 0 0
103 29 290000 10000 0 0 256 45 24 512 512 0 0 2162 65536 0 1 65536 0 0
104 30 300000 10000 0 0 256 45 24 512 512 0 0 2255 65536 0 1 65536 0 0
105 31 310000 10000 0 0 256 45 25 256 256 0 0 2349 65536 0 1 65536 0 0
106 32 320000 10000 0 0 255 45 26 256 256 0 0 2440 65536 0 1 65536 0 0
107 33 330000 10000 0 0 256 45 27 256 256 0 0 2533 65536 0 1 65536 0 0
108 34 340000 10000 0 0 256 45 27 256 256 0 0 2625 65536 0 1 65536 0 0
109 35 350000 10000 0 0 256 45 28 256 256 0 0 2719 65536 0 1 65536 0 0
110 36 360000 10000 0 0 256 45 29 256 256 0 0 2812 65536 0 1 65536 0 0
@@ -0,0 +1,110 @@
tick_number,elapsed_ns,tick_interval_ns,cache_hits_delta,bucket_hits_delta,word_executions_delta,hot_word_count,avg_word_heat_q48,window_width,actual_window_size,predicted_label_hits,jitter_bits,apic_ticks,time_trust_q48,variance_q48,vm_call_depth_max,hera_heat_q48,hermes_heat_q48,artemis_heat_q48
1,10000,10000,0,0,183,4,45,731,731,0,0,0,65536,0,0,65536,0,0
2,20000,10000,0,0,173,5,44,582,582,0,0,0,65536,0,0,65536,0,0
3,30000,10000,0,0,184,6,60,582,582,0,0,0,65536,0,0,65536,0,0
4,40000,10000,0,0,174,8,71,4096,0,0,0,0,65536,0,0,65536,0,0
5,50000,10000,0,0,150,9,78,582,582,0,0,0,65536,0,0,65536,0,0
6,60000,10000,0,0,159,11,73,4096,0,0,0,0,65536,0,0,65536,0,0
7,70000,10000,0,0,188,15,71,685,685,0,0,0,65536,0,0,65536,0,0
8,80000,10000,0,0,214,16,83,685,685,0,0,0,65536,0,0,65536,0,0
9,90000,10000,0,0,216,19,82,4096,0,0,0,0,65536,0,0,65536,0,0
10,100000,10000,0,0,222,21,84,567,567,0,0,0,65536,0,0,65536,0,0
11,110000,10000,0,0,207,23,86,731,731,0,0,0,65536,0,0,65536,0,0
12,120000,10000,0,0,189,26,83,4096,0,0,0,0,65536,0,0,65536,0,0
13,130000,10000,0,0,221,28,80,731,731,0,0,0,65536,0,0,65536,0,0
14,140000,10000,0,0,204,29,83,685,685,0,0,0,65536,0,0,65536,0,0
15,150000,10000,0,0,203,30,82,731,731,0,0,0,65536,0,0,65536,0,0
16,160000,10000,0,0,201,32,83,567,567,0,0,0,65536,0,0,65536,0,0
17,170000,10000,0,0,190,34,86,731,731,0,0,0,65536,0,0,65536,0,0
18,180000,10000,0,0,170,35,73,582,582,0,0,0,65536,0,0,65536,0,0
19,190000,10000,0,0,154,35,40,731,731,0,0,0,65536,0,0,65536,0,0
20,200000,10000,0,0,154,35,38,567,567,0,0,0,65536,0,0,65536,0,0
21,210000,10000,0,0,153,38,37,4096,0,0,0,0,65536,0,0,65536,0,0
22,220000,10000,0,0,167,38,38,582,582,0,0,0,65536,0,0,65536,0,0
23,230000,10000,0,0,176,12,40,685,685,0,0,0,65536,0,0,65536,0,0
24,240000,10000,0,0,175,10,25,731,731,0,0,0,65536,0,0,65536,0,0
25,250000,10000,0,0,196,11,23,731,731,0,0,0,65536,0,0,65536,0,0
26,260000,10000,0,0,192,14,24,4096,0,0,0,0,65536,0,0,65536,0,0
27,270000,10000,0,0,158,16,30,685,685,0,0,0,65536,0,0,65536,0,0
28,280000,10000,0,0,158,17,23,4096,0,0,0,0,65536,0,0,65536,0,0
29,290000,10000,0,0,164,17,27,4096,0,0,0,0,65536,0,0,65536,0,0
30,300000,10000,0,0,154,18,26,685,685,0,0,0,65536,0,0,65536,0,0
31,310000,10000,0,0,172,6,25,582,582,0,0,0,65536,0,0,65536,0,0
32,320000,10000,0,0,180,9,22,567,567,0,0,0,65536,0,0,65536,0,0
33,330000,10000,0,0,145,11,29,567,567,0,0,0,65536,0,0,65536,0,0
34,340000,10000,0,0,203,14,30,582,582,0,0,0,65536,0,0,65536,0,0
35,350000,10000,0,0,154,16,36,731,731,0,0,0,65536,0,0,65536,0,0
36,360000,10000,0,0,144,18,32,4096,0,0,0,0,65536,0,0,65536,0,0
37,370000,10000,0,0,144,18,29,4096,0,0,0,0,65536,0,0,65536,0,0
38,380000,10000,0,0,132,18,28,4096,0,0,0,0,65536,0,0,65536,0,0
39,390000,10000,0,0,180,18,24,4096,0,0,0,0,65536,0,0,65536,0,0
40,400000,10000,0,0,220,23,20,4096,0,0,0,0,65536,0,0,65536,0,0
41,410000,10000,0,0,215,25,19,4096,24,0,0,0,65536,0,0,65536,0,0
42,420000,10000,0,0,208,32,20,4096,24,0,0,0,65536,0,0,65536,0,0
43,430000,10000,0,0,177,36,19,4096,24,0,0,0,65536,0,0,65536,0,0
44,440000,10000,0,0,199,42,20,4096,24,0,0,0,65536,0,0,65536,0,0
45,450000,10000,0,0,223,47,19,4096,30,0,0,0,65536,0,0,65536,0,0
46,460000,10000,0,0,202,50,17,4096,67,0,0,0,65536,0,0,65536,0,0
47,470000,10000,0,0,218,57,18,4096,198,0,0,0,65536,0,0,65536,0,0
48,480000,10000,0,0,221,60,20,4096,350,0,0,0,65536,0,0,65536,0,0
49,490000,10000,0,0,225,66,20,4096,528,0,0,0,65536,0,0,65536,0,0
50,500000,10000,0,0,214,69,21,4096,694,0,0,0,65536,0,0,65536,0,0
51,510000,10000,0,0,227,71,23,4096,883,0,0,0,65536,0,0,65536,0,0
52,520000,10000,0,0,208,71,23,4096,1043,0,0,0,65536,0,0,65536,0,0
53,530000,10000,0,0,207,71,25,4096,1202,0,0,0,65536,0,0,65536,0,0
54,540000,10000,0,0,200,71,26,4096,1319,0,0,0,65536,0,0,65536,0,0
55,550000,10000,0,0,205,72,27,4096,1464,0,0,0,65536,0,0,65536,0,0
56,560000,10000,0,0,211,73,27,4096,1620,0,0,0,65536,0,0,65536,0,0
57,570000,10000,0,0,193,80,28,4096,1712,0,0,0,65536,0,0,65536,0,0
58,580000,10000,0,0,185,4,61,4096,1757,0,0,0,65536,0,0,65536,0,0
59,590000,10000,0,0,81,7,32,4096,1757,0,0,0,65536,0,0,65536,0,0
60,600000,10000,0,0,52,10,28,4096,1757,0,0,0,65536,0,0,65536,0,0
61,610000,10000,0,0,63,17,25,4096,1757,0,0,0,65536,0,0,65536,0,0
62,620000,10000,0,0,85,19,24,4096,1757,0,0,0,65536,0,0,65536,0,0
63,630000,10000,0,0,68,20,23,4096,1757,0,0,0,65536,0,0,65536,0,0
64,640000,10000,0,0,39,20,23,4096,1757,0,0,0,65536,0,0,65536,0,0
65,650000,10000,0,0,45,20,25,4096,1757,0,0,0,65536,0,0,65536,0,0
66,660000,10000,0,0,42,20,29,4096,1757,0,0,0,65536,0,0,65536,0,0
67,670000,10000,0,0,47,20,31,4096,1757,0,0,0,65536,0,0,65536,0,0
68,680000,10000,0,0,43,20,34,4096,1757,0,0,0,65536,0,0,65536,0,0
69,690000,10000,0,0,48,20,35,4096,1757,0,0,0,65536,0,0,65536,0,0
70,700000,10000,0,0,48,21,38,4096,1757,0,0,0,65536,0,0,65536,0,0
71,710000,10000,0,0,44,22,39,4096,1757,0,0,0,65536,0,0,65536,0,0
72,720000,10000,0,0,130,24,27,4096,1757,0,0,0,65536,0,0,65536,0,0
73,730000,10000,0,0,134,26,21,4096,1757,0,0,0,65536,0,0,65536,0,0
1,10000,18446744073708831616,0,0,117,4,4,4096,0,0,4895412794951728796,9,65536,0,0,65536,0,0
2,20000,10000,0,0,78,10,7,4096,0,0,0,12,65536,0,0,65536,0,0
3,30000,10000,0,0,101,13,7,4096,0,0,0,15,65536,0,0,65536,0,0
4,40000,10000,0,0,63,19,8,4096,0,0,0,17,65536,0,0,65536,0,0
5,50000,10000,0,0,92,25,8,4096,2,0,0,21,65536,0,0,65536,0,0
6,60000,10000,0,0,64,27,8,4096,2,0,0,24,65536,0,0,65536,0,0
7,70000,10000,0,0,228,32,8,4096,210,0,0,64,65536,0,0,65536,0,0
8,80000,10000,0,0,256,34,9,4096,466,0,0,115,65536,0,0,65536,0,0
9,90000,10000,0,0,256,36,10,4096,722,0,0,169,65536,0,0,65536,0,0
10,100000,10000,0,0,256,36,11,4096,978,0,0,220,65536,0,0,65536,0,0
11,110000,10000,0,0,256,36,11,4096,1234,0,0,271,65536,0,0,65536,0,0
12,120000,10000,0,0,256,36,12,4096,1490,0,0,327,65536,0,0,65536,0,0
13,130000,10000,0,0,256,37,12,4096,1746,0,0,381,65536,0,0,65536,0,0
14,140000,10000,0,0,230,39,12,4096,1949,0,0,425,65536,0,0,65536,0,0
15,150000,10000,0,0,256,39,13,4096,2204,0,0,476,65536,0,0,65536,0,0
16,160000,10000,0,0,256,39,14,4096,2459,0,0,523,65536,0,0,65536,0,0
17,170000,10000,0,0,256,39,15,4096,2713,0,0,576,65536,0,0,65536,0,0
18,180000,10000,0,0,256,39,15,4096,2969,0,0,624,65536,0,0,65536,0,0
19,190000,10000,0,0,256,39,16,4096,3224,0,0,676,65536,0,1,65536,0,0
20,200000,10000,0,0,256,41,17,4096,3480,0,0,730,65536,0,1,65536,0,0
21,210000,10000,0,0,256,41,17,4096,3736,0,0,785,65536,0,1,65536,0,0
22,220000,10000,0,0,256,41,18,4096,3992,0,0,840,65536,0,1,65536,0,0
23,230000,10000,0,0,256,41,19,4096,4096,0,0,895,65536,0,1,65536,0,0
24,240000,10000,0,0,256,41,20,4096,4096,0,0,950,65536,0,1,65536,0,0
25,250000,10000,0,0,256,43,20,2048,2048,0,0,1003,65536,0,1,65536,0,0
26,260000,10000,0,0,256,45,21,2048,2048,0,0,1057,65536,0,1,65536,0,0
27,270000,10000,0,0,256,45,22,1024,1024,0,0,1106,65536,0,1,65536,0,0
28,280000,10000,0,0,256,45,23,1024,1024,0,0,1161,65536,0,1,65536,0,0
29,290000,10000,0,0,256,45,24,512,512,0,0,1216,65536,0,1,65536,0,0
30,300000,10000,0,0,256,45,24,512,512,0,0,1271,65536,0,1,65536,0,0
31,310000,10000,0,0,256,45,25,256,256,0,0,1326,65536,0,1,65536,0,0
32,320000,10000,0,0,255,45,26,256,256,0,0,1380,65536,0,1,65536,0,0
33,330000,10000,0,0,256,45,27,256,256,0,0,1435,65536,0,1,65536,0,0
34,340000,10000,0,0,256,45,27,256,256,0,0,1485,65536,0,1,65536,0,0
35,350000,10000,0,0,256,45,28,256,256,0,0,1533,65536,0,1,65536,0,0
36,360000,10000,0,0,256,45,29,256,256,0,0,1589,65536,0,1,65536,0,0
1 tick_number elapsed_ns tick_interval_ns cache_hits_delta bucket_hits_delta word_executions_delta hot_word_count avg_word_heat_q48 window_width actual_window_size predicted_label_hits jitter_bits apic_ticks time_trust_q48 variance_q48 vm_call_depth_max hera_heat_q48 hermes_heat_q48 artemis_heat_q48
2 1 10000 10000 0 0 183 4 45 731 731 0 0 0 65536 0 0 65536 0 0
3 2 20000 10000 0 0 173 5 44 582 582 0 0 0 65536 0 0 65536 0 0
4 3 30000 10000 0 0 184 6 60 582 582 0 0 0 65536 0 0 65536 0 0
5 4 40000 10000 0 0 174 8 71 4096 0 0 0 0 65536 0 0 65536 0 0
6 5 50000 10000 0 0 150 9 78 582 582 0 0 0 65536 0 0 65536 0 0
7 6 60000 10000 0 0 159 11 73 4096 0 0 0 0 65536 0 0 65536 0 0
8 7 70000 10000 0 0 188 15 71 685 685 0 0 0 65536 0 0 65536 0 0
9 8 80000 10000 0 0 214 16 83 685 685 0 0 0 65536 0 0 65536 0 0
10 9 90000 10000 0 0 216 19 82 4096 0 0 0 0 65536 0 0 65536 0 0
11 10 100000 10000 0 0 222 21 84 567 567 0 0 0 65536 0 0 65536 0 0
12 11 110000 10000 0 0 207 23 86 731 731 0 0 0 65536 0 0 65536 0 0
13 12 120000 10000 0 0 189 26 83 4096 0 0 0 0 65536 0 0 65536 0 0
14 13 130000 10000 0 0 221 28 80 731 731 0 0 0 65536 0 0 65536 0 0
15 14 140000 10000 0 0 204 29 83 685 685 0 0 0 65536 0 0 65536 0 0
16 15 150000 10000 0 0 203 30 82 731 731 0 0 0 65536 0 0 65536 0 0
17 16 160000 10000 0 0 201 32 83 567 567 0 0 0 65536 0 0 65536 0 0
18 17 170000 10000 0 0 190 34 86 731 731 0 0 0 65536 0 0 65536 0 0
19 18 180000 10000 0 0 170 35 73 582 582 0 0 0 65536 0 0 65536 0 0
20 19 190000 10000 0 0 154 35 40 731 731 0 0 0 65536 0 0 65536 0 0
21 20 200000 10000 0 0 154 35 38 567 567 0 0 0 65536 0 0 65536 0 0
22 21 210000 10000 0 0 153 38 37 4096 0 0 0 0 65536 0 0 65536 0 0
23 22 220000 10000 0 0 167 38 38 582 582 0 0 0 65536 0 0 65536 0 0
24 23 230000 10000 0 0 176 12 40 685 685 0 0 0 65536 0 0 65536 0 0
25 24 240000 10000 0 0 175 10 25 731 731 0 0 0 65536 0 0 65536 0 0
26 25 250000 10000 0 0 196 11 23 731 731 0 0 0 65536 0 0 65536 0 0
27 26 260000 10000 0 0 192 14 24 4096 0 0 0 0 65536 0 0 65536 0 0
28 27 270000 10000 0 0 158 16 30 685 685 0 0 0 65536 0 0 65536 0 0
29 28 280000 10000 0 0 158 17 23 4096 0 0 0 0 65536 0 0 65536 0 0
30 29 290000 10000 0 0 164 17 27 4096 0 0 0 0 65536 0 0 65536 0 0
31 30 300000 10000 0 0 154 18 26 685 685 0 0 0 65536 0 0 65536 0 0
32 31 310000 10000 0 0 172 6 25 582 582 0 0 0 65536 0 0 65536 0 0
33 32 320000 10000 0 0 180 9 22 567 567 0 0 0 65536 0 0 65536 0 0
34 33 330000 10000 0 0 145 11 29 567 567 0 0 0 65536 0 0 65536 0 0
35 34 340000 10000 0 0 203 14 30 582 582 0 0 0 65536 0 0 65536 0 0
36 35 350000 10000 0 0 154 16 36 731 731 0 0 0 65536 0 0 65536 0 0
37 36 360000 10000 0 0 144 18 32 4096 0 0 0 0 65536 0 0 65536 0 0
38 37 370000 10000 0 0 144 18 29 4096 0 0 0 0 65536 0 0 65536 0 0
39 38 380000 10000 0 0 132 18 28 4096 0 0 0 0 65536 0 0 65536 0 0
40 39 390000 10000 0 0 180 18 24 4096 0 0 0 0 65536 0 0 65536 0 0
41 40 400000 10000 0 0 220 23 20 4096 0 0 0 0 65536 0 0 65536 0 0
42 41 410000 10000 0 0 215 25 19 4096 24 0 0 0 65536 0 0 65536 0 0
43 42 420000 10000 0 0 208 32 20 4096 24 0 0 0 65536 0 0 65536 0 0
44 43 430000 10000 0 0 177 36 19 4096 24 0 0 0 65536 0 0 65536 0 0
45 44 440000 10000 0 0 199 42 20 4096 24 0 0 0 65536 0 0 65536 0 0
46 45 450000 10000 0 0 223 47 19 4096 30 0 0 0 65536 0 0 65536 0 0
47 46 460000 10000 0 0 202 50 17 4096 67 0 0 0 65536 0 0 65536 0 0
48 47 470000 10000 0 0 218 57 18 4096 198 0 0 0 65536 0 0 65536 0 0
49 48 480000 10000 0 0 221 60 20 4096 350 0 0 0 65536 0 0 65536 0 0
50 49 490000 10000 0 0 225 66 20 4096 528 0 0 0 65536 0 0 65536 0 0
51 50 500000 10000 0 0 214 69 21 4096 694 0 0 0 65536 0 0 65536 0 0
52 51 510000 10000 0 0 227 71 23 4096 883 0 0 0 65536 0 0 65536 0 0
53 52 520000 10000 0 0 208 71 23 4096 1043 0 0 0 65536 0 0 65536 0 0
54 53 530000 10000 0 0 207 71 25 4096 1202 0 0 0 65536 0 0 65536 0 0
55 54 540000 10000 0 0 200 71 26 4096 1319 0 0 0 65536 0 0 65536 0 0
56 55 550000 10000 0 0 205 72 27 4096 1464 0 0 0 65536 0 0 65536 0 0
57 56 560000 10000 0 0 211 73 27 4096 1620 0 0 0 65536 0 0 65536 0 0
58 57 570000 10000 0 0 193 80 28 4096 1712 0 0 0 65536 0 0 65536 0 0
59 58 580000 10000 0 0 185 4 61 4096 1757 0 0 0 65536 0 0 65536 0 0
60 59 590000 10000 0 0 81 7 32 4096 1757 0 0 0 65536 0 0 65536 0 0
61 60 600000 10000 0 0 52 10 28 4096 1757 0 0 0 65536 0 0 65536 0 0
62 61 610000 10000 0 0 63 17 25 4096 1757 0 0 0 65536 0 0 65536 0 0
63 62 620000 10000 0 0 85 19 24 4096 1757 0 0 0 65536 0 0 65536 0 0
64 63 630000 10000 0 0 68 20 23 4096 1757 0 0 0 65536 0 0 65536 0 0
65 64 640000 10000 0 0 39 20 23 4096 1757 0 0 0 65536 0 0 65536 0 0
66 65 650000 10000 0 0 45 20 25 4096 1757 0 0 0 65536 0 0 65536 0 0
67 66 660000 10000 0 0 42 20 29 4096 1757 0 0 0 65536 0 0 65536 0 0
68 67 670000 10000 0 0 47 20 31 4096 1757 0 0 0 65536 0 0 65536 0 0
69 68 680000 10000 0 0 43 20 34 4096 1757 0 0 0 65536 0 0 65536 0 0
70 69 690000 10000 0 0 48 20 35 4096 1757 0 0 0 65536 0 0 65536 0 0
71 70 700000 10000 0 0 48 21 38 4096 1757 0 0 0 65536 0 0 65536 0 0
72 71 710000 10000 0 0 44 22 39 4096 1757 0 0 0 65536 0 0 65536 0 0
73 72 720000 10000 0 0 130 24 27 4096 1757 0 0 0 65536 0 0 65536 0 0
74 73 730000 10000 0 0 134 26 21 4096 1757 0 0 0 65536 0 0 65536 0 0
75 1 10000 18446744073708831616 0 0 117 4 4 4096 0 0 4895412794951728796 9 65536 0 0 65536 0 0
76 2 20000 10000 0 0 78 10 7 4096 0 0 0 12 65536 0 0 65536 0 0
77 3 30000 10000 0 0 101 13 7 4096 0 0 0 15 65536 0 0 65536 0 0
78 4 40000 10000 0 0 63 19 8 4096 0 0 0 17 65536 0 0 65536 0 0
79 5 50000 10000 0 0 92 25 8 4096 2 0 0 21 65536 0 0 65536 0 0
80 6 60000 10000 0 0 64 27 8 4096 2 0 0 24 65536 0 0 65536 0 0
81 7 70000 10000 0 0 228 32 8 4096 210 0 0 64 65536 0 0 65536 0 0
82 8 80000 10000 0 0 256 34 9 4096 466 0 0 115 65536 0 0 65536 0 0
83 9 90000 10000 0 0 256 36 10 4096 722 0 0 169 65536 0 0 65536 0 0
84 10 100000 10000 0 0 256 36 11 4096 978 0 0 220 65536 0 0 65536 0 0
85 11 110000 10000 0 0 256 36 11 4096 1234 0 0 271 65536 0 0 65536 0 0
86 12 120000 10000 0 0 256 36 12 4096 1490 0 0 327 65536 0 0 65536 0 0
87 13 130000 10000 0 0 256 37 12 4096 1746 0 0 381 65536 0 0 65536 0 0
88 14 140000 10000 0 0 230 39 12 4096 1949 0 0 425 65536 0 0 65536 0 0
89 15 150000 10000 0 0 256 39 13 4096 2204 0 0 476 65536 0 0 65536 0 0
90 16 160000 10000 0 0 256 39 14 4096 2459 0 0 523 65536 0 0 65536 0 0
91 17 170000 10000 0 0 256 39 15 4096 2713 0 0 576 65536 0 0 65536 0 0
92 18 180000 10000 0 0 256 39 15 4096 2969 0 0 624 65536 0 0 65536 0 0
93 19 190000 10000 0 0 256 39 16 4096 3224 0 0 676 65536 0 1 65536 0 0
94 20 200000 10000 0 0 256 41 17 4096 3480 0 0 730 65536 0 1 65536 0 0
95 21 210000 10000 0 0 256 41 17 4096 3736 0 0 785 65536 0 1 65536 0 0
96 22 220000 10000 0 0 256 41 18 4096 3992 0 0 840 65536 0 1 65536 0 0
97 23 230000 10000 0 0 256 41 19 4096 4096 0 0 895 65536 0 1 65536 0 0
98 24 240000 10000 0 0 256 41 20 4096 4096 0 0 950 65536 0 1 65536 0 0
99 25 250000 10000 0 0 256 43 20 2048 2048 0 0 1003 65536 0 1 65536 0 0
100 26 260000 10000 0 0 256 45 21 2048 2048 0 0 1057 65536 0 1 65536 0 0
101 27 270000 10000 0 0 256 45 22 1024 1024 0 0 1106 65536 0 1 65536 0 0
102 28 280000 10000 0 0 256 45 23 1024 1024 0 0 1161 65536 0 1 65536 0 0
103 29 290000 10000 0 0 256 45 24 512 512 0 0 1216 65536 0 1 65536 0 0
104 30 300000 10000 0 0 256 45 24 512 512 0 0 1271 65536 0 1 65536 0 0
105 31 310000 10000 0 0 256 45 25 256 256 0 0 1326 65536 0 1 65536 0 0
106 32 320000 10000 0 0 255 45 26 256 256 0 0 1380 65536 0 1 65536 0 0
107 33 330000 10000 0 0 256 45 27 256 256 0 0 1435 65536 0 1 65536 0 0
108 34 340000 10000 0 0 256 45 27 256 256 0 0 1485 65536 0 1 65536 0 0
109 35 350000 10000 0 0 256 45 28 256 256 0 0 1533 65536 0 1 65536 0 0
110 36 360000 10000 0 0 256 45 29 256 256 0 0 1589 65536 0 1 65536 0 0
+11
View File
@@ -71,6 +71,17 @@ void console_init(void);
#include "framebuffer.h"
void console_fb_init(const FramebufferInfo *info, FbPixelFormat fmt);
/**
* FABRIC.md item 4.4j: switch the framebuffer console's glyph backend from
* font_8x16.c to TTF-TEXT's rasterizer. Thin wrapper over
* vt100_enable_ttf() -- see that function's doc comment for the full
* contract (lazy font load, cell-geometry/cols/rows recompute, screen
* clear, one-shot). No-op if the framebuffer console was never
* initialized (console_fb_init() not called, or it no-op'd on a NULL
* framebuffer).
*/
void console_fb_enable_ttf(void);
/**
* Write a single character to serial console
*/
+13
View File
@@ -60,6 +60,19 @@
*/
void vt100_init(void);
/**
* FABRIC.md item 4.4j: switch the glyph-draw backend from font_8x16.c to
* TTF-TEXT's rasterizer for everything drawn from this call onward --
* boot/POST output before this call stays font_8x16.c, unaffected.
* Lazily loads the font capsule and its raster cache on first call
* (no-op on later calls). Recomputes cols/rows for the new cell size and
* clears the screen, since the two glyph backends use different cell
* dimensions. Provisional TTF point size/cell dimensions -- FABRIC.md
* item 4.4m owns the final decision. No-op if the font capsule fails to
* load (stays on font_8x16.c; logged, not fatal).
*/
void vt100_enable_ttf(void);
/* -----------------------------------------------------------------------
* Character output
* --------------------------------------------------------------------- */
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
+7
View File
@@ -296,6 +296,13 @@ void console_fb_init(const FramebufferInfo *info, FbPixelFormat fmt)
}
}
void console_fb_enable_ttf(void)
{
if (fb_is_available()) {
vt100_enable_ttf();
}
}
/**
* Read a single character from serial console (non-blocking)
* Returns -1 if no character available
+143 -11
View File
@@ -40,14 +40,47 @@
#include "vt100.h"
#include "framebuffer.h"
#include "starkernel/ttf.h"
#include "starkernel/capsule_generated.h"
#include "starkernel/kmalloc.h"
#include "log.h"
#include <stdint.h>
/* Maximum CSI parameters */
#define VT100_MAX_PARAMS 16
/* Underline scanline (row 14 of 16) */
/* Underline scanline (row 14 of 16) -- font_8x16 mode only; see
* draw_cursor_glyph()'s mode split. */
#define UNDERLINE_ROW 14u
/* -----------------------------------------------------------------------
* FABRIC.md item 4.4j: TTF glyph backend, active only from
* vt100_enable_ttf() onward (boot/POST stays font_8x16.c).
*
* Provisional point size and cell geometry -- item 4.4m owns the final
* REPL-strip decision. Chosen so 4.4i's confirmed hmtx result (all
* printable ASCII share one 600/1000-em advance width) divides evenly:
* 600/1000 * 20 = 12px exactly, no fractional-pixel cell width. Cell
* height is size + a fixed descender/leading allowance, not derived from
* hhea (not read by this parser -- see ttf.h) -- provisional like the
* width.
* --------------------------------------------------------------------- */
#define VT100_TTF_SIZE_PX 20u
#define VT100_TTF_CELL_W_PX 12u /* 600/1000 * VT100_TTF_SIZE_PX */
#define VT100_TTF_CELL_H_PX 24u /* provisional: size + 4px leading/descender */
#define VT100_TTF_CACHE_SLOTS 96u /* covers all 95 printable ASCII, no thrash */
#define VT100_TTF_FONT_CAPSULE "fonts:JetBrainsMono-Regular.ttf"
typedef enum {
VT_GLYPH_BITMAP = 0, /* font_8x16.c, via fb_draw_glyph() */
VT_GLYPH_TTF = 1, /* TTF-TEXT's rasterizer, via ttf_draw_glyph_cell() */
} vt_glyph_mode_t;
static vt_glyph_mode_t g_glyph_mode = VT_GLYPH_BITMAP;
static ttf_font_t g_ttf_font;
static int g_ttf_ready = 0;
static ttf_raster_cache_t g_ttf_cache;
/* -----------------------------------------------------------------------
* Parser state enum
* --------------------------------------------------------------------- */
@@ -110,9 +143,13 @@ static void apply_sgr(void);
* Internal helpers
* --------------------------------------------------------------------- */
/* Framebuffer cell dimensions (pixels) — reads from framebuffer driver */
static uint32_t cell_w(void) { return fb_cell_w(); }
static uint32_t cell_h(void) { return fb_cell_h(); }
/* Cell dimensions (pixels) — font_8x16.c's fixed 8x16 grid in bitmap mode,
* or the provisional TTF cell (4.4j) once vt100_enable_ttf() has switched
* modes. Mode-aware per 4.4i's finding that the grid was hardcoded to
* font_8x16.c specifically; this is the generalization that item called
* for. */
static uint32_t cell_w(void) { return g_glyph_mode == VT_GLYPH_TTF ? VT100_TTF_CELL_W_PX : fb_cell_w(); }
static uint32_t cell_h(void) { return g_glyph_mode == VT_GLYPH_TTF ? VT100_TTF_CELL_H_PX : fb_cell_h(); }
/* Pixel position of the top-left corner of character cell (cx, cy) */
static uint32_t px_of(uint32_t col) { return col * cell_w(); }
@@ -122,6 +159,46 @@ static uint32_t py_of(uint32_t row) { return row * cell_h(); }
static uint32_t eff_fg(void) { return g_vt.reverse ? g_vt.bg : g_vt.fg; }
static uint32_t eff_bg(void) { return g_vt.reverse ? g_vt.fg : g_vt.bg; }
/* Draw one glyph via the TTF rasterizer into the cell at pixel (cell_px,
* cell_py). Mirrors fb_draw_glyph()'s opaque-cell contract (every pixel in
* the cell gets either fg or bg, not just the glyph's "ink") by filling
* the whole cell with bg first, then stamping covered bitmap pixels with
* fg. Baseline sits VT100_TTF_SIZE_PX down from the cell's top, matching
* TTF-TEXT's own bitmap-origin convention (ttf.h's
* "glyph baseline sits at pixel (MARGIN, size_px + MARGIN)"). Bitmap
* pixels are clipped to the cell rect -- a glyph's rasterized bounds can
* slightly exceed the nominal advance width, and cells must stay opaque
* neighbors, not bleed into each other. */
static void ttf_draw_glyph_cell(uint32_t cell_px, uint32_t cell_py, uint8_t ch,
uint32_t fg, uint32_t bg)
{
ttf_bitmap_t bmp;
int rc, was_hit;
uint32_t bx, by;
uint32_t baseline_y = cell_py + VT100_TTF_SIZE_PX;
fb_fill_rect(cell_px, cell_py, cell_w(), cell_h(), bg);
if (!g_ttf_ready) return; /* shouldn't happen once VT_GLYPH_TTF is set, defensive only */
rc = ttf_raster_cache_get(&g_ttf_cache, &g_ttf_font, (uint32_t)ch,
VT100_TTF_SIZE_PX, &bmp, &was_hit);
if (rc != TTF_OK) return; /* missing/unrasterizable glyph -- leave cell blank (bg only) */
for (by = 0; by < bmp.height; by++) {
int32_t fb_y = (int32_t)baseline_y + (int32_t)by
- (int32_t)VT100_TTF_SIZE_PX - TTF_CACHE_MARGIN;
if (fb_y < (int32_t)cell_py || fb_y >= (int32_t)(cell_py + cell_h())) continue;
for (bx = 0; bx < bmp.width; bx++) {
int32_t fb_x = (int32_t)cell_px + (int32_t)bx - TTF_CACHE_MARGIN;
if (fb_x < (int32_t)cell_px || fb_x >= (int32_t)(cell_px + cell_w())) continue;
if (bmp.pixels[by * bmp.width + bx]) {
fb_put_pixel((uint32_t)fb_x, (uint32_t)fb_y, fg);
}
}
}
}
static void draw_cursor_glyph(uint8_t ch)
{
uint32_t f = eff_fg();
@@ -138,11 +215,22 @@ static void draw_cursor_glyph(uint8_t ch)
f = FB_RGB(r, g, bv);
}
fb_draw_glyph(px_of(g_vt.cx), py_of(g_vt.cy), ch, f, b);
if (g_glyph_mode == VT_GLYPH_TTF) {
ttf_draw_glyph_cell(px_of(g_vt.cx), py_of(g_vt.cy), ch, f, b);
} else {
fb_draw_glyph(px_of(g_vt.cx), py_of(g_vt.cy), ch, f, b);
}
if (g_vt.underline) {
uint32_t scale = cell_h() / 16u;
uint32_t ul_y = py_of(g_vt.cy) + UNDERLINE_ROW * scale;
/* font_8x16 mode: underline sits at UNDERLINE_ROW (row 14 of 16)
* of that font's fixed grid, scaled. TTF mode: no equivalent fixed
* row exists (this parser doesn't read hhea underline metrics --
* see ttf.h) -- placed 2px below the baseline instead, a
* provisional choice like the rest of 4.4j's TTF cell geometry. */
uint32_t scale = g_glyph_mode == VT_GLYPH_TTF ? 1u : cell_h() / 16u;
uint32_t ul_y = g_glyph_mode == VT_GLYPH_TTF
? py_of(g_vt.cy) + VT100_TTF_SIZE_PX + 2u
: py_of(g_vt.cy) + UNDERLINE_ROW * scale;
fb_fill_rect(px_of(g_vt.cx), ul_y, cell_w(), scale, f);
}
}
@@ -195,6 +283,45 @@ void vt100_init(void)
erase_display(2);
}
void vt100_enable_ttf(void)
{
if (g_glyph_mode == VT_GLYPH_TTF) return; /* already switched */
if (!g_vt.initialized) return;
if (!g_ttf_ready) {
ttf_raster_cache_slot_t *slots;
int rc;
rc = ttf_load_from_capsule(capsule_get_directory(), capsule_get_descriptors(),
capsule_get_names(), capsule_get_arena(),
VT100_TTF_FONT_CAPSULE, &g_ttf_font);
if (rc != TTF_OK) {
log_message(LOG_ERROR, "vt100: TTF font capsule load failed (rc=%d), staying on font_8x16", rc);
return;
}
slots = (ttf_raster_cache_slot_t *)kmalloc(sizeof(ttf_raster_cache_slot_t) * VT100_TTF_CACHE_SLOTS);
if (!slots) {
log_message(LOG_ERROR, "vt100: TTF cache allocation failed, staying on font_8x16");
return;
}
ttf_raster_cache_init(&g_ttf_cache, slots, VT100_TTF_CACHE_SLOTS);
g_ttf_ready = 1;
}
g_glyph_mode = VT_GLYPH_TTF;
/* Cell geometry just changed (font_8x16's fixed 8x16 vs. TTF's
* provisional 12x24, see this file's 4.4j block above) -- re-derive
* cols/rows and clear, the same as vt100_init() itself does. This only
* ever runs once, at the POST-to-REPL boundary (sk_repl()), so nothing
* of value is on screen yet to preserve. */
g_vt.cols = fb_width() / cell_w();
g_vt.rows = fb_height() / cell_h();
g_vt.cx = g_vt.cy = 0;
erase_display(2);
}
uint32_t vt100_cols(void) { return g_vt.cols; }
uint32_t vt100_rows(void) { return g_vt.rows; }
@@ -232,12 +359,17 @@ static void scroll_up(uint32_t lines)
* Erase operations
* --------------------------------------------------------------------- */
/* FABRIC.md item 4.4i found this drawing a per-cell blank glyph
* (font_8x16.c-specific, and inconsistent with erase_display(2)'s
* full-screen case just below, which already used a plain rect fill).
* 4.4j fixes both problems at once: a blank cell is visually identical to
* a filled bg rect regardless of glyph backend, so this needs no font
* involvement at all -- one fb_fill_rect() for the whole range instead of
* a per-column glyph draw. */
static void erase_line_range(uint32_t row, uint32_t c0, uint32_t c1)
{
uint32_t c;
for (c = c0; c < c1; c++) {
fb_draw_glyph(px_of(c), py_of(row), 0x20, g_vt.fg, g_vt.bg);
}
if (c1 <= c0) return;
fb_fill_rect(px_of(c0), py_of(row), (c1 - c0) * cell_w(), cell_h(), g_vt.bg);
}
static void erase_display(int mode)
+7
View File
@@ -268,6 +268,13 @@ void sk_repl_run(VM *vm)
void sk_repl(VM *vm)
{
/* FABRIC.md item 4.4j: boot and POST (both already returned by the time
* sk_repl() is called) stay on font_8x16.c/VT100 by design; the
* interactive REPL -- this function -- is the boundary where TTF-TEXT
* takes over. One-shot: console_fb_enable_ttf() no-ops on any later
* call. */
console_fb_enable_ttf();
console_println(lithos_version);
console_puts("StarForth Version "); console_println(STARFORTH_VERSION);
console_println("");