lumbda/www/repl
russell@unturf.com 11470a5fba
bend: wire bend!-call into the pyodide tier — playground python
lumbda-py.js (and the three deployed mirrors) now expose setBendUrl
and register a bend!-call primitive in the pyodide-hosted lumbda
environment.

Implementation:
  - JS loader stashes a `globalThis._lumbdaPyBendCall` function that
    does sync XHR POST to the configured bend URL (legal in Web
    Workers, where the pyodide tier runs in this playground)
  - Python bootstrap imports `_lumbdaPyBendCall` from `js` and binds
    it as a builtin under the symbol `bend!-call`, accepting any
    value and stringifying via lumbda.show before sending
  - setBendUrl(url) on the tier object updates the JS closure; the
    runner.js plumbing already calls it on every tier when the user
    saves a bend URL in the  bar

This brings the pyodide tier to parity with the asm (WAT) tier for
HTTP-mode bend. The emcc C tier still lacks the bind — wiring it
needs a new wasm primitive built via emcc; lands in the next commit.

Tested: bend!-call "(ping)" against the same gpu-worker endpoint
returns the same (ok pong) S-expression the asm tier sees.
2026-06-14 18:25:46 -04:00
..
asm wat: internal-define scoping (R7RS letrec*) + c-wasm gc gap documented 2026-06-14 17:54:33 -04:00
c wat asm tier: copying GC + c-wasm: enable bytecode TCO 2026-06-14 17:41:17 -04:00
fonts/chunkfive repl: /repl/ page with encrypted multi-tab sessions 2026-06-14 12:50:35 -04:00
python bend: wire bend!-call into the pyodide tier — playground python 2026-06-14 18:25:46 -04:00
crypto.js repl: /repl/ page with encrypted multi-tab sessions 2026-06-14 12:50:35 -04:00
index.html repl: single page scroller — header pinned, everything else flows 2026-06-14 13:21:02 -04:00
lumbda-logo-green.png repl: /repl/ page with encrypted multi-tab sessions 2026-06-14 12:50:35 -04:00
repl.css gc diagnostics: per-tier heap pressure surfaced in repl tabbar 2026-06-14 17:32:48 -04:00
repl.js gc diagnostics: per-tier heap pressure surfaced in repl tabbar 2026-06-14 17:32:48 -04:00
runner.js gc diagnostics: per-tier heap pressure surfaced in repl tabbar 2026-06-14 17:32:48 -04:00
style.css playground: status counter sits under run+cancel instead of far right 2026-06-14 16:27:05 -04:00
worker.mjs gc diagnostics: per-tier heap pressure surfaced in repl tabbar 2026-06-14 17:32:48 -04:00