diff --git a/web/examples/quotes.sh b/web/examples/quotes.sh index ee3126a..6e0b97d 100644 --- a/web/examples/quotes.sh +++ b/web/examples/quotes.sh @@ -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 diff --git a/web/index.html b/web/index.html index b43e46b..1b77603 100644 --- a/web/index.html +++ b/web/index.html @@ -1569,9 +1569,10 @@ function that is current.
define {} @"flan.main"(ptr %xfer) { entry: - %t7 = alloca %slice - %t1 = load ptr, ptr @"flan.cell.work" - %t2 = call i32 %t1(i32 3, ptr %xfer) + ;; 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)The call site loads the cell rather than naming @"flan.work"
directly. The signature carries ptr %xfer — the transfer channel from
@@ -1666,10 +1667,10 @@ there, in the thunk. What comes back looks like this:
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 ... ] ...]
A pointer is never followed; it renders as <ptr>. Following one