Files
rose-ash/shared/static/wasm/sx/compiler.sxbc
giles 2727577702 VM import suspension for browser lazy loading
Bytecode compiler now emits OP_PERFORM for (import ...) and compiles
(define-library ...) bodies. The VM stores the import request in
globals["__io_request"] and stops the run loop — no exceptions needed.
vm-execute-module returns a suspension dict, vm-resume-module continues.

Browser: sx_browser.ml detects suspension dicts from execute_module and
returns JS {suspended, op, request, resume} objects. The sx-platform.js
while loop handles cascading suspensions via handleImportSuspension.

13 modules load via .sxbc bytecode in 226ms (manifest-driven), both
islands hydrate, all handlers wired. 2650/2650 tests pass including
6 new vm-import-suspension tests.

Also: consolidated sx-platform-2.js → sx-platform.js, fixed
vm-execute-module missing code-from-value call, fixed bootstrap.py
protocol registry transpiler issues.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 17:11:12 +00:00

4 lines
33 KiB
Plaintext

(sxbc 1 "3af11645dc55adf4"
(code
:constants ("make-pool" {:upvalue-count 0 :arity 0 :constants ("entries" "primitive?" "mutable-list" "list" "index" "_count" 0) :bytecode (1 0 0 1 2 0 52 1 0 1 33 7 0 52 2 0 0 32 4 0 52 3 0 0 1 4 0 1 5 0 1 6 0 65 1 0 65 2 0 50)} "pool-add" {:upvalue-count 0 :arity 2 :constants ("Add a value to the constant pool, return its index. Deduplicates." "serialize" "get" "index" "has-key?" "_count" "dict-set!" "+" 1 "append!" "entries") :bytecode (1 0 0 5 16 1 52 1 0 1 17 2 16 0 1 3 0 52 2 0 2 17 3 16 3 16 2 52 4 0 2 33 11 0 16 3 16 2 52 2 0 2 32 59 0 16 3 1 5 0 52 2 0 2 17 4 16 3 16 2 16 4 52 6 0 3 5 16 3 1 5 0 16 4 1 8 0 52 7 0 2 52 6 0 3 5 16 0 1 10 0 52 2 0 2 16 1 52 9 0 2 5 16 4 50)} "make-scope" {:upvalue-count 0 :arity 1 :constants ("next-slot" 0 "upvalues" "list" "locals" "parent" "is-function") :bytecode (1 0 0 1 1 0 1 2 0 52 3 0 0 1 4 0 52 3 0 0 1 5 0 16 0 1 6 0 4 65 5 0 50)} "scope-define-local" {:upvalue-count 0 :arity 2 :constants ("Add a local variable, return its slot index.\n Idempotent: if name already has a slot, return it." "first" "filter" {:upvalue-count 1 :arity 1 :constants ("=" "get" "name") :bytecode (16 0 1 2 0 52 1 0 2 18 0 52 0 0 2 50)} "get" "locals" "slot" "next-slot" "append!" "mutable" "name" "dict-set!" "+" 1) :bytecode (1 0 0 5 51 3 0 1 1 16 0 1 5 0 52 4 0 2 52 2 0 2 52 1 0 1 17 2 16 2 33 12 0 16 2 1 6 0 52 4 0 2 32 63 0 16 0 1 7 0 52 4 0 2 17 3 16 0 1 5 0 52 4 0 2 1 9 0 4 1 6 0 16 3 1 10 0 16 1 65 3 0 52 8 0 2 5 16 0 1 7 0 16 3 1 13 0 52 12 0 2 52 11 0 3 5 16 3 50)} "scope-resolve" {:upvalue-count 0 :arity 2 :constants ("Resolve a variable name. Returns {:type \"local\"|\"upvalue\"|\"global\", :index N}.\n Upvalue captures only happen at function boundaries (is-function=true).\n Let scopes share the enclosing function's frame — their locals are\n accessed directly without upvalue indirection." "nil?" "index" "type" "global" "get" "locals" "some" {:upvalue-count 1 :arity 1 :constants ("=" "get" "name") :bytecode (16 0 1 2 0 52 1 0 2 18 0 52 0 0 2 50)} "first" "filter" "slot" "local" "upvalues" "uv-index" "upvalue" "parent" "scope-resolve" "=" "is-function" "len" "append!" "is-local" "name") :bytecode (1 0 0 5 16 0 52 1 0 1 33 17 0 1 2 0 16 1 1 3 0 1 4 0 65 2 0 32 60 1 16 0 1 6 0 52 5 0 2 17 2 51 8 0 1 1 16 2 52 7 0 2 17 3 16 3 33 41 0 51 8 0 1 1 16 2 52 10 0 2 52 9 0 1 17 4 1 2 0 16 4 1 11 0 52 5 0 2 1 3 0 1 12 0 65 2 0 32 246 0 16 0 1 13 0 52 5 0 2 17 4 51 8 0 1 1 16 4 52 7 0 2 17 5 16 5 33 41 0 51 8 0 1 1 16 4 52 10 0 2 52 9 0 1 17 6 1 2 0 16 6 1 14 0 52 5 0 2 1 3 0 1 15 0 65 2 0 32 176 0 16 0 1 16 0 52 5 0 2 17 6 16 6 52 1 0 1 33 17 0 1 2 0 16 1 1 3 0 1 4 0 65 2 0 32 139 0 20 17 0 16 6 16 1 48 2 17 7 16 7 1 3 0 52 5 0 2 1 4 0 52 18 0 2 33 5 0 16 7 32 104 0 16 0 1 19 0 52 5 0 2 33 90 0 16 0 1 13 0 52 5 0 2 52 20 0 1 17 8 16 0 1 13 0 52 5 0 2 1 2 0 16 7 1 2 0 52 5 0 2 1 22 0 16 7 1 3 0 52 5 0 2 1 12 0 52 18 0 2 1 14 0 16 8 1 23 0 16 1 65 4 0 52 21 0 2 5 1 2 0 16 8 1 3 0 1 15 0 65 2 0 32 2 0 16 7 50)} "make-emitter" {:upvalue-count 0 :arity 0 :constants ("pool" "make-pool" "bytecode" "primitive?" "mutable-list" "list") :bytecode (1 0 0 20 1 0 48 0 1 2 0 1 4 0 52 3 0 1 33 7 0 52 4 0 0 32 4 0 52 5 0 0 65 2 0 50)} "emit-byte" {:upvalue-count 0 :arity 2 :constants ("append!" "get" "bytecode") :bytecode (16 0 1 2 0 52 1 0 2 16 1 52 0 0 2 50)} "emit-u16" {:upvalue-count 0 :arity 2 :constants ("emit-byte" "mod" 256 "floor" "/") :bytecode (20 0 0 16 0 16 1 1 2 0 52 1 0 2 48 2 5 20 0 0 16 0 16 1 1 2 0 52 4 0 2 52 3 0 1 1 2 0 52 1 0 2 49 2 50)} "emit-i16" {:upvalue-count 0 :arity 2 :constants ("<" 0 "+" 65536 "emit-u16") :bytecode (16 1 1 1 0 52 0 0 2 33 12 0 16 1 1 3 0 52 2 0 2 32 2 0 16 1 17 2 20 4 0 16 0 16 2 49 2 50)} "emit-op" {:upvalue-count 0 :arity 2 :constants ("emit-byte") :bytecode (20 0 0 16 0 16 1 49 2 50)} "emit-const" {:upvalue-count 0 :arity 2 :constants ("pool-add" "get" "pool" "emit-op" 1 "emit-u16") :bytecode (20 0 0 16 0 1 2 0 52 1 0 2 16 1 48 2 17 2 20 3 0 16 0 1 4 0 48 2 5 20 5 0 16 0 16 2 49 2 50)} "current-offset" {:upvalue-count 0 :arity 1 :constants ("len" "get" "bytecode") :bytecode (16 0 1 2 0 52 1 0 2 52 0 0 1 50)} "patch-i16" {:upvalue-count 0 :arity 3 :constants ("Patch a previously emitted i16 at the given bytecode offset." "<" 0 "+" 65536 "get" "bytecode" "set-nth!" "mod" 256 1 "floor" "/") :bytecode (1 0 0 5 16 2 1 2 0 52 1 0 2 33 12 0 16 2 1 4 0 52 3 0 2 32 2 0 16 2 17 3 16 0 1 6 0 52 5 0 2 17 4 16 4 16 1 16 3 1 9 0 52 8 0 2 52 7 0 3 5 16 4 16 1 1 10 0 52 3 0 2 16 3 1 9 0 52 12 0 2 52 11 0 1 1 9 0 52 8 0 2 52 7 0 3 50)} "compile-expr" {:upvalue-count 0 :arity 4 :constants ("Compile an expression. tail? indicates tail position for TCO." "nil?" "emit-op" 2 "=" "type-of" "number" "emit-const" "string" "boolean" 3 4 "keyword" "keyword-name" "symbol" "compile-symbol" "symbol-name" "list" "empty?" 64 "emit-u16" 0 "compile-list" "dict" "compile-dict") :bytecode (1 0 0 5 16 1 52 1 0 1 33 13 0 20 2 0 16 0 1 3 0 49 2 32 10 1 16 1 52 5 0 1 1 6 0 52 4 0 2 33 12 0 20 7 0 16 0 16 1 49 2 32 238 0 16 1 52 5 0 1 1 8 0 52 4 0 2 33 12 0 20 7 0 16 0 16 1 49 2 32 210 0 16 1 52 5 0 1 1 9 0 52 4 0 2 33 24 0 20 2 0 16 0 16 1 33 6 0 1 10 0 32 3 0 1 11 0 49 2 32 170 0 16 1 52 5 0 1 1 12 0 52 4 0 2 33 16 0 20 7 0 16 0 16 1 52 13 0 1 49 2 32 138 0 16 1 52 5 0 1 1 14 0 52 4 0 2 33 18 0 20 15 0 16 0 16 1 52 16 0 1 16 2 49 3 32 104 0 16 1 52 5 0 1 1 17 0 52 4 0 2 33 49 0 16 1 52 18 0 1 33 24 0 20 2 0 16 0 1 19 0 48 2 5 20 20 0 16 0 1 21 0 49 2 32 13 0 20 22 0 16 0 16 1 16 2 16 3 49 4 32 39 0 16 1 52 5 0 1 1 23 0 52 4 0 2 33 14 0 20 24 0 16 0 16 1 16 2 49 3 32 9 0 20 7 0 16 0 16 1 49 2 50)} "compile-symbol" {:upvalue-count 0 :arity 3 :constants ("scope-resolve" "=" "get" "type" "local" "emit-op" 16 "emit-byte" "index" "upvalue" 18 "pool-add" "pool" 20 "emit-u16") :bytecode (20 0 0 16 2 16 1 48 2 17 3 16 3 1 3 0 52 2 0 2 1 4 0 52 1 0 2 33 30 0 20 5 0 16 0 1 6 0 48 2 5 20 7 0 16 0 16 3 1 8 0 52 2 0 2 49 2 32 87 0 16 3 1 3 0 52 2 0 2 1 9 0 52 1 0 2 33 30 0 20 5 0 16 0 1 10 0 48 2 5 20 7 0 16 0 16 3 1 8 0 52 2 0 2 49 2 32 38 0 20 11 0 16 0 1 12 0 52 2 0 2 16 1 48 2 17 4 20 5 0 16 0 1 13 0 48 2 5 20 14 0 16 0 16 4 49 2 50)} "compile-dict" {:upvalue-count 0 :arity 3 :constants ("keys" "len" "for-each" {:upvalue-count 3 :arity 1 :constants ("emit-const" "compile-expr" "get") :bytecode (20 0 0 18 0 16 0 48 2 5 20 1 0 18 0 18 1 16 0 52 2 0 2 18 2 4 49 4 50)} "emit-op" 65 "emit-u16") :bytecode (16 1 52 0 0 1 17 3 16 3 52 1 0 1 17 4 51 3 0 1 0 1 1 1 2 16 3 52 2 0 2 5 20 4 0 16 0 1 5 0 48 2 5 20 6 0 16 0 16 4 49 2 50)} "compile-list" {:upvalue-count 0 :arity 4 :constants ("first" "rest" "not" "=" "type-of" "symbol" "compile-call" "symbol-name" "if" "compile-if" "when" "compile-when" "and" "compile-and" "or" "compile-or" "let" "compile-let" "let*" "begin" "compile-begin" "do" "lambda" "compile-lambda" "fn" "define" "compile-define" "set!" "compile-set" "quote" "compile-quote" "cond" "compile-cond" "case" "compile-case" "->" "compile-thread" "defcomp" "compile-defcomp" "defisland" "defmacro" "compile-defmacro" "defstyle" "emit-op" 2 "defhandler" "defpage" "defquery" "defaction" "defrelation" "deftype" "defeffect" "quasiquote" "compile-quasiquote" "letrec" "compile-letrec" "match" "compile-match" "perform" "compile-expr" 112 "import" "emit-const" "library" "op" "define-library" "filter" {:upvalue-count 0 :arity 1 :constants ("list?" "not" "empty?" "=" "first" begin) :bytecode (16 0 52 0 0 1 6 33 29 0 5 16 0 52 2 0 1 52 1 0 1 6 33 14 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 50)} "empty?" "for-each" {:upvalue-count 2 :arity 1 :constants ("compile-expr" "emit-op" 5) :bytecode (20 0 0 18 0 16 0 18 1 4 48 4 5 20 1 0 18 0 1 2 0 49 2 50)} "init" "last") :bytecode (16 1 52 0 0 1 17 4 16 1 52 1 0 1 17 5 16 4 52 4 0 1 1 5 0 52 3 0 2 52 2 0 1 33 18 0 20 6 0 16 0 16 4 16 5 16 2 16 3 49 5 32 27 4 16 4 52 7 0 1 17 6 16 6 1 8 0 52 3 0 2 33 16 0 20 9 0 16 0 16 5 16 2 16 3 49 4 32 247 3 16 6 1 10 0 52 3 0 2 33 16 0 20 11 0 16 0 16 5 16 2 16 3 49 4 32 219 3 16 6 1 12 0 52 3 0 2 33 16 0 20 13 0 16 0 16 5 16 2 16 3 49 4 32 191 3 16 6 1 14 0 52 3 0 2 33 16 0 20 15 0 16 0 16 5 16 2 16 3 49 4 32 163 3 16 6 1 16 0 52 3 0 2 33 16 0 20 17 0 16 0 16 5 16 2 16 3 49 4 32 135 3 16 6 1 18 0 52 3 0 2 33 16 0 20 17 0 16 0 16 5 16 2 16 3 49 4 32 107 3 16 6 1 19 0 52 3 0 2 33 16 0 20 20 0 16 0 16 5 16 2 16 3 49 4 32 79 3 16 6 1 21 0 52 3 0 2 33 16 0 20 20 0 16 0 16 5 16 2 16 3 49 4 32 51 3 16 6 1 22 0 52 3 0 2 33 14 0 20 23 0 16 0 16 5 16 2 49 3 32 25 3 16 6 1 24 0 52 3 0 2 33 14 0 20 23 0 16 0 16 5 16 2 49 3 32 255 2 16 6 1 25 0 52 3 0 2 33 14 0 20 26 0 16 0 16 5 16 2 49 3 32 229 2 16 6 1 27 0 52 3 0 2 33 14 0 20 28 0 16 0 16 5 16 2 49 3 32 203 2 16 6 1 29 0 52 3 0 2 33 12 0 20 30 0 16 0 16 5 49 2 32 179 2 16 6 1 31 0 52 3 0 2 33 16 0 20 32 0 16 0 16 5 16 2 16 3 49 4 32 151 2 16 6 1 33 0 52 3 0 2 33 16 0 20 34 0 16 0 16 5 16 2 16 3 49 4 32 123 2 16 6 1 35 0 52 3 0 2 33 16 0 20 36 0 16 0 16 5 16 2 16 3 49 4 32 95 2 16 6 1 37 0 52 3 0 2 33 14 0 20 38 0 16 0 16 5 16 2 49 3 32 69 2 16 6 1 39 0 52 3 0 2 33 14 0 20 38 0 16 0 16 5 16 2 49 3 32 43 2 16 6 1 40 0 52 3 0 2 33 14 0 20 41 0 16 0 16 5 16 2 49 3 32 17 2 16 6 1 42 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 246 1 16 6 1 45 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 219 1 16 6 1 46 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 192 1 16 6 1 47 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 165 1 16 6 1 48 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 138 1 16 6 1 49 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 111 1 16 6 1 50 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 84 1 16 6 1 51 0 52 3 0 2 33 15 0 20 43 0 16 0 1 44 0 48 2 5 2 32 57 1 16 6 1 39 0 52 3 0 2 33 14 0 20 38 0 16 0 16 5 16 2 49 3 32 31 1 16 6 1 52 0 52 3 0 2 33 18 0 20 53 0 16 0 16 5 52 0 0 1 16 2 49 3 32 1 1 16 6 1 54 0 52 3 0 2 33 16 0 20 55 0 16 0 16 5 16 2 16 3 49 4 32 229 0 16 6 1 56 0 52 3 0 2 33 16 0 20 57 0 16 0 16 5 16 2 16 3 49 4 32 201 0 16 6 1 58 0 52 3 0 2 33 32 0 20 59 0 16 0 16 5 52 0 0 1 16 2 4 48 4 5 20 43 0 16 0 1 60 0 48 2 5 2 32 157 0 16 6 1 61 0 52 3 0 2 33 41 0 20 62 0 16 0 1 63 0 16 5 52 0 0 1 1 64 0 1 61 0 65 2 0 48 2 5 20 43 0 16 0 1 60 0 48 2 5 2 32 104 0 16 6 1 65 0 52 3 0 2 33 77 0 51 67 0 16 5 52 66 0 2 17 7 16 7 52 68 0 1 52 2 0 1 33 49 0 16 7 52 0 0 1 52 1 0 1 17 8 51 70 0 1 0 1 2 16 8 52 71 0 1 52 69 0 2 5 20 59 0 16 0 16 8 52 72 0 1 16 2 4 49 4 32 1 0 2 32 15 0 20 6 0 16 0 16 4 16 5 16 2 16 3 49 5 50)} "compile-if" {:upvalue-count 0 :arity 4 :constants ("first" "nth" 1 ">" "len" 2 "compile-expr" "emit-op" 33 "current-offset" "emit-i16" 0 32 "patch-i16" "-" "+" "nil?") :bytecode (16 1 52 0 0 1 17 4 16 1 1 2 0 52 1 0 2 17 5 16 1 52 4 0 1 1 5 0 52 3 0 2 33 12 0 16 1 1 5 0 52 1 0 2 32 1 0 2 17 6 20 6 0 16 0 16 4 16 2 4 48 4 5 20 7 0 16 0 1 8 0 48 2 5 20 9 0 16 0 48 1 17 7 20 10 0 16 0 1 11 0 48 2 5 20 6 0 16 0 16 5 16 2 16 3 48 4 5 20 7 0 16 0 1 12 0 48 2 5 20 9 0 16 0 48 1 17 8 20 10 0 16 0 1 11 0 48 2 5 20 13 0 16 0 16 7 20 9 0 16 0 48 1 16 7 1 5 0 52 15 0 2 52 14 0 2 48 3 5 16 6 52 16 0 1 33 13 0 20 7 0 16 0 1 5 0 48 2 32 13 0 20 6 0 16 0 16 6 16 2 16 3 48 4 5 20 13 0 16 0 16 8 20 9 0 16 0 48 1 16 8 1 5 0 52 15 0 2 52 14 0 2 49 3 50)} "compile-when" {:upvalue-count 0 :arity 4 :constants ("first" "rest" "compile-expr" "emit-op" 33 "current-offset" "emit-i16" 0 "compile-begin" 32 "patch-i16" "-" "+" 2) :bytecode (16 1 52 0 0 1 17 4 16 1 52 1 0 1 17 5 20 2 0 16 0 16 4 16 2 4 48 4 5 20 3 0 16 0 1 4 0 48 2 5 20 5 0 16 0 48 1 17 6 20 6 0 16 0 1 7 0 48 2 5 20 8 0 16 0 16 5 16 2 16 3 48 4 5 20 3 0 16 0 1 9 0 48 2 5 20 5 0 16 0 48 1 17 7 20 6 0 16 0 1 7 0 48 2 5 20 10 0 16 0 16 6 20 5 0 16 0 48 1 16 6 1 13 0 52 12 0 2 52 11 0 2 48 3 5 20 3 0 16 0 1 13 0 48 2 5 20 10 0 16 0 16 7 20 5 0 16 0 48 1 16 7 1 13 0 52 12 0 2 52 11 0 2 49 3 50)} "compile-and" {:upvalue-count 0 :arity 4 :constants ("empty?" "emit-op" 3 "=" "len" 1 "compile-expr" "first" 6 33 "current-offset" "emit-i16" 0 5 "compile-and" "rest" "patch-i16" "-" "+" 2) :bytecode (16 1 52 0 0 1 33 13 0 20 1 0 16 0 1 2 0 49 2 32 153 0 16 1 52 4 0 1 1 5 0 52 3 0 2 33 20 0 20 6 0 16 0 16 1 52 7 0 1 16 2 16 3 49 4 32 117 0 20 6 0 16 0 16 1 52 7 0 1 16 2 4 48 4 5 20 1 0 16 0 1 8 0 48 2 5 20 1 0 16 0 1 9 0 48 2 5 20 10 0 16 0 48 1 17 4 20 11 0 16 0 1 12 0 48 2 5 20 1 0 16 0 1 13 0 48 2 5 20 14 0 16 0 16 1 52 15 0 1 16 2 16 3 48 4 5 20 16 0 16 0 16 4 20 10 0 16 0 48 1 16 4 1 19 0 52 18 0 2 52 17 0 2 49 3 50)} "compile-or" {:upvalue-count 0 :arity 4 :constants ("empty?" "emit-op" 4 "=" "len" 1 "compile-expr" "first" 6 34 "current-offset" "emit-i16" 0 5 "compile-or" "rest" "patch-i16" "-" "+" 2) :bytecode (16 1 52 0 0 1 33 13 0 20 1 0 16 0 1 2 0 49 2 32 153 0 16 1 52 4 0 1 1 5 0 52 3 0 2 33 20 0 20 6 0 16 0 16 1 52 7 0 1 16 2 16 3 49 4 32 117 0 20 6 0 16 0 16 1 52 7 0 1 16 2 4 48 4 5 20 1 0 16 0 1 8 0 48 2 5 20 1 0 16 0 1 9 0 48 2 5 20 10 0 16 0 48 1 17 4 20 11 0 16 0 1 12 0 48 2 5 20 1 0 16 0 1 13 0 48 2 5 20 14 0 16 0 16 1 52 15 0 1 16 2 16 3 48 4 5 20 16 0 16 0 16 4 20 10 0 16 0 48 1 16 4 1 19 0 52 18 0 2 52 17 0 2 49 3 50)} "compile-begin" {:upvalue-count 0 :arity 4 :constants ("not" "empty?" "nil?" "get" "parent" "for-each" {:upvalue-count 1 :arity 1 :constants ("=" "type-of" "list" ">=" "len" 2 "first" "symbol" "symbol-name" "define" "nth" 1 "scope-define-local") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 58 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 40 0 5 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 6 33 18 0 5 16 0 52 6 0 1 52 8 0 1 1 9 0 52 0 0 2 33 52 0 16 0 1 11 0 52 10 0 2 17 1 16 1 52 1 0 1 1 7 0 52 0 0 2 33 9 0 16 1 52 8 0 1 32 2 0 16 1 17 2 20 12 0 18 0 16 2 49 2 32 1 0 2 50)} "emit-op" 2 "=" "len" 1 "compile-expr" "first" 5 "compile-begin" "rest") :bytecode (16 1 52 1 0 1 52 0 0 1 6 33 18 0 5 16 2 1 4 0 52 3 0 2 52 2 0 1 52 0 0 1 33 14 0 51 6 0 1 2 16 1 52 5 0 2 32 1 0 2 5 16 1 52 1 0 1 33 13 0 20 7 0 16 0 1 8 0 49 2 32 81 0 16 1 52 10 0 1 1 11 0 52 9 0 2 33 20 0 20 12 0 16 0 16 1 52 13 0 1 16 2 16 3 49 4 32 45 0 20 12 0 16 0 16 1 52 13 0 1 16 2 4 48 4 5 20 7 0 16 0 1 14 0 48 2 5 20 15 0 16 0 16 1 52 16 0 1 16 2 16 3 49 4 50)} "compile-let" {:upvalue-count 0 :arity 4 :constants ("=" "type-of" "first" "symbol" "symbol-name" "nth" 1 "slice" 2 "list" "for-each" {:upvalue-count 2 :arity 1 :constants ("append!" "=" "type-of" "first" "symbol" "make-symbol" "nth" 1) :bytecode (18 0 16 0 52 3 0 1 52 2 0 1 1 4 0 52 1 0 2 33 9 0 16 0 52 3 0 1 32 10 0 16 0 52 3 0 1 52 5 0 1 52 0 0 2 5 18 1 16 0 1 7 0 52 6 0 2 52 0 0 2 50)} "concat" "make-symbol" "fn" "cons" "compile-letrec" "rest" "make-scope" "dict-set!" "next-slot" "get" {:upvalue-count 2 :arity 1 :constants ("=" "type-of" "first" "symbol" "symbol-name" "nth" 1 "scope-define-local" "compile-expr" "emit-op" 17 "emit-byte") :bytecode (16 0 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 13 0 16 0 52 2 0 1 52 4 0 1 32 6 0 16 0 52 2 0 1 17 1 16 0 1 6 0 52 5 0 2 17 2 20 7 0 18 0 16 1 48 2 17 3 20 8 0 18 1 16 2 18 0 4 48 4 5 20 9 0 18 1 1 10 0 48 2 5 20 11 0 18 1 16 3 49 2 50)} "compile-begin") :bytecode (16 1 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 135 0 16 1 52 2 0 1 52 4 0 1 17 4 16 1 1 6 0 52 5 0 2 17 5 16 1 1 8 0 52 7 0 2 17 6 52 9 0 0 17 7 52 9 0 0 17 8 51 11 0 1 7 1 8 16 5 52 10 0 2 5 1 14 0 52 13 0 1 16 7 52 9 0 2 16 6 52 12 0 2 17 9 16 4 52 13 0 1 16 9 52 9 0 2 52 9 0 1 17 10 16 4 52 13 0 1 16 8 52 15 0 2 17 11 20 16 0 16 0 16 10 16 11 52 9 0 2 16 2 16 3 49 4 32 71 0 16 1 52 2 0 1 17 4 16 1 52 17 0 1 17 5 20 18 0 16 2 48 1 17 6 16 6 1 20 0 16 2 1 20 0 52 21 0 2 52 19 0 3 5 51 22 0 1 6 1 0 16 4 52 10 0 2 5 20 23 0 16 0 16 5 16 6 16 3 49 4 50)} "compile-letrec" {:upvalue-count 0 :arity 4 :constants ("Compile letrec: all names visible during value compilation.\n 1. Define all local slots (initialized to nil).\n 2. Compile each value and assign — names are already in scope\n so mutually recursive functions can reference each other." "first" "rest" "make-scope" "dict-set!" "next-slot" "get" "map" {:upvalue-count 2 :arity 1 :constants ("=" "type-of" "first" "symbol" "symbol-name" "scope-define-local" "emit-op" 2 17 "emit-byte") :bytecode (16 0 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 13 0 16 0 52 2 0 1 52 4 0 1 32 6 0 16 0 52 2 0 1 17 1 20 5 0 18 0 16 1 48 2 17 2 20 6 0 18 1 1 7 0 48 2 5 20 6 0 18 1 1 8 0 48 2 5 20 9 0 18 1 16 2 48 2 5 16 2 50)} "for-each" {:upvalue-count 2 :arity 1 :constants ("first" "nth" 1 "compile-expr" "emit-op" 17 "emit-byte") :bytecode (16 0 52 0 0 1 17 1 16 0 1 2 0 52 1 0 2 17 2 20 3 0 18 0 16 1 1 2 0 52 1 0 2 18 1 4 48 4 5 20 4 0 18 0 1 5 0 48 2 5 20 6 0 18 0 16 2 49 2 50)} {:upvalue-count 2 :arity 1 :constants ("list" "nth") :bytecode (18 0 16 0 52 1 0 2 18 1 16 0 52 1 0 2 52 0 0 2 50)} "range" 0 "len" "compile-begin") :bytecode (1 0 0 5 16 1 52 1 0 1 17 4 16 1 52 2 0 1 17 5 20 3 0 16 2 48 1 17 6 16 6 1 5 0 16 2 1 5 0 52 6 0 2 52 4 0 3 5 51 8 0 1 6 1 0 16 4 52 7 0 2 17 7 51 10 0 1 0 1 6 51 11 0 1 4 1 7 1 13 0 16 4 52 14 0 1 52 12 0 2 52 7 0 2 52 9 0 2 5 20 15 0 16 0 16 5 16 6 16 3 49 4 50)} "compile-lambda" {:upvalue-count 0 :arity 3 :constants ("first" "rest" "make-scope" "make-emitter" "dict-set!" "is-function" "for-each" {:upvalue-count 1 :arity 1 :constants ("=" "type-of" "symbol" "symbol-name" "list?" "not" "empty?" "first" "&key" "&rest" "scope-define-local") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 9 0 16 0 52 3 0 1 32 61 0 16 0 52 4 0 1 6 33 33 0 5 16 0 52 6 0 1 52 5 0 1 6 33 18 0 5 16 0 52 7 0 1 52 1 0 1 1 2 0 52 0 0 2 33 13 0 16 0 52 7 0 1 52 3 0 1 32 2 0 16 0 17 1 16 1 1 8 0 52 0 0 2 52 5 0 1 6 33 14 0 5 16 1 1 9 0 52 0 0 2 52 5 0 1 33 12 0 20 10 0 18 0 16 1 49 2 32 1 0 2 50)} "compile-begin" "emit-op" 50 "get" "upvalues" "upvalue-count" "len" "arity" "locals" "constants" "pool" "entries" "bytecode" "pool-add" 51 "emit-u16" {:upvalue-count 1 :arity 1 :constants ("emit-byte" "get" "is-local" 1 0 "index") :bytecode (20 0 0 18 0 16 0 1 2 0 52 1 0 2 33 6 0 1 3 0 32 3 0 1 4 0 48 2 5 20 0 0 18 0 16 0 1 5 0 52 1 0 2 49 2 50)}) :bytecode (16 1 52 0 0 1 17 3 16 1 52 1 0 1 17 4 20 2 0 16 2 48 1 17 5 20 3 0 48 0 17 6 16 5 1 5 0 3 52 4 0 3 5 51 7 0 1 5 16 3 52 6 0 2 5 20 8 0 16 6 16 4 16 5 3 48 4 5 20 9 0 16 6 1 10 0 48 2 5 16 5 1 12 0 52 11 0 2 17 7 1 13 0 16 7 52 14 0 1 1 15 0 16 5 1 16 0 52 11 0 2 52 14 0 1 1 17 0 16 6 1 18 0 52 11 0 2 1 19 0 52 11 0 2 1 20 0 16 6 1 20 0 52 11 0 2 65 4 0 17 8 20 21 0 16 0 1 18 0 52 11 0 2 16 8 48 2 17 9 20 9 0 16 0 1 22 0 48 2 5 20 23 0 16 0 16 9 48 2 5 51 24 0 1 0 16 7 52 6 0 2 50)} "compile-define" {:upvalue-count 0 :arity 3 :constants ("first" "=" "type-of" "symbol" "symbol-name" "rest" "not" "empty?" "keyword" {:upvalue-count 1 :arity 1 :constants ("empty?" "=" "type-of" "first" "keyword" "rest") :bytecode (16 0 52 0 0 1 33 4 0 2 32 43 0 16 0 52 3 0 1 52 2 0 1 1 4 0 52 1 0 2 33 17 0 18 0 16 0 52 5 0 1 52 5 0 1 49 1 32 6 0 16 0 52 3 0 1 50)} "nil?" "get" "parent" "scope-define-local" "compile-expr" "emit-op" 17 "emit-byte" "pool-add" "pool" 128 "emit-u16") :bytecode (16 1 52 0 0 1 17 3 16 3 52 2 0 1 1 3 0 52 1 0 2 33 9 0 16 3 52 4 0 1 32 2 0 16 3 17 4 16 1 52 5 0 1 17 6 16 6 52 7 0 1 52 6 0 1 6 33 18 0 5 16 6 52 0 0 1 52 2 0 1 1 8 0 52 1 0 2 33 16 0 51 9 0 1 7 17 7 16 7 16 6 48 1 32 6 0 16 6 52 0 0 1 17 5 16 2 1 12 0 52 11 0 2 52 10 0 1 52 6 0 1 33 47 0 20 13 0 16 2 16 4 48 2 17 6 20 14 0 16 0 16 5 16 2 4 48 4 5 20 15 0 16 0 1 16 0 48 2 5 20 17 0 16 0 16 6 49 2 32 51 0 20 18 0 16 0 1 19 0 52 11 0 2 16 4 48 2 17 6 20 14 0 16 0 16 5 16 2 4 48 4 5 20 15 0 16 0 1 20 0 48 2 5 20 21 0 16 0 16 6 49 2 50)} "compile-set" {:upvalue-count 0 :arity 3 :constants ("=" "type-of" "first" "symbol" "symbol-name" "nth" 1 "scope-resolve" "compile-expr" "get" "type" "local" "emit-op" 17 "emit-byte" "index" "upvalue" 19 "pool-add" "pool" 21 "emit-u16") :bytecode (16 1 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 13 0 16 1 52 2 0 1 52 4 0 1 32 6 0 16 1 52 2 0 1 17 3 16 1 1 6 0 52 5 0 2 17 4 20 7 0 16 2 16 3 48 2 17 5 20 8 0 16 0 16 4 16 2 4 48 4 5 16 5 1 10 0 52 9 0 2 1 11 0 52 0 0 2 33 30 0 20 12 0 16 0 1 13 0 48 2 5 20 14 0 16 0 16 5 1 15 0 52 9 0 2 49 2 32 87 0 16 5 1 10 0 52 9 0 2 1 16 0 52 0 0 2 33 30 0 20 12 0 16 0 1 17 0 48 2 5 20 14 0 16 0 16 5 1 15 0 52 9 0 2 49 2 32 38 0 20 18 0 16 0 1 19 0 52 9 0 2 16 3 48 2 17 6 20 12 0 16 0 1 20 0 48 2 5 20 21 0 16 0 16 6 49 2 50)} "compile-quote" {:upvalue-count 0 :arity 2 :constants ("empty?" "emit-op" 2 "emit-const" "first") :bytecode (16 1 52 0 0 1 33 13 0 20 1 0 16 0 1 2 0 49 2 32 13 0 20 3 0 16 0 16 1 52 4 0 1 49 2 50)} "compile-cond" {:upvalue-count 0 :arity 4 :constants ("Compile (cond test1 body1 test2 body2 ... :else fallback)." "<" "len" 2 "emit-op" "first" "nth" 1 ">" "slice" "list" "=" "type-of" "keyword" "keyword-name" "else" "compile-expr" 33 "current-offset" "emit-i16" 0 32 "patch-i16" "-" "+" "compile-cond") :bytecode (1 0 0 5 16 1 52 2 0 1 1 3 0 52 1 0 2 33 13 0 20 4 0 16 0 1 3 0 49 2 32 21 1 16 1 52 5 0 1 17 4 16 1 1 7 0 52 6 0 2 17 5 16 1 52 2 0 1 1 3 0 52 8 0 2 33 12 0 16 1 1 3 0 52 9 0 2 32 4 0 52 10 0 0 17 6 16 4 52 12 0 1 1 13 0 52 11 0 2 6 33 14 0 5 16 4 52 14 0 1 1 15 0 52 11 0 2 6 34 8 0 5 16 4 3 52 11 0 2 33 16 0 20 16 0 16 0 16 5 16 2 16 3 49 4 32 162 0 20 16 0 16 0 16 4 16 2 4 48 4 5 20 4 0 16 0 1 17 0 48 2 5 20 18 0 16 0 48 1 17 7 20 19 0 16 0 1 20 0 48 2 5 20 16 0 16 0 16 5 16 2 16 3 48 4 5 20 4 0 16 0 1 21 0 48 2 5 20 18 0 16 0 48 1 17 8 20 19 0 16 0 1 20 0 48 2 5 20 22 0 16 0 16 7 20 18 0 16 0 48 1 16 7 1 3 0 52 24 0 2 52 23 0 2 48 3 5 20 25 0 16 0 16 6 16 2 16 3 48 4 5 20 22 0 16 0 16 8 20 18 0 16 0 48 1 16 8 1 3 0 52 24 0 2 52 23 0 2 49 3 50)} "compile-case" {:upvalue-count 0 :arity 4 :constants ("Compile (case expr val1 body1 val2 body2 ... :else fallback)." "compile-expr" "first" "rest" "compile-case-clauses") :bytecode (1 0 0 5 20 1 0 16 0 16 1 52 2 0 1 16 2 4 48 4 5 16 1 52 3 0 1 17 4 20 4 0 16 0 16 4 16 2 16 3 49 4 50)} "compile-case-clauses" {:upvalue-count 0 :arity 4 :constants ("<" "len" 2 "emit-op" 5 "first" "nth" 1 ">" "slice" "list" "=" "type-of" "keyword" "keyword-name" "else" "compile-expr" 6 "pool-add" "get" "pool" 52 "emit-u16" "emit-byte" 33 "current-offset" "emit-i16" 0 32 "patch-i16" "-" "+" "compile-case-clauses") :bytecode (16 1 52 1 0 1 1 2 0 52 0 0 2 33 24 0 20 3 0 16 0 1 4 0 48 2 5 20 3 0 16 0 1 2 0 49 2 32 105 1 16 1 52 5 0 1 17 4 16 1 1 7 0 52 6 0 2 17 5 16 1 52 1 0 1 1 2 0 52 8 0 2 33 12 0 16 1 1 2 0 52 9 0 2 32 4 0 52 10 0 0 17 6 16 4 52 12 0 1 1 13 0 52 11 0 2 6 33 14 0 5 16 4 52 14 0 1 1 15 0 52 11 0 2 6 34 8 0 5 16 4 3 52 11 0 2 33 27 0 20 3 0 16 0 1 4 0 48 2 5 20 16 0 16 0 16 5 16 2 16 3 49 4 32 235 0 20 3 0 16 0 1 17 0 48 2 5 20 16 0 16 0 16 4 16 2 4 48 4 5 20 18 0 16 0 1 20 0 52 19 0 2 1 11 0 48 2 17 7 20 3 0 16 0 1 21 0 48 2 5 20 22 0 16 0 16 7 48 2 5 20 23 0 16 0 1 2 0 48 2 5 20 3 0 16 0 1 24 0 48 2 5 20 25 0 16 0 48 1 17 7 20 26 0 16 0 1 27 0 48 2 5 20 3 0 16 0 1 4 0 48 2 5 20 16 0 16 0 16 5 16 2 16 3 48 4 5 20 3 0 16 0 1 28 0 48 2 5 20 25 0 16 0 48 1 17 8 20 26 0 16 0 1 27 0 48 2 5 20 29 0 16 0 16 7 20 25 0 16 0 48 1 16 7 1 2 0 52 31 0 2 52 30 0 2 48 3 5 20 32 0 16 0 16 6 16 2 16 3 48 4 5 20 29 0 16 0 16 8 20 25 0 16 0 48 1 16 8 1 2 0 52 31 0 2 52 30 0 2 49 3 50)} "compile-match" {:upvalue-count 0 :arity 4 :constants ("compile-expr" "first" {:upvalue-count 4 :arity 1 :constants ("empty?" "emit-op" 5 "pool-add" "get" "pool" "match: no clause matched" 1 "emit-u16" 52 "error" "emit-byte" "first" "nth" "rest" "=" "type-of" "symbol" "symbol-name" "_" "compile-expr" "not" "true" "false" "nil" "scope-add" 13 "scope-index" "list?" "len" 2 "quote" 6 "make-symbol" 33 "current-offset" "emit-i16" 0 32 "patch-i16" "-" "+") :bytecode (16 0 52 0 0 1 33 100 0 20 1 0 18 0 1 2 0 48 2 5 20 3 0 18 0 1 5 0 52 4 0 2 1 6 0 48 2 17 1 20 1 0 18 0 1 7 0 48 2 5 20 8 0 18 0 16 1 48 2 5 20 1 0 18 0 1 9 0 48 2 5 20 8 0 18 0 20 3 0 18 0 1 5 0 52 4 0 2 1 10 0 48 2 48 2 5 20 11 0 18 0 1 7 0 49 2 32 69 3 16 0 52 12 0 1 17 1 16 1 52 12 0 1 17 2 16 1 1 7 0 52 13 0 2 17 3 16 0 52 14 0 1 17 4 16 2 52 16 0 1 1 17 0 52 15 0 2 6 33 14 0 5 16 2 52 18 0 1 1 19 0 52 15 0 2 33 27 0 20 1 0 18 0 1 2 0 48 2 5 20 20 0 18 0 16 3 18 1 18 2 49 4 32 229 2 16 2 52 16 0 1 1 17 0 52 15 0 2 6 33 62 0 5 16 2 52 18 0 1 1 22 0 52 15 0 2 52 21 0 1 6 33 40 0 5 16 2 52 18 0 1 1 23 0 52 15 0 2 52 21 0 1 6 33 18 0 5 16 2 52 18 0 1 1 24 0 52 15 0 2 52 21 0 1 33 63 0 16 2 52 18 0 1 17 5 20 25 0 18 1 16 5 48 2 17 6 20 1 0 18 0 1 26 0 48 2 5 20 11 0 18 0 20 27 0 16 6 16 5 48 2 48 2 5 20 20 0 18 0 16 3 16 6 18 2 49 4 32 84 2 16 2 52 28 0 1 6 33 83 0 5 16 2 52 29 0 1 1 30 0 52 15 0 2 6 33 65 0 5 16 2 52 12 0 1 52 16 0 1 1 17 0 52 15 0 2 6 33 43 0 5 16 2 52 12 0 1 52 18 0 1 1 31 0 52 15 0 2 6 33 21 0 5 16 2 1 7 0 52 13 0 2 52 16 0 1 1 17 0 52 15 0 2 33 16 1 20 1 0 18 0 1 32 0 48 2 5 20 3 0 18 0 1 5 0 52 4 0 2 16 2 1 7 0 52 13 0 2 52 18 0 1 52 33 0 1 48 2 17 5 20 1 0 18 0 1 7 0 48 2 5 20 8 0 18 0 16 5 48 2 5 20 3 0 18 0 1 5 0 52 4 0 2 1 15 0 48 2 17 5 20 1 0 18 0 1 9 0 48 2 5 20 8 0 18 0 16 5 48 2 5 20 11 0 18 0 1 30 0 48 2 5 20 1 0 18 0 1 34 0 48 2 5 20 35 0 18 0 48 1 17 5 20 36 0 18 0 1 37 0 48 2 5 20 1 0 18 0 1 2 0 48 2 5 20 20 0 18 0 16 3 18 1 18 2 48 4 5 20 1 0 18 0 1 38 0 48 2 5 20 35 0 18 0 48 1 17 6 20 36 0 18 0 1 37 0 48 2 5 20 39 0 18 0 16 5 20 35 0 18 0 48 1 16 5 1 30 0 52 41 0 2 52 40 0 2 48 3 5 18 3 16 4 48 1 5 20 39 0 18 0 16 6 20 35 0 18 0 48 1 16 6 1 30 0 52 41 0 2 52 40 0 2 49 3 32 228 0 20 1 0 18 0 1 32 0 48 2 5 20 20 0 18 0 16 2 18 1 4 48 4 5 20 3 0 18 0 1 5 0 52 4 0 2 1 15 0 48 2 17 5 20 1 0 18 0 1 9 0 48 2 5 20 8 0 18 0 16 5 48 2 5 20 11 0 18 0 1 30 0 48 2 5 20 1 0 18 0 1 34 0 48 2 5 20 35 0 18 0 48 1 17 5 20 36 0 18 0 1 37 0 48 2 5 20 1 0 18 0 1 2 0 48 2 5 20 20 0 18 0 16 3 18 1 18 2 48 4 5 20 1 0 18 0 1 38 0 48 2 5 20 35 0 18 0 48 1 17 6 20 36 0 18 0 1 37 0 48 2 5 20 39 0 18 0 16 5 20 35 0 18 0 48 1 16 5 1 30 0 52 41 0 2 52 40 0 2 48 3 5 18 3 16 4 48 1 5 20 39 0 18 0 16 6 20 35 0 18 0 48 1 16 6 1 30 0 52 41 0 2 52 40 0 2 49 3 50)} "rest") :bytecode (20 0 0 16 0 16 1 52 1 0 1 16 2 4 48 4 5 2 17 4 51 2 0 1 0 1 2 1 3 1 4 17 4 16 4 16 1 52 3 0 1 49 1 50)} "compile-thread" {:upvalue-count 0 :arity 4 :constants ("Compile (-> val (f1 a) (f2 b)) by desugaring to nested calls." "empty?" "emit-op" 2 "=" "len" 1 "compile-expr" "first" "rest" "compile-thread-step") :bytecode (1 0 0 5 16 1 52 1 0 1 33 13 0 20 2 0 16 0 1 3 0 49 2 32 67 0 16 1 52 5 0 1 1 6 0 52 4 0 2 33 20 0 20 7 0 16 0 16 1 52 8 0 1 16 2 16 3 49 4 32 31 0 16 1 52 8 0 1 17 4 16 1 52 9 0 1 17 5 20 10 0 16 0 16 4 16 5 16 2 16 3 49 5 50)} "compile-thread-step" {:upvalue-count 0 :arity 5 :constants ("empty?" "compile-expr" "first" "rest" "list?" "concat" "list" "compile-thread-step") :bytecode (16 2 52 0 0 1 33 16 0 20 1 0 16 0 16 1 16 3 16 4 49 4 32 128 0 16 2 52 2 0 1 17 5 16 2 52 3 0 1 17 6 16 4 6 33 7 0 5 16 6 52 0 0 1 17 7 16 5 52 4 0 1 33 25 0 16 5 52 2 0 1 16 1 52 6 0 2 16 5 52 3 0 1 52 5 0 2 32 8 0 16 5 16 1 52 6 0 2 17 8 16 6 52 0 0 1 33 16 0 20 1 0 16 0 16 8 16 3 16 7 49 4 32 28 0 20 1 0 16 0 16 8 16 3 4 48 4 5 20 7 0 16 0 16 8 16 6 16 3 16 4 49 5 50)} "compile-defcomp" {:upvalue-count 0 :arity 3 :constants ("Compile defcomp/defisland — delegates to runtime via GLOBAL_GET + CALL." "pool-add" "get" "pool" "eval-defcomp" "emit-op" 20 "emit-u16" "emit-const" "concat" "list" "make-symbol" "defcomp" 48 "emit-byte" 1) :bytecode (1 0 0 5 20 1 0 16 0 1 3 0 52 2 0 2 1 4 0 48 2 17 3 20 5 0 16 0 1 6 0 48 2 5 20 7 0 16 0 16 3 48 2 5 20 8 0 16 0 1 12 0 52 11 0 1 52 10 0 1 16 1 52 9 0 2 48 2 5 20 5 0 16 0 1 13 0 48 2 5 20 14 0 16 0 1 15 0 49 2 50)} "compile-defmacro" {:upvalue-count 0 :arity 3 :constants ("Compile defmacro — delegates to runtime via GLOBAL_GET + CALL." "pool-add" "get" "pool" "eval-defmacro" "emit-op" 20 "emit-u16" "emit-const" "concat" "list" "make-symbol" "defmacro" 48 "emit-byte" 1) :bytecode (1 0 0 5 20 1 0 16 0 1 3 0 52 2 0 2 1 4 0 48 2 17 3 20 5 0 16 0 1 6 0 48 2 5 20 7 0 16 0 16 3 48 2 5 20 8 0 16 0 1 12 0 52 11 0 1 52 10 0 1 16 1 52 9 0 2 48 2 5 20 5 0 16 0 1 13 0 48 2 5 20 14 0 16 0 1 15 0 49 2 50)} "compile-quasiquote" {:upvalue-count 0 :arity 3 :constants ("Compile quasiquote inline — walks the template at compile time,\n emitting code that builds the structure at runtime. Unquoted\n expressions are compiled normally (resolving locals/upvalues),\n avoiding the qq-expand-runtime env-lookup limitation." "compile-qq-expr") :bytecode (1 0 0 5 20 1 0 16 0 16 1 16 2 49 3 50)} "compile-qq-expr" {:upvalue-count 0 :arity 3 :constants ("Compile a quasiquote sub-expression." "not" "=" "type-of" "list" "emit-const" "empty?" "emit-op" 64 "emit-u16" 0 "first" "symbol" "symbol-name" "unquote" "compile-expr" "nth" 1 "compile-qq-list") :bytecode (1 0 0 5 16 1 52 3 0 1 1 4 0 52 2 0 2 52 1 0 1 33 12 0 20 5 0 16 0 16 1 49 2 32 108 0 16 1 52 6 0 1 33 24 0 20 7 0 16 0 1 8 0 48 2 5 20 9 0 16 0 1 10 0 49 2 32 75 0 16 1 52 11 0 1 17 3 16 3 52 3 0 1 1 12 0 52 2 0 2 6 33 14 0 5 16 3 52 13 0 1 1 14 0 52 2 0 2 33 22 0 20 15 0 16 0 16 1 1 17 0 52 16 0 2 16 2 4 49 4 32 11 0 20 18 0 16 0 16 1 16 2 49 3 50)} "compile-qq-list" {:upvalue-count 0 :arity 3 :constants ("Compile a quasiquote list. Handles splice-unquote by building\n segments and concatenating them." "some" {:upvalue-count 0 :arity 1 :constants ("=" "type-of" "list" ">=" "len" 2 "first" "symbol" "symbol-name" "splice-unquote") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 58 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 40 0 5 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 6 33 18 0 5 16 0 52 6 0 1 52 8 0 1 1 9 0 52 0 0 2 50)} "not" "for-each" {:upvalue-count 2 :arity 1 :constants ("compile-qq-expr") :bytecode (20 0 0 18 0 16 0 18 1 49 3 50)} "emit-op" 64 "emit-u16" "len" 0 {:upvalue-count 4 :arity 1 :constants ("=" "type-of" "list" ">=" "len" 2 "first" "symbol" "symbol-name" "splice-unquote" ">" 0 "emit-op" 64 "emit-u16" "+" 1 "compile-expr" "nth" "compile-qq-expr") :bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 58 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 40 0 5 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 6 33 18 0 5 16 0 52 6 0 1 52 8 0 1 1 9 0 52 0 0 2 33 89 0 18 0 1 11 0 52 10 0 2 33 41 0 20 12 0 18 1 1 13 0 48 2 5 20 14 0 18 1 18 0 48 2 5 18 2 1 16 0 52 15 0 2 19 2 5 1 11 0 19 0 32 1 0 2 5 20 17 0 18 1 16 0 1 16 0 52 18 0 2 18 3 4 48 4 5 18 2 1 16 0 52 15 0 2 19 2 32 23 0 20 19 0 18 1 16 0 18 3 48 3 5 18 0 1 16 0 52 15 0 2 19 0 50)} ">" "+" 1 "pool-add" "get" "pool" "concat" 52 "emit-byte") :bytecode (1 0 0 5 51 2 0 16 1 52 1 0 2 17 3 16 3 52 3 0 1 33 41 0 51 5 0 1 0 1 2 16 1 52 4 0 2 5 20 6 0 16 0 1 7 0 48 2 5 20 8 0 16 0 16 1 52 9 0 1 49 2 32 142 0 1 10 0 17 4 1 10 0 17 5 51 11 0 1 5 1 0 1 4 1 2 16 1 52 4 0 2 5 16 5 1 10 0 52 12 0 2 33 35 0 20 6 0 16 0 1 7 0 48 2 5 20 8 0 16 0 16 5 48 2 5 16 4 1 14 0 52 13 0 2 17 4 32 1 0 2 5 16 4 1 14 0 52 12 0 2 33 52 0 20 15 0 16 0 1 17 0 52 16 0 2 1 18 0 48 2 17 6 20 6 0 16 0 1 19 0 48 2 5 20 8 0 16 0 16 6 48 2 5 20 20 0 16 0 16 4 49 2 32 1 0 2 50)} "compile-call" {:upvalue-count 0 :arity 5 :constants ("=" "type-of" "symbol" "symbol-name" "not" "get" "scope-resolve" "type" "local" "upvalue" "primitive?" "len" "pool-add" "pool" "for-each" {:upvalue-count 2 :arity 1 :constants ("compile-expr") :bytecode (20 0 0 18 0 16 0 18 1 4 49 4 50)} "emit-op" 52 "emit-u16" "emit-byte" "compile-expr" 49 48) :bytecode (16 1 52 1 0 1 1 2 0 52 0 0 2 6 33 79 0 5 16 1 52 3 0 1 17 6 20 6 0 16 3 16 6 48 2 1 7 0 52 5 0 2 1 8 0 52 0 0 2 52 4 0 1 6 33 39 0 5 20 6 0 16 3 16 6 48 2 1 7 0 52 5 0 2 1 9 0 52 0 0 2 52 4 0 1 6 33 7 0 5 16 6 52 10 0 1 17 5 16 5 33 81 0 16 1 52 3 0 1 17 6 16 2 52 11 0 1 17 7 20 12 0 16 0 1 13 0 52 5 0 2 16 6 48 2 17 8 51 15 0 1 0 1 3 16 2 52 14 0 2 5 20 16 0 16 0 1 17 0 48 2 5 20 18 0 16 0 16 8 48 2 5 20 19 0 16 0 16 7 49 2 32 83 0 20 20 0 16 0 16 1 16 3 4 48 4 5 51 15 0 1 0 1 3 16 2 52 14 0 2 5 16 4 33 27 0 20 16 0 16 0 1 21 0 48 2 5 20 19 0 16 0 16 2 52 11 0 1 49 2 32 24 0 20 16 0 16 0 1 22 0 48 2 5 20 19 0 16 0 16 2 52 11 0 1 49 2 50)} "compile" {:upvalue-count 0 :arity 1 :constants ("Compile a single SX expression to a bytecode module." "make-emitter" "make-scope" "compile-expr" "emit-op" 50 "constants" "get" "pool" "entries" "bytecode") :bytecode (1 0 0 5 20 1 0 48 0 17 1 20 2 0 2 48 1 17 2 20 3 0 16 1 16 0 16 2 4 48 4 5 20 4 0 16 1 1 5 0 48 2 5 1 6 0 16 1 1 8 0 52 7 0 2 1 9 0 52 7 0 2 1 10 0 16 1 1 10 0 52 7 0 2 65 2 0 50)} "compile-module" {:upvalue-count 0 :arity 1 :constants ("Compile a list of top-level expressions to a bytecode module." "make-emitter" "make-scope" "for-each" {:upvalue-count 2 :arity 1 :constants ("compile-expr" "emit-op" 5) :bytecode (20 0 0 18 0 16 0 18 1 4 48 4 5 20 1 0 18 0 1 2 0 49 2 50)} "init" "compile-expr" "last" "emit-op" 50 "constants" "get" "pool" "entries" "bytecode") :bytecode (1 0 0 5 20 1 0 48 0 17 1 20 2 0 2 48 1 17 2 51 4 0 1 1 1 2 16 0 52 5 0 1 52 3 0 2 5 20 6 0 16 1 16 0 52 7 0 1 16 2 4 48 4 5 20 8 0 16 1 1 9 0 48 2 5 1 10 0 16 1 1 12 0 52 11 0 2 1 13 0 52 11 0 2 1 14 0 16 1 1 14 0 52 11 0 2 65 2 0 50)} {:library (sx compiler) :op "import"}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 5 51 5 0 128 4 0 5 51 7 0 128 6 0 5 51 9 0 128 8 0 5 51 11 0 128 10 0 5 51 13 0 128 12 0 5 51 15 0 128 14 0 5 51 17 0 128 16 0 5 51 19 0 128 18 0 5 51 21 0 128 20 0 5 51 23 0 128 22 0 5 51 25 0 128 24 0 5 51 27 0 128 26 0 5 51 29 0 128 28 0 5 51 31 0 128 30 0 5 51 33 0 128 32 0 5 51 35 0 128 34 0 5 51 37 0 128 36 0 5 51 39 0 128 38 0 5 51 41 0 128 40 0 5 51 43 0 128 42 0 5 51 45 0 128 44 0 5 51 47 0 128 46 0 5 51 49 0 128 48 0 5 51 51 0 128 50 0 5 51 53 0 128 52 0 5 51 55 0 128 54 0 5 51 57 0 128 56 0 5 51 59 0 128 58 0 5 51 61 0 128 60 0 5 51 63 0 128 62 0 5 51 65 0 128 64 0 5 51 67 0 128 66 0 5 51 69 0 128 68 0 5 51 71 0 128 70 0 5 51 73 0 128 72 0 5 51 75 0 128 74 0 5 51 77 0 128 76 0 5 51 79 0 128 78 0 5 51 81 0 128 80 0 5 51 83 0 128 82 0 5 1 84 0 112 50)))