Re-bootstrap compiler + render after IO registry and Step 5 changes

Compiler (lib/compiler.sx):
- Fix emit-op return type: 8 definition form cases (defstyle,
  defhandler, defpage, etc.) and the perform case now return nil
  explicitly via (do (emit-op em N) nil) instead of bare emit-op
  which transpiled to unit-returning OCaml.
- compile_match PREAMBLE: return Nil instead of unit (was ignore).
- Added init wrapper to PREAMBLE (needed by compile-module).
- All 41 compiler functions re-transpiled cleanly.

Render (bootstrap_render.py): re-transpiled, no changes.

Runtime: restored keyword_p predicate (needed by defio-parse-kwargs!
in the transpiled evaluator).

2608/2608 tests passing.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-03 21:26:20 +00:00
parent 5f72801901
commit 397d0f39c0
3 changed files with 21 additions and 15 deletions

View File

@@ -255,21 +255,21 @@
(= name "defmacro")
(compile-defmacro em args scope)
(= name "defstyle")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defhandler")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defpage")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defquery")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defaction")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defrelation")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "deftype")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defeffect")
(emit-op em 2)
(do (emit-op em 2) nil)
(= name "defisland")
(compile-defcomp em args scope)
(= name "quasiquote")
@@ -279,7 +279,11 @@
(= name "match")
(compile-match em args scope tail?)
(= name "perform")
(do (compile-expr em (first args) scope false) (emit-op em 112))
(let
()
(compile-expr em (first args) scope false)
(emit-op em 112)
nil)
:else (compile-call em head args scope tail?)))))))
;; --------------------------------------------------------------------------