lumbda/wasm/app
russell@unturf.com 25d2765ed9
playground streaming: typed messages, no \n bytes on the wire
Going nuclear on the c-tier-horizontal-output saga. Six attempts at
preserving the \n byte from Module.print through Web Worker
postMessage to the DOM all reported clean chunks in node tests but
still rendered horizontal in fox's Firefox tab.

Removing \n bytes from the chunk-transmission path entirely. Worker
walks each onChunk slice byte-by-byte and posts two separate kinds
of message:

  { kind: 'chunk-text', tier, text: 'tick 0' }   <- visible chars only
  { kind: 'chunk-eol',  tier }                   <- bare line break

Newlines no longer travel as bytes — they're typed events. Whatever
was eating them between Emscripten's TTY out() and the main thread
in fox's browser drops out of the path entirely.

liveBlock.append split into appendText (extend the in-progress
line) and appendNewline (close pending div, spawn fresh sibling).
Python tier paths through the same worker code so it gets the same
typed-event treatment — should still render vertical because that's
what it was doing already.
2026-06-15 06:30:10 -04:00
..
demos bend: handler returns formatted string + http-listener ships strings raw 2026-06-14 20:15:37 -04:00
fonts/chunkfive wasm/playground: cancel button, asm state-leak fix, restyle to match homepage 2026-06-14 12:13:20 -04:00
app.js playground streaming: typed messages, no \n bytes on the wire 2026-06-15 06:30:10 -04:00
crypto.js playground: free-form code option + encrypted vault, single-scroll layout 2026-06-14 12:56:25 -04:00
index.html playground footer: surface what's locked + what's still WIP (call/cc, macros, portal) 2026-06-14 17:27:17 -04:00
lumbda-logo-green.png wasm/playground: cancel button, asm state-leak fix, restyle to match homepage 2026-06-14 12:13:20 -04:00
repl.html wat iter-1: special forms + 35 primitives toward asm/lumbda.s parity 2026-06-14 12:30:01 -04:00
runner.js playground: stream tier output line-by-line during eval 2026-06-14 20:25:47 -04:00
style.css playground: split streamed chunks into per-line divs + per-program drafts 2026-06-15 06:02:37 -04:00
worker.mjs playground streaming: typed messages, no \n bytes on the wire 2026-06-15 06:30:10 -04:00