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.5 KiB
Plaintext
4 lines
7.5 KiB
Plaintext
(sxbc 1 "6966d1045353408c"
|
|
(code
|
|
:constants ("browser-location-href" {:upvalue-count 0 :arity 0 :constants ("dom-window" "location" "host-get" "href") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 52 2 0 2 50)} "browser-location-pathname" {:upvalue-count 0 :arity 0 :constants ("dom-window" "location" "host-get" "pathname") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 52 2 0 2 50)} "browser-location-origin" {:upvalue-count 0 :arity 0 :constants ("dom-window" "location" "host-get" "origin") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 52 2 0 2 50)} "browser-same-origin?" {:upvalue-count 0 :arity 1 :constants ("browser-location-origin" "starts-with?" "://" "string-contains?" "//") :bytecode (16 0 20 0 0 48 0 52 1 0 2 6 34 26 0 5 16 0 1 2 0 52 3 0 2 167 6 33 11 0 5 16 0 1 4 0 52 1 0 2 167 50)} "url-pathname" {:upvalue-count 0 :arity 1 :constants ("URL" "browser-location-origin" "host-new" "pathname" "host-get") :bytecode (1 0 0 16 0 20 1 0 48 0 52 2 0 3 1 3 0 52 4 0 2 50)} "browser-push-state" {:upvalue-count 0 :arity 3 :constants ("nil?" "dom-window" "history" "host-get" "pushState" "" "host-call") :bytecode (16 1 52 0 0 1 33 28 0 20 1 0 48 0 1 2 0 52 3 0 2 1 4 0 2 1 5 0 16 0 52 6 0 5 32 25 0 20 1 0 48 0 1 2 0 52 3 0 2 1 4 0 16 0 16 1 16 2 52 6 0 5 50)} "browser-replace-state" {:upvalue-count 0 :arity 3 :constants ("nil?" "dom-window" "history" "host-get" "replaceState" "" "host-call") :bytecode (16 1 52 0 0 1 33 28 0 20 1 0 48 0 1 2 0 52 3 0 2 1 4 0 2 1 5 0 16 0 52 6 0 5 32 25 0 20 1 0 48 0 1 2 0 52 3 0 2 1 4 0 16 0 16 1 16 2 52 6 0 5 50)} "browser-reload" {:upvalue-count 0 :arity 0 :constants ("dom-window" "location" "host-get" "reload" "host-call") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 52 4 0 2 50)} "browser-navigate" {:upvalue-count 0 :arity 1 :constants ("dom-window" "location" "host-get" "href" "host-set!") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 16 0 52 4 0 3 50)} "local-storage-get" {:upvalue-count 0 :arity 1 :constants ("dom-window" "localStorage" "host-get" "getItem" "host-call") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 16 0 52 4 0 3 50)} "local-storage-set" {:upvalue-count 0 :arity 2 :constants ("dom-window" "localStorage" "host-get" "setItem" "host-call") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 16 0 16 1 52 4 0 4 50)} "local-storage-remove" {:upvalue-count 0 :arity 1 :constants ("dom-window" "localStorage" "host-get" "removeItem" "host-call") :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 1 3 0 16 0 52 4 0 3 50)} "set-timeout" {:upvalue-count 0 :arity 2 :constants ("dom-window" "setTimeout" "host-callback" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 1 16 1 52 3 0 4 50)} "set-interval" {:upvalue-count 0 :arity 2 :constants ("dom-window" "setInterval" "host-callback" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 1 16 1 52 3 0 4 50)} "clear-timeout" {:upvalue-count 0 :arity 1 :constants ("dom-window" "clearTimeout" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 3 50)} "clear-interval" {:upvalue-count 0 :arity 1 :constants ("dom-window" "clearInterval" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 3 50)} "request-animation-frame" {:upvalue-count 0 :arity 1 :constants ("dom-window" "requestAnimationFrame" "host-callback" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 1 52 3 0 3 50)} "fetch-request" {:upvalue-count 0 :arity 2 :constants ("dom-window" "fetch" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 16 1 52 2 0 4 50)} "new-abort-controller" {:upvalue-count 0 :arity 0 :constants ("AbortController" "host-new") :bytecode (1 0 0 52 1 0 1 50)} "controller-signal" {:upvalue-count 0 :arity 1 :constants ("signal" "host-get") :bytecode (16 0 1 0 0 52 1 0 2 50)} "controller-abort" {:upvalue-count 0 :arity 1 :constants ("abort" "host-call") :bytecode (16 0 1 0 0 52 1 0 2 50)} "promise-then" {:upvalue-count 0 :arity 3 :constants ("host-callback" "then" "host-call" "catch") :bytecode (16 1 52 0 0 1 17 3 16 2 33 9 0 16 2 52 0 0 1 32 1 0 2 17 4 16 4 33 23 0 16 0 1 1 0 16 3 52 2 0 3 1 3 0 16 4 52 2 0 3 32 11 0 16 0 1 1 0 16 3 52 2 0 3 50)} "promise-resolve" {:upvalue-count 0 :arity 1 :constants ("Promise" "host-global" "resolve" "host-call") :bytecode (1 0 0 52 1 0 1 1 2 0 16 0 52 3 0 3 50)} "promise-delayed" {:upvalue-count 0 :arity 2 :constants ("Promise" {:upvalue-count 2 :arity 1 :constants ("set-timeout" {:upvalue-count 2 :arity 0 :constants ("call" "host-call") :bytecode (18 0 1 0 0 2 18 1 52 1 0 4 50)}) :bytecode (20 0 0 51 1 0 1 0 0 0 18 1 49 2 50)} "host-callback" "host-new") :bytecode (1 0 0 51 1 0 1 1 1 0 52 2 0 1 52 3 0 2 50)} "browser-confirm" {:upvalue-count 0 :arity 1 :constants ("dom-window" "confirm" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 3 50)} "browser-prompt" {:upvalue-count 0 :arity 2 :constants ("dom-window" "prompt" "host-call") :bytecode (20 0 0 48 0 1 1 0 16 0 16 1 52 2 0 4 50)} "browser-media-matches?" {:upvalue-count 0 :arity 1 :constants ("dom-window" "matchMedia" "host-call" "matches" "host-get") :bytecode (20 0 0 48 0 1 1 0 16 0 52 2 0 3 1 3 0 52 4 0 2 50)} "json-parse" {:upvalue-count 0 :arity 1 :constants ("JSON" "host-global" "parse" "host-call") :bytecode (1 0 0 52 1 0 1 1 2 0 16 0 52 3 0 3 50)} "log-info" {:upvalue-count 0 :arity 1 :constants ("console" "host-global" "log" "[sx] " "str" "host-call") :bytecode (1 0 0 52 1 0 1 1 2 0 1 3 0 16 0 52 4 0 2 52 5 0 3 50)} "log-warn" {:upvalue-count 0 :arity 1 :constants ("console" "host-global" "warn" "[sx] " "str" "host-call") :bytecode (1 0 0 52 1 0 1 1 2 0 1 3 0 16 0 52 4 0 2 52 5 0 3 50)} "console-log" "now-ms" {:upvalue-count 0 :arity 0 :constants ("Date" "host-global" "now" "host-call") :bytecode (1 0 0 52 1 0 1 1 2 0 52 3 0 2 50)} "schedule-idle" {:upvalue-count 0 :arity 1 :constants ({:upvalue-count 1 :arity 1 :constants () :bytecode (18 0 49 0 50)} "host-callback" "dom-window" "requestIdleCallback" "host-get" "host-call" "set-timeout" 0) :bytecode (51 0 0 1 0 52 1 0 1 17 1 20 2 0 48 0 1 3 0 52 4 0 2 33 17 0 20 2 0 48 0 1 3 0 16 1 52 5 0 3 32 10 0 20 6 0 16 1 1 7 0 49 2 50)} "set-cookie" {:upvalue-count 0 :arity 3 :constants (365 "Date" "host-global" "now" "host-call" 86400000 "host-new" "toUTCString" "dom-document" "cookie" "=" "encodeURIComponent" ";expires=" ";path=/;SameSite=Lax" "str" "host-set!") :bytecode (16 2 6 34 4 0 5 1 0 0 17 3 1 1 0 1 1 0 52 2 0 1 1 3 0 52 4 0 2 16 3 1 5 0 162 160 52 6 0 2 1 7 0 52 4 0 2 17 4 20 8 0 48 0 1 9 0 16 0 1 10 0 2 1 11 0 16 1 52 4 0 3 1 12 0 16 4 1 13 0 52 14 0 6 52 15 0 3 50)} "get-cookie" {:upvalue-count 0 :arity 1 :constants ("dom-document" "cookie" "host-get" "match" "RegExp" "(?:^|;\\s*)" "=([^;]*)" "str" "host-new" "host-call" "decodeURIComponent" 1) :bytecode (20 0 0 48 0 1 1 0 52 2 0 2 17 1 16 1 1 3 0 1 4 0 1 5 0 16 0 1 6 0 52 7 0 3 52 8 0 2 52 9 0 3 17 2 16 2 33 20 0 2 1 10 0 16 2 1 11 0 52 2 0 2 52 9 0 3 32 1 0 2 50)} "json-stringify" {:upvalue-count 0 :arity 1 :constants ("JSON" "host-global" "stringify" "host-call") :bytecode (1 0 0 52 1 0 1 1 2 0 16 0 52 3 0 3 50)} {:library (sx browser) :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 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 57 0 128 60 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 1 71 0 112 50)))
|