Some checks failed
Test, Build, and Deploy / test-build-deploy (push) Failing after 46s
Every .sxbc shipped with `:bytecode (nil nil ...)` and `:arity nil`, so the WASM
kernel's vm.sx hit "VM: unknown opcode 0" on every module and fell back to .sx
source (slower, noisy console). Root cause: `raw_serialize` in the `compile-blob`
command (sx_server.ml) handles `Number` but not `Integer`, and bytecode opcodes +
arity/upvalue-count are `Integer`s — so they fell through to the `_ -> "nil"`
catch-all and serialized as nil. Same class of bug as the value_to_js Integer gap
(689dae7d). It went unnoticed because source-fallback masks it. Add the Integer
case and regenerate: the web stack now loads entirely from bytecode (0 unknown-
opcode warnings, 0 source fallbacks), boost + SPA unchanged. compiler.sx in the
bundle was also stale — re-synced to the canonical lib/compiler.sx.
Verified: native host conformance 271/271; chromium boots with 0 unknown-opcode
warnings + 0 source-fallback loads; spa-check still passes (boost 6/6, fragment
swap). Prereq for content-addressing the assets (caching real bytecode, not nil).
4 lines
9.2 KiB
Plaintext
4 lines
9.2 KiB
Plaintext
(sxbc 1 "809ddd596ff4bc3c"
|
|
(code
|
|
:constants ("scan-refs" {:upvalue-count 0 :arity 1 :constants ("list" "scan-refs-walk") :bytecode (52 0 0 0 17 1 20 1 0 16 0 16 1 48 2 5 16 1 50)} "scan-refs-walk" {:upvalue-count 0 :arity 2 :constants ("type-of" "symbol" "=" "symbol-name" "~" "starts-with?" "contains?" "append!" "list" {:upvalue-count 1 :arity 1 :constants ("scan-refs-walk") :bytecode (20 0 0 16 0 18 0 49 2 50)} "for-each" "dict" {:upvalue-count 2 :arity 1 :constants ("scan-refs-walk" "dict-get") :bytecode (20 0 0 18 0 16 0 52 1 0 2 18 1 49 2 50)} "keys") :bytecode (16 0 52 0 0 1 6 1 1 0 52 2 0 2 33 52 0 5 16 0 52 3 0 1 17 2 16 2 1 4 0 52 5 0 2 33 27 0 16 1 16 2 52 6 0 2 167 33 11 0 16 1 16 2 52 7 0 2 32 1 0 2 32 1 0 2 32 60 0 6 1 8 0 52 2 0 2 33 15 0 5 51 9 0 1 1 16 0 52 10 0 2 32 34 0 6 1 11 0 52 2 0 2 33 21 0 5 51 12 0 1 0 1 1 16 0 52 13 0 1 52 10 0 2 32 2 0 5 2 50)} "transitive-deps-walk" {:upvalue-count 0 :arity 3 :constants ("contains?" "append!" "env-get" "type-of" "component" "island" {:upvalue-count 2 :arity 1 :constants ("transitive-deps-walk") :bytecode (20 0 0 16 0 18 0 18 1 49 3 50)} "scan-refs" "component-body" "for-each" "macro" "macro-body") :bytecode (16 1 16 0 52 0 0 2 167 33 115 0 16 1 16 0 52 1 0 2 5 16 2 16 0 52 2 0 2 17 3 16 3 52 3 0 1 1 4 0 164 6 34 11 0 5 16 3 52 3 0 1 1 5 0 164 33 25 0 51 6 0 1 1 1 2 20 7 0 16 3 52 8 0 1 48 1 52 9 0 2 32 40 0 16 3 52 3 0 1 1 10 0 164 33 26 0 51 6 0 1 1 1 2 20 7 0 20 11 0 16 3 48 1 48 1 52 9 0 2 32 1 0 2 32 1 0 2 50)} "transitive-deps" {:upvalue-count 0 :arity 2 :constants ("list" "~" "starts-with?" "str" "transitive-deps-walk" {:upvalue-count 1 :arity 1 :constants () :bytecode (16 0 18 0 164 167 50)} "filter") :bytecode (52 0 0 0 17 2 16 0 1 1 0 52 2 0 2 33 5 0 16 0 32 9 0 1 1 0 16 0 52 3 0 2 17 3 20 4 0 16 3 16 2 16 1 48 3 5 51 5 0 1 3 16 2 52 6 0 2 50)} "compute-all-deps" {:upvalue-count 0 :arity 1 :constants ({:upvalue-count 1 :arity 1 :constants ("env-get" "type-of" "component" "island" "component-set-deps!" "transitive-deps") :bytecode (18 0 16 0 52 0 0 2 17 1 16 1 52 1 0 1 1 2 0 164 6 34 11 0 5 16 1 52 1 0 1 1 3 0 164 33 19 0 20 4 0 16 1 20 5 0 16 0 18 0 48 2 49 2 32 1 0 2 50)} "env-components" "for-each") :bytecode (51 0 0 1 0 20 1 0 16 0 48 1 52 2 0 2 50)} "scan-components-from-source" {:upvalue-count 0 :arity 1 :constants ("\\(~([a-zA-Z_][a-zA-Z0-9_\\-:/]*)" "regex-find-all" {:upvalue-count 0 :arity 1 :constants ("~" "str") :bytecode (1 0 0 16 0 52 1 0 2 50)} "map") :bytecode (1 0 0 16 0 52 1 0 2 17 1 51 2 0 16 1 52 3 0 2 50)} "components-needed" {:upvalue-count 0 :arity 2 :constants ("scan-components-from-source" "list" {:upvalue-count 2 :arity 1 :constants ("contains?" "append!" "env-get" "type-of" "component" "component-deps" "empty?" "transitive-deps" {:upvalue-count 1 :arity 1 :constants ("contains?" "append!") :bytecode (18 0 16 0 52 0 0 2 167 33 11 0 18 0 16 0 52 1 0 2 32 1 0 2 50)} "for-each") :bytecode (18 0 16 0 52 0 0 2 167 33 11 0 18 0 16 0 52 1 0 2 32 1 0 2 5 18 1 16 0 52 2 0 2 17 1 16 1 52 3 0 1 1 4 0 164 6 33 13 0 5 20 5 0 16 1 48 1 52 6 0 1 167 33 10 0 20 5 0 16 1 48 1 32 9 0 20 7 0 16 0 18 1 48 2 17 2 51 8 0 0 0 16 2 52 9 0 2 50)} "for-each") :bytecode (20 0 0 16 0 48 1 17 2 52 1 0 0 17 3 51 2 0 1 3 1 1 16 2 52 3 0 2 5 16 3 50)} "page-component-bundle" {:upvalue-count 0 :arity 2 :constants ("components-needed") :bytecode (20 0 0 16 0 16 1 49 2 50)} "page-css-classes" {:upvalue-count 0 :arity 2 :constants ("components-needed" "list" {:upvalue-count 2 :arity 1 :constants ("env-get" "type-of" "component" {:upvalue-count 1 :arity 1 :constants ("contains?" "append!") :bytecode (18 0 16 0 52 0 0 2 167 33 11 0 18 0 16 0 52 1 0 2 32 1 0 2 50)} "component-css-classes" "for-each") :bytecode (18 0 16 0 52 0 0 2 17 1 16 1 52 1 0 1 1 2 0 164 33 19 0 51 3 0 0 1 20 4 0 16 1 48 1 52 5 0 2 32 1 0 2 50)} "for-each" {:upvalue-count 1 :arity 1 :constants ("contains?" "append!") :bytecode (18 0 16 0 52 0 0 2 167 33 11 0 18 0 16 0 52 1 0 2 32 1 0 2 50)} "scan-css-classes") :bytecode (20 0 0 16 0 16 1 48 2 17 2 52 1 0 0 17 3 51 2 0 1 1 1 3 16 2 52 3 0 2 5 51 4 0 1 3 20 5 0 16 0 48 1 52 3 0 2 5 16 3 50)} "scan-io-refs-walk" {:upvalue-count 0 :arity 3 :constants ("type-of" "symbol" "=" "symbol-name" "contains?" "append!" "list" {:upvalue-count 2 :arity 1 :constants ("scan-io-refs-walk") :bytecode (20 0 0 16 0 18 0 18 1 49 3 50)} "for-each" "dict" {:upvalue-count 3 :arity 1 :constants ("scan-io-refs-walk" "dict-get") :bytecode (20 0 0 18 0 16 0 52 1 0 2 18 1 18 2 49 3 50)} "keys") :bytecode (16 0 52 0 0 1 6 1 1 0 52 2 0 2 33 51 0 5 16 0 52 3 0 1 17 3 16 1 16 3 52 4 0 2 33 27 0 16 2 16 3 52 4 0 2 167 33 11 0 16 2 16 3 52 5 0 2 32 1 0 2 32 1 0 2 32 64 0 6 1 6 0 52 2 0 2 33 17 0 5 51 7 0 1 1 1 2 16 0 52 8 0 2 32 36 0 6 1 9 0 52 2 0 2 33 23 0 5 51 10 0 1 0 1 1 1 2 16 0 52 11 0 1 52 8 0 2 32 2 0 5 2 50)} "scan-io-refs" {:upvalue-count 0 :arity 2 :constants ("list" "scan-io-refs-walk") :bytecode (52 0 0 0 17 2 20 1 0 16 0 16 1 16 2 48 3 5 16 2 50)} "transitive-io-refs-walk" {:upvalue-count 0 :arity 5 :constants ("contains?" "append!" "env-get" "type-of" "component" {:upvalue-count 1 :arity 1 :constants ("contains?" "append!") :bytecode (18 0 16 0 52 0 0 2 167 33 11 0 18 0 16 0 52 1 0 2 32 1 0 2 50)} "scan-io-refs" "component-body" "for-each" {:upvalue-count 4 :arity 1 :constants ("transitive-io-refs-walk") :bytecode (20 0 0 16 0 18 0 18 1 18 2 18 3 49 5 50)} "scan-refs" "macro" "macro-body") :bytecode (16 1 16 0 52 0 0 2 167 33 155 0 16 1 16 0 52 1 0 2 5 16 3 16 0 52 2 0 2 17 5 16 5 52 3 0 1 1 4 0 164 33 52 0 51 5 0 1 2 20 6 0 16 5 52 7 0 1 16 4 48 2 52 8 0 2 5 51 9 0 1 1 1 2 1 3 1 4 20 10 0 16 5 52 7 0 1 48 1 52 8 0 2 32 68 0 16 5 52 3 0 1 1 11 0 164 33 54 0 51 5 0 1 2 20 6 0 20 12 0 16 5 48 1 16 4 48 2 52 8 0 2 5 51 9 0 1 1 1 2 1 3 1 4 20 10 0 20 12 0 16 5 48 1 48 1 52 8 0 2 32 1 0 2 32 1 0 2 50)} "transitive-io-refs" {:upvalue-count 0 :arity 3 :constants ("list" "~" "starts-with?" "str" "transitive-io-refs-walk") :bytecode (52 0 0 0 17 3 52 0 0 0 17 4 16 0 1 1 0 52 2 0 2 33 5 0 16 0 32 9 0 1 1 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)} "compute-all-io-refs" {:upvalue-count 0 :arity 2 :constants ({:upvalue-count 2 :arity 1 :constants ("env-get" "type-of" "component" "component-set-io-refs!" "transitive-io-refs") :bytecode (18 0 16 0 52 0 0 2 17 1 16 1 52 1 0 1 1 2 0 164 33 21 0 20 3 0 16 1 20 4 0 16 0 18 0 18 1 48 3 49 2 32 1 0 2 50)} "env-components" "for-each") :bytecode (51 0 0 1 0 1 1 20 1 0 16 0 48 1 52 2 0 2 50)} "component-io-refs-cached" {:upvalue-count 0 :arity 3 :constants ("~" "starts-with?" "str" "env-get" "type-of" "component" "component-io-refs" "nil?" "empty?" "transitive-io-refs") :bytecode (16 0 1 0 0 52 1 0 2 33 5 0 16 0 32 9 0 1 0 0 16 0 52 2 0 2 17 3 16 1 16 3 52 3 0 2 17 4 16 4 52 4 0 1 1 5 0 164 6 33 30 0 5 20 6 0 16 4 48 1 52 7 0 1 167 6 33 13 0 5 20 6 0 16 4 48 1 52 8 0 1 167 33 10 0 20 6 0 16 4 49 1 32 11 0 20 9 0 16 0 16 1 16 2 49 3 50)} "component-pure?" {:upvalue-count 0 :arity 3 :constants ("~" "starts-with?" "str" "env-has?" "env-get" "type-of" "component" "component-io-refs" "nil?" "empty?" "transitive-io-refs") :bytecode (16 0 1 0 0 52 1 0 2 33 5 0 16 0 32 9 0 1 0 0 16 0 52 2 0 2 17 3 16 1 16 3 52 3 0 2 33 11 0 16 1 16 3 52 4 0 2 32 1 0 2 17 4 16 4 52 5 0 1 1 6 0 164 6 33 30 0 5 20 7 0 16 4 48 1 52 8 0 1 167 6 33 13 0 5 20 7 0 16 4 48 1 52 9 0 1 167 33 4 0 4 32 15 0 20 10 0 16 0 16 1 16 2 48 3 52 9 0 1 50)} "render-target" {:upvalue-count 0 :arity 3 :constants ("~" "starts-with?" "str" "env-has?" "env-get" "type-of" "component" "server" "component-affinity" "client" "component-pure?") :bytecode (16 0 1 0 0 52 1 0 2 33 5 0 16 0 32 9 0 1 0 0 16 0 52 2 0 2 17 3 16 1 16 3 52 3 0 2 33 11 0 16 1 16 3 52 4 0 2 32 1 0 2 17 4 16 4 52 5 0 1 1 6 0 164 167 33 6 0 1 7 0 32 62 0 16 4 52 8 0 1 17 5 16 5 1 7 0 164 33 6 0 1 7 0 32 39 0 16 5 1 9 0 164 33 6 0 1 9 0 32 24 0 20 10 0 16 0 16 1 16 2 48 3 167 33 6 0 1 7 0 32 3 0 1 9 0 50)} "page-render-plan" {:upvalue-count 0 :arity 3 :constants ("components-needed" "dict" "list" {:upvalue-count 6 :arity 1 :constants ("render-target" "dict-set!" "server" "append!" {:upvalue-count 1 :arity 1 :constants ("contains?" "append!") :bytecode (18 0 16 0 52 0 0 2 167 33 11 0 18 0 16 0 52 1 0 2 32 1 0 2 50)} "component-io-refs-cached" "for-each") :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 2 0 164 33 32 0 18 3 16 0 52 3 0 2 5 51 4 0 0 4 20 5 0 16 0 18 0 18 1 48 3 52 6 0 2 32 8 0 18 5 16 0 52 3 0 2 50)} "for-each" "io-deps" "server" "components" "client") :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 3 0 1 1 1 2 1 4 1 5 1 7 1 6 16 3 52 4 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)} "env-components" {:upvalue-count 0 :arity 1 :constants ({:upvalue-count 1 :arity 1 :constants ("env-get" "component?" "macro?") :bytecode (18 0 16 0 52 0 0 2 17 1 16 1 52 1 0 1 6 34 7 0 5 16 1 52 2 0 1 50)} "keys" "filter") :bytecode (51 0 0 1 0 16 0 52 1 0 1 52 2 0 2 50)} {:library (web deps) :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 1 38 0 112 50)))
|