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.2 KiB
Plaintext
4 lines
7.2 KiB
Plaintext
(sxbc 1 "a46bdc825a390880"
|
|
(code
|
|
:constants ("assert" {:upvalue-count 0 :arity 2 :constants ("Assertion failed" "error") :bytecode (16 0 167 33 17 0 16 1 6 34 4 0 5 1 0 0 52 1 0 1 32 1 0 2 50)} "assert=" {:upvalue-count 0 :arity 3 :constants ("Expected " ", got " "str" "error") :bytecode (16 0 16 1 164 167 33 28 0 16 2 6 34 15 0 5 1 0 0 16 1 1 1 0 16 0 52 2 0 4 52 3 0 1 32 1 0 2 50)} "default-platform" "current-user" {:upvalue-count 0 :arity 0 :constants () :bytecode (2 50)} "csrf-token" {:upvalue-count 0 :arity 0 :constants ("test-csrf-token") :bytecode (1 0 0 50)} "app-url" {:upvalue-count 0 :arity 2 :constants ("/mock-app-url") :rest-arity 1 :bytecode (1 0 0 50)} "frag" {:upvalue-count 0 :arity 3 :constants ("") :rest-arity 2 :bytecode (1 0 0 50)} "sleep" {:upvalue-count 0 :arity 1 :constants () :bytecode (2 50)} "local-storage-set" {:upvalue-count 0 :arity 2 :constants () :bytecode (2 50)} "set-cookie" {:upvalue-count 0 :arity 3 :constants () :rest-arity 2 :bytecode (2 50)} "url-for" {:upvalue-count 0 :arity 2 :constants ("/mock-url") :rest-arity 1 :bytecode (1 0 0 50)} "create-element" "request-path" {:upvalue-count 0 :arity 0 :constants ("/") :bytecode (1 0 0 50)} "config" "set-attr" {:upvalue-count 0 :arity 3 :constants () :bytecode (2 50)} "set-text" "remove-child" "fetch" {:upvalue-count 0 :arity 2 :constants ("status" 200 "body" "" "ok") :rest-arity 1 :bytecode (1 0 0 1 1 0 1 2 0 1 3 0 1 4 0 3 65 3 0 50)} "query" {:upvalue-count 0 :arity 3 :constants ("list") :rest-arity 2 :bytecode (52 0 0 0 50)} "add-class" "get-element" "now" {:upvalue-count 0 :arity 0 :constants (0) :bytecode (1 0 0 50)} "abort" "action" {:upvalue-count 0 :arity 3 :constants ("ok") :rest-arity 2 :bytecode (1 0 0 3 65 1 0 50)} "remove-class" "append-child" "request-arg" "emit-dom" {:upvalue-count 0 :arity 2 :constants () :rest-arity 1 :bytecode (2 50)} "local-storage-get" "get-cookie" "make-harness" {:upvalue-count 0 :arity 1 :constants ("nil?" "default-platform" "merge" "log" "list" "platform" "state" "cookies" "storage" "dom") :bytecode (16 0 52 0 0 1 33 6 0 20 1 0 32 9 0 20 1 0 16 0 52 2 0 2 17 1 1 3 0 52 4 0 0 1 5 0 16 1 1 6 0 1 7 0 65 0 0 1 8 0 65 0 0 1 9 0 2 65 3 0 65 3 0 50)} "harness-reset!" {:upvalue-count 0 :arity 1 :constants ("log" "list" "dict-set!" "state" "cookies" "storage" "dom") :bytecode (16 0 1 0 0 52 1 0 0 52 2 0 3 5 16 0 1 3 0 1 4 0 65 0 0 1 5 0 65 0 0 1 6 0 2 65 3 0 52 2 0 3 5 16 0 50)} "harness-log" {:upvalue-count 0 :arity 2 :constants ("log" "get" "nil?" {:upvalue-count 1 :arity 1 :constants ("op" "get") :bytecode (16 0 1 0 0 52 1 0 2 18 0 164 50)} "filter") :bytecode (16 0 1 0 0 52 1 0 2 17 2 16 1 52 2 0 1 33 5 0 16 2 32 11 0 51 3 0 1 1 16 2 52 4 0 2 50)} "harness-get" {:upvalue-count 0 :arity 2 :constants ("state" "get") :bytecode (16 0 1 0 0 52 1 0 2 16 1 52 1 0 2 50)} "harness-set!" {:upvalue-count 0 :arity 3 :constants ("state" "get" "dict-set!") :bytecode (16 0 1 0 0 52 1 0 2 16 1 16 2 52 2 0 3 5 2 50)} "make-interceptor" {:upvalue-count 0 :arity 3 :constants ({:upvalue-count 3 :arity 1 :constants ("empty?" 1 2 "nth" 3 "apply" "log" "get" "args" "result" "op" "append!") :rest-arity 0 :bytecode (16 0 52 0 0 1 33 7 0 18 0 48 0 32 95 0 1 1 0 16 0 168 164 33 10 0 18 0 16 0 169 48 1 32 75 0 1 2 0 16 0 168 164 33 19 0 18 0 16 0 169 16 0 1 1 0 52 3 0 2 48 2 32 46 0 1 4 0 16 0 168 164 33 28 0 18 0 16 0 169 16 0 1 1 0 52 3 0 2 16 0 1 2 0 52 3 0 2 48 3 32 8 0 18 0 16 0 52 5 0 2 17 1 18 1 1 6 0 52 7 0 2 17 2 16 2 1 8 0 16 0 1 9 0 16 1 1 10 0 18 2 65 3 0 52 11 0 2 5 16 1 50)}) :bytecode (51 0 0 1 2 1 0 1 1 50)} "install-interceptors" {:upvalue-count 0 :arity 2 :constants ({:upvalue-count 2 :arity 1 :constants ("platform" "get" "make-interceptor" "env-bind!") :bytecode (18 0 1 0 0 52 1 0 2 16 0 52 1 0 2 17 1 20 2 0 18 0 16 0 16 1 48 3 17 2 18 1 16 0 16 2 52 3 0 3 50)} "platform" "get" "keys" "for-each") :bytecode (51 0 0 1 0 1 1 16 0 1 1 0 52 2 0 2 52 3 0 1 52 4 0 2 5 16 1 50)} "io-calls" {:upvalue-count 0 :arity 2 :constants ({:upvalue-count 1 :arity 1 :constants ("op" "get") :bytecode (16 0 1 0 0 52 1 0 2 18 0 164 50)} "log" "get" "filter") :bytecode (51 0 0 1 1 16 0 1 1 0 52 2 0 2 52 3 0 2 50)} "io-call-count" {:upvalue-count 0 :arity 2 :constants ("io-calls") :bytecode (20 0 0 16 0 16 1 48 2 168 50)} "io-call-nth" {:upvalue-count 0 :arity 3 :constants ("io-calls" "nth") :bytecode (20 0 0 16 0 16 1 48 2 17 3 16 2 16 3 168 165 33 11 0 16 3 16 2 52 1 0 2 32 1 0 2 50)} "io-call-args" {:upvalue-count 0 :arity 3 :constants ("io-call-nth" "nil?" "args" "get") :bytecode (20 0 0 16 0 16 1 16 2 48 3 17 3 16 3 52 1 0 1 33 4 0 2 32 9 0 16 3 1 2 0 52 3 0 2 50)} "io-call-result" {:upvalue-count 0 :arity 3 :constants ("io-call-nth" "nil?" "result" "get") :bytecode (20 0 0 16 0 16 1 16 2 48 3 17 3 16 3 52 1 0 1 33 4 0 2 32 9 0 16 3 1 2 0 52 3 0 2 50)} "assert-io-called" {:upvalue-count 0 :arity 2 :constants ("assert" "io-call-count" 0 "Expected IO operation " " to be called but it was not" "str") :bytecode (20 0 0 20 1 0 16 0 16 1 48 2 1 2 0 166 1 3 0 16 1 1 4 0 52 5 0 3 49 2 50)} "assert-no-io" {:upvalue-count 0 :arity 2 :constants ("assert" "io-call-count" 0 "Expected IO operation " " not to be called but it was called " " time(s)" "str") :bytecode (20 0 0 20 1 0 16 0 16 1 48 2 1 2 0 164 1 3 0 16 1 1 4 0 20 1 0 16 0 16 1 48 2 1 5 0 52 6 0 5 49 2 50)} "assert-io-count" {:upvalue-count 0 :arity 3 :constants ("io-call-count" "assert" "Expected " " to be called " " time(s) but was called " " time(s)" "str") :bytecode (20 0 0 16 0 16 1 48 2 17 3 20 1 0 16 3 16 2 164 1 2 0 16 1 1 3 0 16 2 1 4 0 16 3 1 5 0 52 6 0 7 49 2 50)} "assert-io-args" {:upvalue-count 0 :arity 4 :constants ("io-call-args" "assert" "equal?" "Expected call " " to " " with args " "str" " but got ") :bytecode (20 0 0 16 0 16 1 16 2 48 3 17 4 20 1 0 16 4 16 3 52 2 0 2 1 3 0 16 2 1 4 0 16 1 1 5 0 16 3 52 6 0 1 1 7 0 16 4 52 6 0 1 52 6 0 8 49 2 50)} "assert-io-result" {:upvalue-count 0 :arity 4 :constants ("io-call-result" "assert" "equal?" "Expected call " " to " " to return " "str" " but got ") :bytecode (20 0 0 16 0 16 1 16 2 48 3 17 4 20 1 0 16 4 16 3 52 2 0 2 1 3 0 16 2 1 4 0 16 1 1 5 0 16 3 52 6 0 1 1 7 0 16 4 52 6 0 1 52 6 0 8 49 2 50)} "assert-state" {:upvalue-count 0 :arity 3 :constants ("harness-get" "assert" "equal?" "Expected state " " to be " "str" " but got ") :bytecode (20 0 0 16 0 16 1 48 2 17 3 20 1 0 16 3 16 2 52 2 0 2 1 3 0 16 1 1 4 0 16 2 52 5 0 1 1 6 0 16 3 52 5 0 1 52 5 0 6 49 2 50)} {:library (sx harness) :op "import"}) :bytecode (51 1 0 128 0 0 5 51 3 0 128 2 0 5 1 5 0 51 6 0 1 7 0 51 8 0 1 9 0 51 10 0 1 11 0 51 12 0 1 13 0 51 14 0 1 15 0 51 16 0 1 17 0 51 18 0 1 19 0 51 20 0 1 21 0 51 14 0 1 22 0 51 23 0 1 24 0 51 14 0 1 25 0 51 26 0 1 27 0 51 16 0 1 28 0 51 16 0 1 29 0 51 30 0 1 31 0 51 32 0 1 33 0 51 16 0 1 34 0 51 14 0 1 35 0 51 36 0 1 37 0 51 14 0 1 38 0 51 39 0 1 40 0 51 16 0 1 41 0 51 16 0 1 42 0 51 14 0 1 43 0 51 44 0 1 45 0 51 14 0 1 46 0 51 14 0 65 27 0 128 4 0 5 51 48 0 128 47 0 5 51 50 0 128 49 0 5 51 52 0 128 51 0 5 51 54 0 128 53 0 5 51 56 0 128 55 0 5 51 58 0 128 57 0 5 51 60 0 128 59 0 5 51 62 0 128 61 0 5 51 64 0 128 63 0 5 51 66 0 128 65 0 5 51 68 0 128 67 0 5 51 70 0 128 69 0 5 51 72 0 128 71 0 5 51 74 0 128 73 0 5 51 76 0 128 75 0 5 51 78 0 128 77 0 5 51 80 0 128 79 0 5 51 82 0 128 81 0 5 1 83 0 112 50)))
|