Step 5.5 phases 1-2: merge sx_scope into sx_primitives, 4-child define support
Phase 1: Absorb sx_scope.ml (180 lines) into sx_primitives.ml. Scope stacks, cookies, and trace infrastructure now live alongside other primitives. All 20 scope primitive registrations moved. References updated in sx_server.ml and sx_browser.ml. sx_scope.ml deleted. Phase 2: Transpiler handles (define name :effects (...) (fn ...)) forms. ml-emit-define and ml-emit-define-body detect keyword at position 2 and use (last expr) instead. Unblocks transpilation of spec/render.sx and web/adapter-html.sx which use 4-child defines extensively. 2598/2598 tests passing. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -140,11 +140,10 @@ let io_batch_mode = ref false
|
||||
let io_queue : (int * string * value list) list ref = ref []
|
||||
let io_counter = ref 0
|
||||
|
||||
(* Scope stacks and cookies — all primitives registered in sx_scope.ml.
|
||||
We just reference the shared state for the IO bridge. *)
|
||||
(* Sx_scope accessed directly — library is unwrapped *)
|
||||
let _request_cookies = Sx_scope.request_cookies
|
||||
let _scope_stacks = Sx_scope.scope_stacks
|
||||
(* Scope stacks and cookies — primitives registered in sx_primitives.ml.
|
||||
We reference the shared state for the IO bridge. *)
|
||||
let _request_cookies = Sx_primitives._request_cookies
|
||||
let _scope_stacks = Sx_primitives._scope_stacks
|
||||
|
||||
(* ── App config ─────────────────────────────────────────────────────── *)
|
||||
(* Populated from __app-config dict after SX files load. *)
|
||||
|
||||
Reference in New Issue
Block a user