The renderer's own output, spelled the way the renderer spells it
The renderer check greps a line out of NEXT.md, and NEXT.md is a scratch document
that gets rewritten. The line went, the grep went empty, and the empty-needle guard
did its job and said so -- into a report nobody was reading. Behind that noise the
page was genuinely wrong: the colon-to-dot sweep rewrote every field label in the
corpus and lib/render.ml writes .field today, so the inspector block on the page had
been showing {:x 1.5 :y 0} for a renderer that prints {.x 1.5 .y 0}. test_repl.ml's
fixtures are the authority and they are dots throughout, with an enum member still a
colon; the page now matches. The anchor moves to test/programs/raylib-imported.flan,
which dune test builds and runs, so it cannot quietly stop saying it.
The LLVM excerpt beside it moved too: a --dev main pushes a condition frame before
anything else now, which shifted the SSA numbering by one. The three quoted lines are
what flan emit --dev prints today, with the frame push marked as elided rather than
silently dropped.
This commit is contained in:
parent
a003073be7
commit
c57ca6a24f
@ -99,7 +99,15 @@ want "shim wrapper" "$("$FLAN" shim "$here/shimdemo.flan" | grep 'GetMousePositi
|
||||
want "raylib binding" "$(grep -F 'unload-texture' "$root/vendor/raylib/raylib.flan")"
|
||||
want "agent declare" "$(grep -F 'flan_agent_poll' "$root/vendor/agent/agent.flan" | head -1)"
|
||||
want "conditions.org" "$(grep -F 'Innermost frame offering the name wins' "$root/conditions.org")"
|
||||
want "renderer" "$(grep -F ':r 17 :g 34 :b 51 :a 68' "$root/NEXT.md")"
|
||||
# The value renderer, anchored in the test corpus rather than in NEXT.md. It
|
||||
# used to grep NEXT.md for this line, and NEXT.md is a rolling scratch document:
|
||||
# the line was rewritten out of it, the grep went empty, and the check spent
|
||||
# weeks reporting "whatever this quotes has moved" while the page really had
|
||||
# gone stale -- the colon-to-dot sweep rewrote every field label in the corpus
|
||||
# and left the renderer's own output on this page spelled the old way. An anchor
|
||||
# has to be somewhere that cannot quietly stop saying the thing, and the corpus
|
||||
# is such a place, because `dune test` builds and runs it.
|
||||
want "renderer" "$(grep -oF '{.r 17 .g 34 .b 51 .a 68}' "$root/test/programs/raylib-imported.flan" | head -1)"
|
||||
|
||||
# The Emacs bindings, from the keymap rather than from any prose about it.
|
||||
for k in "C-c C-c" "C-c C-k" "C-x C-e" "C-c C-b" "C-c C-v" "C-c C-x"; do
|
||||
|
||||
@ -1569,9 +1569,10 @@ function that is current.</p>
|
||||
|
||||
define {} @"flan.main"(ptr %xfer) {
|
||||
entry:
|
||||
%t7 = alloca %slice
|
||||
%t1 = load ptr, ptr @"flan.cell.work"
|
||||
%t2 = call i32 %t1(i32 3, ptr %xfer)</code></pre>
|
||||
;; the frame push, elided — see conditions, above
|
||||
%t8 = alloca %slice
|
||||
%t2 = load ptr, ptr @"flan.cell.work"
|
||||
%t3 = call i32 %t2(i32 3, ptr %xfer)</code></pre>
|
||||
|
||||
<p>The call site loads the cell rather than naming <code>@"flan.work"</code>
|
||||
directly. The signature carries <code>ptr %xfer</code> — the transfer channel from
|
||||
@ -1666,10 +1667,10 @@ there, in the thunk. What comes back looks like this:</p>
|
||||
|
||||
<pre><code class="sh">big 18446744073709551615
|
||||
col :blue
|
||||
(.pos b) (V {:x 1.5 :y 0})
|
||||
b (Blob {:id 7 :name "sandy \"quoted\"" :pos (V {:x 1.5 :y 0}) :tags [ 0 42 0]})
|
||||
(.pos b) (V {.x 1.5 .y 0})
|
||||
b (Blob {.id 7 .name "sandy \"quoted\"" .pos (V {.x 1.5 .y 0}) .tags [ 0 42 0]})
|
||||
(slice (.tags b) 0 3) [ 0 42 0]
|
||||
(rl/get-color 0x11223344) (rl/Color {:r 17 :g 34 :b 51 :a 68})
|
||||
(rl/get-color 0x11223344) (rl/Color {.r 17 .g 34 .b 51 .a 68})
|
||||
sim/grid [ [ 0 0 0 0 0 0 0 0 ...] [ 0 ... ] ...]</code></pre>
|
||||
|
||||
<p>A pointer is never followed; it renders as <code><ptr></code>. Following one
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user