Files
rose-ash/shared/static/wasm/sx/deps.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

331 lines
13 KiB
Plaintext

(sxbc 1 "e71dcede46ada0e7"
(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 50)
:constants (
"scan-refs"
(code :arity 1
:bytecode (52 0 0 0 17 1 20 1 0 16 0 16 1 48 2 5 16 1 50)
:constants (
"list"
"scan-refs-walk"))
"scan-refs-walk"
(code :arity 2
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 56 0 20 3 0 16 0 48 1 17 2 16 2 1 5 0 52 4 0 2 33 31 0 16 1 16 2 52 7 0 2 52 6 0 1 33 12 0 20 8 0 16 1 16 2 49 2 32 1 0 2 32 1 0 2 32 67 0 16 0 52 1 0 1 1 9 0 52 0 0 2 33 14 0 51 11 0 1 1 16 0 52 10 0 2 32 37 0 16 0 52 1 0 1 1 12 0 52 0 0 2 33 20 0 51 13 0 1 0 1 1 16 0 52 14 0 1 52 10 0 2 32 1 0 2 50)
:constants (
"="
"type-of"
"symbol"
"symbol-name"
"starts-with?"
"~"
"not"
"contains?"
"append!"
"list"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 16 0 18 0 49 2 50)
:constants (
"scan-refs-walk"))
"dict"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 18 0 16 0 52 1 0 2 18 1 49 2 50)
:constants (
"scan-refs-walk"
"dict-get"))
"keys"))
"transitive-deps-walk"
(code :arity 3
:bytecode (16 1 16 0 52 1 0 2 52 0 0 1 33 126 0 20 2 0 16 1 16 0 48 2 5 20 3 0 16 2 16 0 48 2 17 3 16 3 52 5 0 1 1 6 0 52 4 0 2 6 34 14 0 5 16 3 52 5 0 1 1 7 0 52 4 0 2 33 25 0 51 9 0 1 1 1 2 20 10 0 16 3 52 11 0 1 48 1 52 8 0 2 32 43 0 16 3 52 5 0 1 1 12 0 52 4 0 2 33 26 0 51 9 0 1 1 1 2 20 10 0 20 13 0 16 3 48 1 48 1 52 8 0 2 32 1 0 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"
"env-get"
"="
"type-of"
"component"
"island"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 16 0 18 0 18 1 49 3 50)
:constants (
"transitive-deps-walk"))
"scan-refs"
"component-body"
"macro"
"macro-body"))
"transitive-deps"
(code :arity 2
:bytecode (52 0 0 0 17 2 16 0 1 2 0 52 1 0 2 33 5 0 16 0 32 9 0 1 2 0 16 0 52 3 0 2 17 3 20 4 0 16 3 16 2 16 1 48 3 5 51 6 0 1 3 16 2 52 5 0 2 50)
:constants (
"list"
"starts-with?"
"~"
"str"
"transitive-deps-walk"
"filter"
(code :arity 1 :upvalue-count 1
:bytecode (16 0 18 0 52 1 0 2 52 0 0 1 50)
:constants (
"not"
"="))))
"compute-all-deps"
(code :arity 1
:bytecode (51 1 0 1 0 20 2 0 16 0 48 1 52 0 0 2 50)
:constants (
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 18 0 16 0 48 2 17 1 16 1 52 2 0 1 1 3 0 52 1 0 2 6 34 14 0 5 16 1 52 2 0 1 1 4 0 52 1 0 2 33 19 0 20 5 0 16 1 20 6 0 16 0 18 0 48 2 49 2 32 1 0 2 50)
:constants (
"env-get"
"="
"type-of"
"component"
"island"
"component-set-deps!"
"transitive-deps"))
"env-components"))
"scan-components-from-source"
(code :arity 1
:bytecode (20 0 0 1 1 0 16 0 48 2 17 1 51 3 0 16 1 52 2 0 2 50)
:constants (
"regex-find-all"
"\\(~([a-zA-Z_][a-zA-Z0-9_\\-:/]*)"
"map"
(code :arity 1
:bytecode (1 1 0 16 0 52 0 0 2 50)
:constants (
"str"
"~"))))
"components-needed"
(code :arity 2
:bytecode (20 0 0 16 0 48 1 17 2 52 1 0 0 17 3 51 3 0 1 3 1 1 16 2 52 2 0 2 5 16 3 50)
:constants (
"scan-components-from-source"
"list"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (18 0 16 0 52 1 0 2 52 0 0 1 33 12 0 20 2 0 18 0 16 0 48 2 32 1 0 2 5 20 3 0 18 1 16 0 48 2 17 1 16 1 52 5 0 1 1 6 0 52 4 0 2 6 33 16 0 5 20 8 0 16 1 48 1 52 7 0 1 52 0 0 1 33 10 0 20 8 0 16 1 48 1 32 9 0 20 9 0 16 0 18 1 48 2 17 2 51 11 0 0 0 16 2 52 10 0 2 50)
:constants (
"not"
"contains?"
"append!"
"env-get"
"="
"type-of"
"component"
"empty?"
"component-deps"
"transitive-deps"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (18 0 16 0 52 1 0 2 52 0 0 1 33 12 0 20 2 0 18 0 16 0 49 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"))))))
"page-component-bundle"
(code :arity 2
:bytecode (20 0 0 16 0 16 1 49 2 50)
:constants (
"components-needed"))
"page-css-classes"
(code :arity 2
:bytecode (20 0 0 16 0 16 1 48 2 17 2 52 1 0 0 17 3 51 3 0 1 1 1 3 16 2 52 2 0 2 5 51 4 0 1 3 20 5 0 16 0 48 1 52 2 0 2 5 16 3 50)
:constants (
"components-needed"
"list"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 18 0 16 0 48 2 17 1 16 1 52 2 0 1 1 3 0 52 1 0 2 33 19 0 51 5 0 0 1 20 6 0 16 1 48 1 52 4 0 2 32 1 0 2 50)
:constants (
"env-get"
"="
"type-of"
"component"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (18 0 16 0 52 1 0 2 52 0 0 1 33 12 0 20 2 0 18 0 16 0 49 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"))
"component-css-classes"))
(code :arity 1 :upvalue-count 1
:bytecode (18 0 16 0 52 1 0 2 52 0 0 1 33 12 0 20 2 0 18 0 16 0 49 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"))
"scan-css-classes"))
"scan-io-refs-walk"
(code :arity 3
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 55 0 20 3 0 16 0 48 1 17 3 16 1 16 3 52 4 0 2 33 31 0 16 2 16 3 52 4 0 2 52 5 0 1 33 12 0 20 6 0 16 2 16 3 49 2 32 1 0 2 32 1 0 2 32 71 0 16 0 52 1 0 1 1 7 0 52 0 0 2 33 16 0 51 9 0 1 1 1 2 16 0 52 8 0 2 32 39 0 16 0 52 1 0 1 1 10 0 52 0 0 2 33 22 0 51 11 0 1 0 1 1 1 2 16 0 52 12 0 1 52 8 0 2 32 1 0 2 50)
:constants (
"="
"type-of"
"symbol"
"symbol-name"
"contains?"
"not"
"append!"
"list"
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 16 0 18 0 18 1 49 3 50)
:constants (
"scan-io-refs-walk"))
"dict"
(code :arity 1 :upvalue-count 3
:bytecode (20 0 0 18 0 16 0 52 1 0 2 18 1 18 2 49 3 50)
:constants (
"scan-io-refs-walk"
"dict-get"))
"keys"))
"scan-io-refs"
(code :arity 2
:bytecode (52 0 0 0 17 2 20 1 0 16 0 16 1 16 2 48 3 5 16 2 50)
:constants (
"list"
"scan-io-refs-walk"))
"transitive-io-refs-walk"
(code :arity 5
:bytecode (16 1 16 0 52 1 0 2 52 0 0 1 33 163 0 20 2 0 16 1 16 0 48 2 5 20 3 0 16 3 16 0 48 2 17 5 16 5 52 5 0 1 1 6 0 52 4 0 2 33 52 0 51 8 0 1 2 20 9 0 16 5 52 10 0 1 16 4 48 2 52 7 0 2 5 51 11 0 1 1 1 2 1 3 1 4 20 12 0 16 5 52 10 0 1 48 1 52 7 0 2 32 71 0 16 5 52 5 0 1 1 13 0 52 4 0 2 33 54 0 51 8 0 1 2 20 9 0 20 14 0 16 5 48 1 16 4 48 2 52 7 0 2 5 51 11 0 1 1 1 2 1 3 1 4 20 12 0 20 14 0 16 5 48 1 48 1 52 7 0 2 32 1 0 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"
"env-get"
"="
"type-of"
"component"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (18 0 16 0 52 1 0 2 52 0 0 1 33 12 0 20 2 0 18 0 16 0 49 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"))
"scan-io-refs"
"component-body"
(code :arity 1 :upvalue-count 4
:bytecode (20 0 0 16 0 18 0 18 1 18 2 18 3 49 5 50)
:constants (
"transitive-io-refs-walk"))
"scan-refs"
"macro"
"macro-body"))
"transitive-io-refs"
(code :arity 3
:bytecode (52 0 0 0 17 3 52 0 0 0 17 4 16 0 1 2 0 52 1 0 2 33 5 0 16 0 32 9 0 1 2 0 16 0 52 3 0 2 17 5 20 4 0 16 5 16 4 16 3 16 1 16 2 48 5 5 16 3 50)
:constants (
"list"
"starts-with?"
"~"
"str"
"transitive-io-refs-walk"))
"compute-all-io-refs"
(code :arity 2
:bytecode (51 1 0 1 0 1 1 20 2 0 16 0 48 1 52 0 0 2 50)
:constants (
"for-each"
(code :arity 1 :upvalue-count 2
:bytecode (20 0 0 18 0 16 0 48 2 17 1 16 1 52 2 0 1 1 3 0 52 1 0 2 33 21 0 20 4 0 16 1 20 5 0 16 0 18 0 18 1 48 3 49 2 32 1 0 2 50)
:constants (
"env-get"
"="
"type-of"
"component"
"component-set-io-refs!"
"transitive-io-refs"))
"env-components"))
"component-io-refs-cached"
(code :arity 3
:bytecode (16 0 1 1 0 52 0 0 2 33 5 0 16 0 32 9 0 1 1 0 16 0 52 2 0 2 17 3 20 3 0 16 1 16 3 48 2 17 4 16 4 52 5 0 1 1 6 0 52 4 0 2 6 33 36 0 5 20 9 0 16 4 48 1 52 8 0 1 52 7 0 1 6 33 16 0 5 20 9 0 16 4 48 1 52 10 0 1 52 7 0 1 33 10 0 20 9 0 16 4 49 1 32 11 0 20 11 0 16 0 16 1 16 2 49 3 50)
:constants (
"starts-with?"
"~"
"str"
"env-get"
"="
"type-of"
"component"
"not"
"nil?"
"component-io-refs"
"empty?"
"transitive-io-refs"))
"component-pure?"
(code :arity 3
:bytecode (16 0 1 1 0 52 0 0 2 33 5 0 16 0 32 9 0 1 1 0 16 0 52 2 0 2 17 3 20 3 0 16 1 16 3 48 2 17 4 16 4 52 5 0 1 1 6 0 52 4 0 2 6 33 16 0 5 20 9 0 16 4 48 1 52 8 0 1 52 7 0 1 33 14 0 20 9 0 16 4 48 1 52 10 0 1 32 15 0 20 11 0 16 0 16 1 16 2 48 3 52 10 0 1 50)
:constants (
"starts-with?"
"~"
"str"
"env-get"
"="
"type-of"
"component"
"not"
"nil?"
"component-io-refs"
"empty?"
"transitive-io-refs"))
"render-target"
(code :arity 3
:bytecode (16 0 1 1 0 52 0 0 2 33 5 0 16 0 32 9 0 1 1 0 16 0 52 2 0 2 17 3 20 3 0 16 1 16 3 48 2 17 4 16 4 52 6 0 1 1 7 0 52 5 0 2 52 4 0 1 33 6 0 1 8 0 32 72 0 20 9 0 16 4 48 1 17 5 16 5 1 8 0 52 5 0 2 33 6 0 1 8 0 32 45 0 16 5 1 10 0 52 5 0 2 33 6 0 1 10 0 32 27 0 20 11 0 16 0 16 1 16 2 48 3 52 4 0 1 33 6 0 1 8 0 32 3 0 1 10 0 50)
:constants (
"starts-with?"
"~"
"str"
"env-get"
"not"
"="
"type-of"
"component"
"server"
"component-affinity"
"client"
"component-pure?"))
"page-render-plan"
(code :arity 3
:bytecode (20 0 0 16 0 16 1 48 2 17 3 52 1 0 0 17 4 52 2 0 0 17 5 52 2 0 0 17 6 52 2 0 0 17 7 51 4 0 1 1 1 2 1 4 1 5 1 7 1 6 16 3 52 3 0 2 5 1 5 0 16 7 1 6 0 16 5 1 7 0 16 4 1 8 0 16 6 65 4 0 50)
:constants (
"components-needed"
"dict"
"list"
"for-each"
(code :arity 1 :upvalue-count 6
:bytecode (20 0 0 16 0 18 0 18 1 48 3 17 1 18 2 16 0 16 1 52 1 0 3 5 16 1 1 3 0 52 2 0 2 33 33 0 20 4 0 18 3 16 0 48 2 5 51 6 0 0 4 20 7 0 16 0 18 0 18 1 48 3 52 5 0 2 32 9 0 20 4 0 18 5 16 0 49 2 50)
:constants (
"render-target"
"dict-set!"
"="
"server"
"append!"
"for-each"
(code :arity 1 :upvalue-count 1
:bytecode (18 0 16 0 52 1 0 2 52 0 0 1 33 12 0 20 2 0 18 0 16 0 49 2 32 1 0 2 50)
:constants (
"not"
"contains?"
"append!"))
"component-io-refs-cached"))
"io-deps"
"server"
"components"
"client"))
"env-components"
(code :arity 1
:bytecode (51 1 0 1 0 16 0 52 2 0 1 52 0 0 2 50)
:constants (
"filter"
(code :arity 1 :upvalue-count 1
:bytecode (20 0 0 18 0 16 0 48 2 17 1 16 1 52 1 0 1 6 34 7 0 5 16 1 52 2 0 1 50)
:constants (
"env-get"
"component?"
"macro?"))
"keys")))))