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
7.0 KiB
Plaintext
4 lines
7.0 KiB
Plaintext
(sxbc 1 "e5ab6de45810b40f"
|
|
(code
|
|
:constants ("make-signal" {:upvalue-count 0 :arity 1 :constants ("__signal" "value" "subscribers" "list" "deps" "dict") :bytecode (1 0 0 3 1 1 0 16 0 1 2 0 52 3 0 0 1 4 0 52 3 0 0 52 5 0 8 50)} "signal?" {:upvalue-count 0 :arity 1 :constants ("dict?" "__signal" "has-key?") :bytecode (16 0 52 0 0 1 6 33 10 0 5 16 0 1 1 0 52 2 0 2 50)} "signal-value" {:upvalue-count 0 :arity 1 :constants ("value" "get") :bytecode (16 0 1 0 0 52 1 0 2 50)} "signal-set-value!" {:upvalue-count 0 :arity 2 :constants ("value" "dict-set!") :bytecode (16 0 1 0 0 16 1 52 1 0 3 50)} "signal-subscribers" {:upvalue-count 0 :arity 1 :constants ("subscribers" "get") :bytecode (16 0 1 0 0 52 1 0 2 50)} "signal-add-sub!" {:upvalue-count 0 :arity 2 :constants ("subscribers" "get" "contains?" "list" "append" "dict-set!") :bytecode (16 0 1 0 0 52 1 0 2 16 1 52 2 0 2 167 33 31 0 16 0 1 0 0 16 0 1 0 0 52 1 0 2 16 1 52 3 0 1 52 4 0 2 52 5 0 3 32 1 0 2 50)} "signal-remove-sub!" {:upvalue-count 0 :arity 2 :constants ("subscribers" {:upvalue-count 1 :arity 1 :constants ("identical?") :bytecode (16 0 18 0 52 0 0 2 167 50)} "get" "filter" "dict-set!") :bytecode (16 0 1 0 0 51 1 0 1 1 16 0 1 0 0 52 2 0 2 52 3 0 2 52 4 0 3 50)} "signal-deps" {:upvalue-count 0 :arity 1 :constants ("deps" "get") :bytecode (16 0 1 0 0 52 1 0 2 50)} "signal-set-deps!" {:upvalue-count 0 :arity 2 :constants ("deps" "dict-set!") :bytecode (16 0 1 0 0 16 1 52 1 0 3 50)} "signal" {:upvalue-count 0 :arity 1 :constants ("make-signal") :bytecode (20 0 0 16 0 49 1 50)} "deref" {:upvalue-count 0 :arity 1 :constants ("signal?" "sx-reactive" "context" "notify" "get" "deps" "contains?" "append!" "signal-add-sub!" "signal-value") :bytecode (20 0 0 16 0 48 1 167 33 5 0 16 0 32 83 0 1 1 0 2 52 2 0 2 17 1 16 1 33 59 0 16 1 1 3 0 52 4 0 2 17 2 16 1 1 5 0 52 4 0 2 17 3 16 3 16 0 52 6 0 2 167 33 21 0 16 3 16 0 52 7 0 2 5 20 8 0 16 0 16 2 48 2 32 1 0 2 32 1 0 2 5 20 9 0 16 0 49 1 50)} "reset!" {:upvalue-count 0 :arity 2 :constants ("signal?" "signal-value" "identical?" "signal-set-value!" "notify-subscribers") :bytecode (20 0 0 16 0 48 1 33 45 0 20 1 0 16 0 48 1 17 2 16 2 16 1 52 2 0 2 167 33 20 0 20 3 0 16 0 16 1 48 2 5 20 4 0 16 0 49 1 32 1 0 2 32 1 0 2 50)} "swap!" {:upvalue-count 0 :arity 3 :constants ("signal?" "signal-value" "apply" "trampoline" "identical?" "signal-set-value!" "notify-subscribers") :rest-arity 2 :bytecode (20 0 0 16 0 48 1 33 62 0 20 1 0 16 0 48 1 17 3 16 1 16 3 16 2 172 52 2 0 2 52 3 0 1 17 4 16 3 16 4 52 4 0 2 167 33 20 0 20 5 0 16 0 16 4 48 2 5 20 6 0 16 0 49 1 32 1 0 2 32 1 0 2 50)} "computed" {:upvalue-count 0 :arity 1 :constants ("make-signal" "list" {:upvalue-count 3 :arity 0 :constants ({:upvalue-count 1 :arity 1 :constants ("signal-remove-sub!") :bytecode (20 0 0 16 0 18 0 49 2 50)} "signal-deps" "for-each" "signal-set-deps!" "list" "deps" "notify" "dict" "sx-reactive" "scope-push!" "cek-call" "scope-pop!" "get" "signal-value" "signal-set-value!" "identical?" "notify-subscribers") :bytecode (51 0 0 0 0 20 1 0 18 1 48 1 52 2 0 2 5 20 3 0 18 1 52 4 0 0 48 2 5 1 5 0 52 4 0 0 1 6 0 18 0 52 7 0 4 17 0 1 8 0 16 0 52 9 0 2 5 18 2 2 52 10 0 2 17 1 1 8 0 52 11 0 1 5 20 3 0 18 1 16 0 1 5 0 52 12 0 2 48 2 5 20 13 0 18 1 48 1 17 2 20 14 0 18 1 16 1 48 2 5 16 2 16 1 52 15 0 2 167 33 10 0 20 16 0 18 1 49 1 32 1 0 2 50)} "register-in-scope" {:upvalue-count 1 :arity 0 :constants ("dispose-computed") :bytecode (20 0 0 18 0 49 1 50)}) :bytecode (20 0 0 2 48 1 17 1 52 1 0 0 17 2 2 17 3 2 17 4 51 2 0 1 4 1 1 1 0 17 4 16 4 48 0 5 20 3 0 51 4 0 1 1 48 1 5 16 1 50)} "effect" {:upvalue-count 0 :arity 1 :constants ("list" {:upvalue-count 5 :arity 0 :constants ("cek-call" {:upvalue-count 1 :arity 1 :constants ("signal-remove-sub!") :bytecode (20 0 0 16 0 18 0 49 2 50)} "for-each" "list" "deps" "notify" "dict" "sx-reactive" "scope-push!" "scope-pop!" "get" "callable?") :bytecode (18 0 167 33 114 0 18 1 33 10 0 18 1 2 52 0 0 2 32 1 0 2 5 51 1 0 0 2 18 3 52 2 0 2 5 52 3 0 0 19 3 5 1 4 0 52 3 0 0 1 5 0 18 2 52 6 0 4 17 0 1 7 0 16 0 52 8 0 2 5 18 4 2 52 0 0 2 17 1 1 7 0 52 9 0 1 5 16 0 1 4 0 52 10 0 2 19 3 5 20 11 0 16 1 48 1 33 7 0 16 1 19 1 32 1 0 2 32 1 0 2 50)} {:upvalue-count 4 :arity 0 :constants ("cek-call" {:upvalue-count 1 :arity 1 :constants ("signal-remove-sub!") :bytecode (20 0 0 16 0 18 0 49 2 50)} "for-each" "list") :bytecode (3 19 0 5 18 1 33 10 0 18 1 2 52 0 0 2 32 1 0 2 5 51 1 0 0 2 18 3 52 2 0 2 5 52 3 0 0 19 3 50)} "register-in-scope") :bytecode (52 0 0 0 17 1 4 17 2 2 17 3 2 17 4 51 1 0 1 2 1 3 1 4 1 1 1 0 17 4 16 4 48 0 5 51 2 0 1 2 1 3 1 4 1 1 17 5 20 3 0 16 5 48 1 5 16 5 50)} "*batch-depth*" 0 "*batch-queue*" "list" "batch" {:upvalue-count 0 :arity 1 :constants ("*batch-depth*" 1 "client?" "batch-begin!" "cek-call" 0 "*batch-queue*" "list" {:upvalue-count 2 :arity 1 :constants ({:upvalue-count 2 :arity 1 :constants ("contains?" "append!") :bytecode (18 0 16 0 52 0 0 2 167 33 20 0 18 0 16 0 52 1 0 2 5 18 1 16 0 52 1 0 2 32 1 0 2 50)} "signal-subscribers" "for-each") :bytecode (51 0 0 0 0 0 1 20 1 0 16 0 48 1 52 2 0 2 50)} "for-each" {:upvalue-count 0 :arity 1 :constants () :bytecode (16 0 49 0 50)} "batch-end!") :bytecode (20 0 0 1 1 0 160 21 0 0 5 52 2 0 0 167 33 8 0 20 3 0 48 0 32 1 0 2 5 16 0 2 52 4 0 2 5 20 0 0 1 1 0 161 21 0 0 5 20 0 0 1 5 0 164 33 51 0 20 6 0 17 1 52 7 0 0 21 6 0 5 52 7 0 0 17 2 52 7 0 0 17 3 51 8 0 1 2 1 3 16 1 52 9 0 2 5 51 10 0 16 3 52 9 0 2 32 1 0 2 5 52 2 0 0 167 33 8 0 20 11 0 49 0 32 1 0 2 50)} "notify-subscribers" {:upvalue-count 0 :arity 1 :constants ("*batch-depth*" 0 "*batch-queue*" "contains?" "append!" "flush-subscribers") :bytecode (20 0 0 1 1 0 166 33 29 0 20 2 0 16 0 52 3 0 2 167 33 12 0 20 2 0 16 0 52 4 0 2 32 1 0 2 32 7 0 20 5 0 16 0 49 1 50)} "flush-subscribers" {:upvalue-count 0 :arity 1 :constants ({:upvalue-count 0 :arity 1 :constants ("cek-call") :bytecode (16 0 2 52 0 0 2 50)} "signal-subscribers" "for-each") :bytecode (51 0 0 20 1 0 16 0 48 1 52 2 0 2 50)} "dispose-computed" {:upvalue-count 0 :arity 1 :constants ("signal?" {:upvalue-count 0 :arity 1 :constants ("signal-remove-sub!") :bytecode (20 0 0 16 0 2 49 2 50)} "signal-deps" "for-each" "signal-set-deps!" "list") :bytecode (20 0 0 16 0 48 1 33 29 0 51 1 0 20 2 0 16 0 48 1 52 3 0 2 5 20 4 0 16 0 52 5 0 0 49 2 32 1 0 2 50)} "with-island-scope" {:upvalue-count 0 :arity 2 :constants ("sx-island-scope" "scope-push!" "scope-pop!") :bytecode (1 0 0 16 0 52 1 0 2 5 16 1 48 0 17 2 1 0 0 52 2 0 1 5 16 2 50)} "register-in-scope" {:upvalue-count 0 :arity 1 :constants ("sx-island-scope" "scope-peek" "list" "cek-call") :bytecode (1 0 0 52 1 0 1 17 1 16 1 33 15 0 16 1 16 0 52 2 0 1 52 3 0 2 32 1 0 2 50)} {:library (sx signals) :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 1 31 0 128 30 0 5 52 33 0 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 1 46 0 112 50)))
|