Files
rose-ash/shared/static/wasm/sx/compiler.sxbc
giles e0070041d6 Add .sxbc s-expression bytecode format
Bytecode modules are now serialized as s-expressions (.sxbc) in addition
to JSON (.sxbc.json). The .sxbc format is the canonical representation —
content-addressable, parseable by the SX parser, and suitable for CID
referencing. Annotation layers (source maps, variable names, tests, docs)
can reference the bytecode CID without polluting the bytecode itself.

Format: (sxbc version hash (code :arity N :bytecode (...) :constants (...)))

The browser loader tries .sxbc first (via load-sxbc kernel primitive),
falls back to .sxbc.json. Caddy needs .sxbc MIME type to serve the new
format (currently 404s, JSON fallback works).

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 14:16:22 +00:00

949 lines
38 KiB
Plaintext

(sxbc 1 "9f12bfb447e36aeb"
(code
: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 50)
:constants (
"make-pool"
(code
: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)
:constants (
"entries"
"primitive?"
"mutable-list"
"list"
"index"
"_count"
0))
"pool-add"
(code :arity 2
: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 60 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 20 9 0 16 0 1 10 0 52 2 0 2 16 1 48 2 5 16 4 50)
:constants (
"Add a value to the constant pool, return its index. Deduplicates."
"serialize"
"get"
"index"
"has-key?"
"_count"
"dict-set!"
"+"
1
"append!"
"entries"))
"make-scope"
(code :arity 1
: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)
:constants (
"next-slot"
0
"upvalues"
"list"
"locals"
"parent"
"is-function"))
"scope-define-local"
(code :arity 2
: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 64 0 16 0 1 7 0 52 4 0 2 17 3 20 8 0 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 48 2 5 16 0 1 7 0 16 3 1 13 0 52 12 0 2 52 11 0 3 5 16 3 50)
:constants (
"Add a local variable, return its slot index.
Idempotent: if name already has a slot, return it."
"first"
"filter"
(code :arity 1 :upvalue-count 1
:bytecode (16 0 1 2 0 52 1 0 2 18 0 52 0 0 2 50)
:constants (
"="
"get"
"name"))
"get"
"locals"
"slot"
"next-slot"
"append!"
"mutable"
"name"
"dict-set!"
"+"
1))
"scope-resolve"
(code :arity 2
: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 61 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 247 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 177 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 140 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 105 0 16 0 1 19 0 52 5 0 2 33 91 0 16 0 1 13 0 52 5 0 2 52 20 0 1 17 8 20 21 0 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 48 2 5 1 2 0 16 8 1 3 0 1 15 0 65 2 0 32 2 0 16 7 50)
:constants (
"Resolve a variable name. Returns {:type \"local\"|\"upvalue\"|\"global\", :index N}.
Upvalue captures only happen at function boundaries (is-function=true).
Let scopes share the enclosing function's frame — their locals are
accessed directly without upvalue indirection."
"nil?"
"index"
"type"
"global"
"get"
"locals"
"some"
(code :arity 1 :upvalue-count 1
:bytecode (16 0 1 2 0 52 1 0 2 18 0 52 0 0 2 50)
:constants (
"="
"get"
"name"))
"first"
"filter"
"slot"
"local"
"upvalues"
"uv-index"
"upvalue"
"parent"
"scope-resolve"
"="
"is-function"
"len"
"append!"
"is-local"
"name"))
"make-emitter"
(code
: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)
:constants (
"pool"
"make-pool"
"bytecode"
"primitive?"
"mutable-list"
"list"))
"emit-byte"
(code :arity 2
:bytecode (20 0 0 16 0 1 2 0 52 1 0 2 16 1 49 2 50)
:constants (
"append!"
"get"
"bytecode"))
"emit-u16"
(code :arity 2
: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)
:constants (
"emit-byte"
"mod"
256
"floor"
"/"))
"emit-i16"
(code :arity 2
: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)
:constants (
"<"
0
"+"
65536
"emit-u16"))
"emit-op"
(code :arity 2
:bytecode (20 0 0 16 0 16 1 49 2 50)
:constants (
"emit-byte"))
"emit-const"
(code :arity 2
: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)
:constants (
"pool-add"
"get"
"pool"
"emit-op"
1
"emit-u16"))
"current-offset"
(code :arity 1
:bytecode (16 0 1 2 0 52 1 0 2 52 0 0 1 50)
:constants (
"len"
"get"
"bytecode"))
"patch-i16"
(code :arity 3
: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)
:constants (
"Patch a previously emitted i16 at the given bytecode offset."
"<"
0
"+"
65536
"get"
"bytecode"
"set-nth!"
"mod"
256
1
"floor"
"/"))
"compile-expr"
(code :arity 4
: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 12 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 240 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 212 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 172 0 16 1 52 5 0 1 1 12 0 52 4 0 2 33 17 0 20 7 0 16 0 20 13 0 16 1 48 1 49 2 32 139 0 16 1 52 5 0 1 1 14 0 52 4 0 2 33 19 0 20 15 0 16 0 20 16 0 16 1 48 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)
: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"))
"compile-symbol"
(code :arity 3
: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)
:constants (
"scope-resolve"
"="
"get"
"type"
"local"
"emit-op"
16
"emit-byte"
"index"
"upvalue"
18
"pool-add"
"pool"
20
"emit-u16"))
"compile-dict"
(code :arity 3
: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)
:constants (
"keys"
"len"
"for-each"
(code :arity 1 :upvalue-count 3
: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)
:constants (
"emit-const"
"compile-expr"
"get"))
"emit-op"
65
"emit-u16"))
"compile-list"
(code :arity 4
: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 54 3 20 7 0 16 4 48 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 17 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 245 2 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 217 2 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 189 2 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 161 2 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 133 2 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 105 2 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 77 2 16 6 1 22 0 52 3 0 2 33 14 0 20 23 0 16 0 16 5 16 2 49 3 32 51 2 16 6 1 24 0 52 3 0 2 33 14 0 20 23 0 16 0 16 5 16 2 49 3 32 25 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 255 1 16 6 1 27 0 52 3 0 2 33 14 0 20 28 0 16 0 16 5 16 2 49 3 32 229 1 16 6 1 29 0 52 3 0 2 33 12 0 20 30 0 16 0 16 5 49 2 32 205 1 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 177 1 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 149 1 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 121 1 16 6 1 37 0 52 3 0 2 33 14 0 20 38 0 16 0 16 5 16 2 49 3 32 95 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 69 1 16 6 1 40 0 52 3 0 2 33 14 0 20 41 0 16 0 16 5 16 2 49 3 32 43 1 16 6 1 42 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 18 1 16 6 1 45 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 249 0 16 6 1 46 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 224 0 16 6 1 47 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 199 0 16 6 1 48 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 174 0 16 6 1 49 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 149 0 16 6 1 50 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 124 0 16 6 1 51 0 52 3 0 2 33 13 0 20 43 0 16 0 1 44 0 49 2 32 99 0 16 6 1 39 0 52 3 0 2 33 14 0 20 38 0 16 0 16 5 16 2 49 3 32 73 0 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 43 0 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 15 0 20 6 0 16 0 16 4 16 5 16 2 16 3 49 5 50)
: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"))
"compile-if"
(code :arity 4
: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)
:constants (
"first"
"nth"
1
">"
"len"
2
"compile-expr"
"emit-op"
33
"current-offset"
"emit-i16"
0
32
"patch-i16"
"-"
"+"
"nil?"))
"compile-when"
(code :arity 4
: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)
:constants (
"first"
"rest"
"compile-expr"
"emit-op"
33
"current-offset"
"emit-i16"
0
"compile-begin"
32
"patch-i16"
"-"
"+"
2))
"compile-and"
(code :arity 4
: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)
:constants (
"empty?"
"emit-op"
3
"="
"len"
1
"compile-expr"
"first"
6
33
"current-offset"
"emit-i16"
0
5
"compile-and"
"rest"
"patch-i16"
"-"
"+"
2))
"compile-or"
(code :arity 4
: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)
:constants (
"empty?"
"emit-op"
4
"="
"len"
1
"compile-expr"
"first"
6
34
"current-offset"
"emit-i16"
0
5
"compile-or"
"rest"
"patch-i16"
"-"
"+"
2))
"compile-begin"
(code :arity 4
: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)
:constants (
"not"
"empty?"
"nil?"
"get"
"parent"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 59 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 41 0 5 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 6 33 19 0 5 20 8 0 16 0 52 6 0 1 48 1 1 9 0 52 0 0 2 33 53 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 10 0 20 8 0 16 1 48 1 32 2 0 16 1 17 2 20 12 0 18 0 16 2 49 2 32 1 0 2 50)
:constants (
"="
"type-of"
"list"
">="
"len"
2
"first"
"symbol"
"symbol-name"
"define"
"nth"
1
"scope-define-local"))
"emit-op"
2
"="
"len"
1
"compile-expr"
"first"
5
"compile-begin"
"rest"))
"compile-let"
(code :arity 4
:bytecode (16 1 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 136 0 20 4 0 16 1 52 2 0 1 48 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)
:constants (
"="
"type-of"
"first"
"symbol"
"symbol-name"
"nth"
1
"slice"
2
"list"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 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 48 2 5 20 0 0 18 1 16 0 1 7 0 52 6 0 2 49 2 50)
:constants (
"append!"
"="
"type-of"
"first"
"symbol"
"make-symbol"
"nth"
1))
"concat"
"make-symbol"
"fn"
"cons"
"compile-letrec"
"rest"
"make-scope"
"dict-set!"
"next-slot"
"get"
(code :arity 1 :upvalue-count 2
:bytecode (16 0 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 14 0 20 4 0 16 0 52 2 0 1 48 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)
:constants (
"="
"type-of"
"first"
"symbol"
"symbol-name"
"nth"
1
"scope-define-local"
"compile-expr"
"emit-op"
17
"emit-byte"))
"compile-begin"))
"compile-letrec"
(code :arity 4
: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)
:constants (
"Compile letrec: all names visible during value compilation.
1. Define all local slots (initialized to nil).
2. Compile each value and assign — names are already in scope
so mutually recursive functions can reference each other."
"first"
"rest"
"make-scope"
"dict-set!"
"next-slot"
"get"
"map"
(code :arity 1 :upvalue-count 2
:bytecode (16 0 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 14 0 20 4 0 16 0 52 2 0 1 48 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)
:constants (
"="
"type-of"
"first"
"symbol"
"symbol-name"
"scope-define-local"
"emit-op"
2
17
"emit-byte"))
"for-each"
(code :arity 1 :upvalue-count 2
: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)
:constants (
"first"
"nth"
1
"compile-expr"
"emit-op"
17
"emit-byte"))
(code :arity 1 :upvalue-count 2
:bytecode (18 0 16 0 52 1 0 2 18 1 16 0 52 1 0 2 52 0 0 2 50)
:constants (
"list"
"nth"))
"range"
0
"len"
"compile-begin"))
"compile-lambda"
(code :arity 3
: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)
:constants (
"first"
"rest"
"make-scope"
"make-emitter"
"dict-set!"
"is-function"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 10 0 20 3 0 16 0 48 1 32 62 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 14 0 20 3 0 16 0 52 7 0 1 48 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)
:constants (
"="
"type-of"
"symbol"
"symbol-name"
"list?"
"not"
"empty?"
"first"
"&key"
"&rest"
"scope-define-local"))
"compile-begin"
"emit-op"
50
"get"
"upvalues"
"upvalue-count"
"len"
"arity"
"locals"
"constants"
"pool"
"entries"
"bytecode"
"pool-add"
51
"emit-u16"
(code :arity 1 :upvalue-count 1
: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)
:constants (
"emit-byte"
"get"
"is-local"
1
0
"index"))))
"compile-define"
(code :arity 3
:bytecode (16 1 52 0 0 1 17 3 16 3 52 2 0 1 1 3 0 52 1 0 2 33 10 0 20 4 0 16 3 48 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)
:constants (
"first"
"="
"type-of"
"symbol"
"symbol-name"
"rest"
"not"
"empty?"
"keyword"
(code :arity 1 :upvalue-count 1
: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)
:constants (
"empty?"
"="
"type-of"
"first"
"keyword"
"rest"))
"nil?"
"get"
"parent"
"scope-define-local"
"compile-expr"
"emit-op"
17
"emit-byte"
"pool-add"
"pool"
128
"emit-u16"))
"compile-set"
(code :arity 3
:bytecode (16 1 52 2 0 1 52 1 0 1 1 3 0 52 0 0 2 33 14 0 20 4 0 16 1 52 2 0 1 48 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)
: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"))
"compile-quote"
(code :arity 2
: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)
:constants (
"empty?"
"emit-op"
2
"emit-const"
"first"))
"compile-cond"
(code :arity 4
: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 22 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 15 0 5 20 14 0 16 4 48 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)
: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"))
"compile-case"
(code :arity 4
: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)
:constants (
"Compile (case expr val1 body1 val2 body2 ... :else fallback)."
"compile-expr"
"first"
"rest"
"compile-case-clauses"))
"compile-case-clauses"
(code :arity 4
: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 106 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 15 0 5 20 14 0 16 4 48 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)
: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"))
"compile-thread"
(code :arity 4
: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)
: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"))
"compile-thread-step"
(code :arity 5
: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)
:constants (
"empty?"
"compile-expr"
"first"
"rest"
"list?"
"concat"
"list"
"compile-thread-step"))
"compile-defcomp"
(code :arity 3
: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)
: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))
"compile-defmacro"
(code :arity 3
: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)
: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))
"compile-quasiquote"
(code :arity 3
:bytecode (1 0 0 5 20 1 0 16 0 16 1 16 2 49 3 50)
:constants (
"Compile quasiquote inline — walks the template at compile time,
emitting code that builds the structure at runtime. Unquoted
expressions are compiled normally (resolving locals/upvalues),
avoiding the qq-expand-runtime env-lookup limitation."
"compile-qq-expr"))
"compile-qq-expr"
(code :arity 3
: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 109 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 76 0 16 1 52 11 0 1 17 3 16 3 52 3 0 1 1 12 0 52 2 0 2 6 33 15 0 5 20 13 0 16 3 48 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)
: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"))
"compile-qq-list"
(code :arity 3
: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)
:constants (
"Compile a quasiquote list. Handles splice-unquote by building
segments and concatenating them."
"some"
(code :arity 1
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 59 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 41 0 5 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 6 33 19 0 5 20 8 0 16 0 52 6 0 1 48 1 1 9 0 52 0 0 2 50)
:constants (
"="
"type-of"
"list"
">="
"len"
2
"first"
"symbol"
"symbol-name"
"splice-unquote"))
"not"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 18 0 16 0 18 1 49 3 50)
:constants (
"compile-qq-expr"))
"emit-op"
64
"emit-u16"
"len"
0
(code :arity 1 :upvalue-count 4
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 59 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 6 33 41 0 5 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 6 33 19 0 5 20 8 0 16 0 52 6 0 1 48 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)
: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"))
">"
"+"
1
"pool-add"
"get"
"pool"
"concat"
52
"emit-byte"))
"compile-call"
(code :arity 5
:bytecode (16 1 52 1 0 1 1 2 0 52 0 0 2 6 33 80 0 5 20 3 0 16 1 48 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 82 0 20 3 0 16 1 48 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)
:constants (
"="
"type-of"
"symbol"
"symbol-name"
"not"
"get"
"scope-resolve"
"type"
"local"
"upvalue"
"primitive?"
"len"
"pool-add"
"pool"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 18 0 16 0 18 1 4 49 4 50)
:constants (
"compile-expr"))
"emit-op"
52
"emit-u16"
"emit-byte"
"compile-expr"
49
48))
"compile"
(code :arity 1
: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)
:constants (
"Compile a single SX expression to a bytecode module."
"make-emitter"
"make-scope"
"compile-expr"
"emit-op"
50
"constants"
"get"
"pool"
"entries"
"bytecode"))
"compile-module"
(code :arity 1
: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)
:constants (
"Compile a list of top-level expressions to a bytecode module."
"make-emitter"
"make-scope"
"for-each"
(code :arity 1 :upvalue-count 2
: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)
:constants (
"compile-expr"
"emit-op"
5))
"init"
"compile-expr"
"last"
"emit-op"
50
"constants"
"get"
"pool"
"entries"
"bytecode")))))