Article URL: https://goeteia.dev Comments URL: https://news.ycombinator.com/item?id=48877314 Points: 23 # Comments: 12

Everything beside this is rendered by Goeteia.The Scheme below is compiled to WebAssembly in your browser and mounted live. No server compiles this — the page carries the whole compiler (goeteia.wasm, ~70 KB gzipped, cached after first load), and each Run recompiles the source above in ~15 ms. The compiler is written in the Scheme subset it compiles. The self-hosted build recompiles itself and the output is byte-identical — the fixpoint is checked in CI fashion on every change, and every test runs through both stages. Fixnums are unboxed i31refs, pairs and records are GC structs, eq? is one ref.eq. No shadow heap in JavaScript: the host supplies two byte-stream imports and nothing else. syntax-rules and procedural syntax-case with fenders, nested ellipses and datum->syntax, running in a compile-time interpreter with hygiene by renaming. Typed function references with a fast per-arity entry and a generic entry per closure — variadic procedures and apply are cheap, and every tail call is a return_call. A 100M-iteration loop runs in constant stack, in ~150ms. Escape continuations ride the Wasm exception-handling proposal: capture is O(1), the normal path costs one try block, and winders unwind inner-to-outer on the way out. (web sx) templates over fine-grained (web reactive) signals, an (web html) renderer, and a (web js) FFI that reaches straight into the host — this page is built with it.