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
8.0 KiB
Plaintext
4 lines
8.0 KiB
Plaintext
(sxbc 1 "15a4c62d284eb955"
|
|
(code
|
|
:constants ("HTML_TAGS" "html" "head" "body" "title" "meta" "link" "script" "style" "noscript" "header" "nav" "main" "section" "article" "aside" "footer" "h1" "h2" "h3" "h4" "h5" "h6" "hgroup" "div" "p" "blockquote" "pre" "figure" "figcaption" "address" "details" "summary" "a" "span" "em" "strong" "small" "b" "i" "u" "s" "mark" "sub" "sup" "abbr" "cite" "code" "kbd" "samp" "var" "time" "br" "wbr" "hr" "ul" "ol" "li" "dl" "dt" "dd" "table" "thead" "tbody" "tfoot" "tr" "th" "td" "caption" "colgroup" "col" "form" "input" "textarea" "select" "option" "optgroup" "button" "label" "fieldset" "legend" "output" "datalist" "img" "video" "audio" "source" "picture" "canvas" "iframe" "svg" "math" "path" "circle" "ellipse" "rect" "line" "polyline" "polygon" "text" "tspan" "g" "defs" "use" "clipPath" "mask" "pattern" "linearGradient" "radialGradient" "stop" "filter" "feGaussianBlur" "feOffset" "feBlend" "feColorMatrix" "feComposite" "feMerge" "feMergeNode" "feTurbulence" "feComponentTransfer" "feFuncR" "feFuncG" "feFuncB" "feFuncA" "feDisplacementMap" "feFlood" "feImage" "feMorphology" "feSpecularLighting" "feDiffuseLighting" "fePointLight" "feSpotLight" "feDistantLight" "animate" "animateTransform" "foreignObject" "template" "slot" "dialog" "menu" "list" "VOID_ELEMENTS" "area" "base" "embed" "param" "track" "BOOLEAN_ATTRS" "async" "autofocus" "autoplay" "checked" "controls" "default" "defer" "disabled" "formnovalidate" "hidden" "inert" "ismap" "loop" "multiple" "muted" "nomodule" "novalidate" "open" "playsinline" "readonly" "required" "reversed" "selected" "*definition-form-extensions*" "definition-form?" {:upvalue-count 0 :arity 1 :constants ("define" "defcomp" "defisland" "defmacro" "defstyle" "deftype" "defeffect" "*definition-form-extensions*" "contains?") :bytecode (16 0 1 0 0 164 6 34 76 0 5 16 0 1 1 0 164 6 34 65 0 5 16 0 1 2 0 164 6 34 54 0 5 16 0 1 3 0 164 6 34 43 0 5 16 0 1 4 0 164 6 34 32 0 5 16 0 1 5 0 164 6 34 21 0 5 16 0 1 6 0 164 6 34 10 0 5 20 7 0 16 0 52 8 0 2 50)} "parse-element-args" {:upvalue-count 0 :arity 2 :constants ("dict" "list" {:upvalue-count 4 :arity 2 :constants ("skip" "get" "i" "inc" "assoc" "type-of" "keyword" "nth" "eval-expr" "trampoline" "keyword-name" "dict-set!" "append!") :bytecode (16 0 1 0 0 52 1 0 2 17 2 16 2 33 29 0 16 0 1 0 0 4 1 2 0 16 0 1 2 0 52 1 0 2 52 3 0 1 52 4 0 5 32 141 0 16 1 52 5 0 1 1 6 0 164 6 33 18 0 5 16 0 1 2 0 52 1 0 2 52 3 0 1 18 0 168 165 33 75 0 18 0 16 0 1 2 0 52 1 0 2 52 3 0 1 52 7 0 2 18 1 52 8 0 2 52 9 0 1 17 3 18 2 16 1 52 10 0 1 16 3 52 11 0 3 5 16 0 1 0 0 3 1 2 0 16 0 1 2 0 52 1 0 2 52 3 0 1 52 4 0 5 32 31 0 18 3 16 1 52 12 0 2 5 16 0 1 2 0 16 0 1 2 0 52 1 0 2 52 3 0 1 52 4 0 3 50)} "i" 0 "skip" "reduce") :bytecode (52 0 0 0 17 2 52 1 0 0 17 3 51 2 0 1 0 1 1 1 2 1 3 1 3 0 1 4 0 1 5 0 4 52 0 0 4 16 0 52 6 0 3 5 16 2 16 3 52 1 0 2 50)} "render-attrs" {:upvalue-count 0 :arity 1 :constants ("" {:upvalue-count 1 :arity 1 :constants ("dict-get" "BOOLEAN_ATTRS" "contains?" " " "str" "" "nil?" "=\"" "escape-attr" "\"") :bytecode (18 0 16 0 52 0 0 2 17 1 20 1 0 16 0 52 2 0 2 6 33 3 0 5 16 1 33 12 0 1 3 0 16 0 52 4 0 2 32 67 0 20 1 0 16 0 52 2 0 2 6 33 4 0 5 16 1 167 33 6 0 1 5 0 32 41 0 16 1 52 6 0 1 33 6 0 1 5 0 32 26 0 1 3 0 16 0 1 7 0 20 8 0 16 1 52 4 0 1 48 1 1 9 0 52 4 0 5 50)} "keys" "map" "join") :bytecode (1 0 0 51 1 0 1 0 16 0 52 2 0 1 52 3 0 2 52 4 0 2 50)} "eval-cond" {:upvalue-count 0 :arity 2 :constants ("cond-scheme?" "eval-cond-scheme" "eval-cond-clojure") :bytecode (16 0 52 0 0 1 33 12 0 20 1 0 16 0 16 1 49 2 32 9 0 20 2 0 16 0 16 1 49 2 50)} "eval-cond-scheme" {:upvalue-count 0 :arity 2 :constants ("empty?" 1 "nth" "is-else-clause?" "eval-expr" "trampoline" "eval-cond-scheme") :bytecode (16 0 52 0 0 1 33 4 0 2 32 65 0 16 0 169 17 2 16 2 169 17 3 16 2 1 1 0 52 2 0 2 17 4 16 3 52 3 0 1 33 5 0 16 4 32 30 0 16 3 16 1 52 4 0 2 52 5 0 1 33 5 0 16 4 32 10 0 20 6 0 16 0 170 16 1 49 2 50)} "eval-cond-clojure" {:upvalue-count 0 :arity 2 :constants (2 1 "nth" "is-else-clause?" "eval-expr" "trampoline" "eval-cond-clojure" "slice") :bytecode (16 0 168 1 0 0 165 33 4 0 2 32 66 0 16 0 169 17 2 16 0 1 1 0 52 2 0 2 17 3 16 2 52 3 0 1 33 5 0 16 3 32 36 0 16 2 16 1 52 4 0 2 52 5 0 1 33 5 0 16 3 32 16 0 20 6 0 16 0 1 0 0 52 7 0 2 16 1 49 2 50)} "process-bindings" {:upvalue-count 0 :arity 2 :constants ("env-extend" {:upvalue-count 1 :arity 1 :constants ("type-of" "list" 2 ">=" "symbol" "symbol-name" "str" 1 "nth" "eval-expr" "trampoline" "env-bind!") :bytecode (16 0 52 0 0 1 1 1 0 164 6 33 11 0 5 16 0 168 1 2 0 52 3 0 2 33 63 0 16 0 169 52 0 0 1 1 4 0 164 33 10 0 16 0 169 52 5 0 1 32 7 0 16 0 169 52 6 0 1 17 1 18 0 16 1 16 0 1 7 0 52 8 0 2 18 0 52 9 0 2 52 10 0 1 52 11 0 3 32 1 0 2 50)} "for-each") :bytecode (16 1 52 0 0 1 17 2 51 1 0 1 2 16 0 52 2 0 2 5 16 2 50)} "is-render-expr?" {:upvalue-count 0 :arity 1 :constants ("type-of" "list" "empty?" "symbol" "symbol-name" "<>" "raw!" "~" "starts-with?" "html:" "HTML_TAGS" "contains?" "-" "index-of" 0 1 "nth" "keyword") :bytecode (16 0 52 0 0 1 1 1 0 164 167 6 34 7 0 5 16 0 52 2 0 1 33 4 0 4 32 142 0 16 0 169 17 1 16 1 52 0 0 1 1 3 0 164 167 33 4 0 4 32 119 0 16 1 52 4 0 1 17 2 16 2 1 5 0 164 6 34 101 0 5 16 2 1 6 0 164 6 34 90 0 5 16 2 1 7 0 52 8 0 2 6 34 76 0 5 16 2 1 9 0 52 8 0 2 6 34 62 0 5 20 10 0 16 2 52 11 0 2 6 34 48 0 5 16 2 1 12 0 52 13 0 2 1 14 0 166 6 33 30 0 5 16 0 168 1 15 0 166 6 33 18 0 5 16 0 1 15 0 52 16 0 2 52 0 0 1 1 17 0 164 50)} "merge-spread-attrs" {:upvalue-count 0 :arity 2 :constants ({:upvalue-count 2 :arity 1 :constants ("dict-get" "class" "" " " "str" "dict-set!" "style" ";") :bytecode (18 0 16 0 52 0 0 2 17 1 16 0 1 1 0 164 33 56 0 18 1 1 1 0 52 0 0 2 17 2 18 1 1 1 0 16 2 6 33 8 0 5 16 2 1 2 0 164 167 33 14 0 16 2 1 3 0 16 1 52 4 0 3 32 2 0 16 1 52 5 0 3 32 75 0 16 0 1 6 0 164 33 56 0 18 1 1 6 0 52 0 0 2 17 2 18 1 1 6 0 16 2 6 33 8 0 5 16 2 1 2 0 164 167 33 14 0 16 2 1 7 0 16 1 52 4 0 3 32 2 0 16 1 52 5 0 3 32 10 0 18 1 16 0 16 1 52 5 0 3 50)} "keys" "for-each") :bytecode (51 0 0 1 1 1 0 16 1 52 1 0 1 52 2 0 2 50)} "escape-html" {:upvalue-count 0 :arity 1 :constants ("str" "&" "&" "replace" "<" "<" ">" ">" "\"" """) :bytecode (16 0 52 0 0 1 17 1 16 1 1 1 0 1 2 0 52 3 0 3 17 1 5 16 1 1 4 0 1 5 0 52 3 0 3 17 1 5 16 1 1 6 0 1 7 0 52 3 0 3 17 1 5 16 1 1 8 0 1 9 0 52 3 0 3 17 1 5 16 1 50)} "escape-attr" {:upvalue-count 0 :arity 1 :constants ("escape-html") :bytecode (20 0 0 16 0 49 1 50)} {:library (sx render) :op "import"}) :bytecode (1 1 0 1 2 0 1 3 0 1 4 0 1 5 0 1 6 0 1 7 0 1 8 0 1 9 0 1 10 0 1 11 0 1 12 0 1 13 0 1 14 0 1 15 0 1 16 0 1 17 0 1 18 0 1 19 0 1 20 0 1 21 0 1 22 0 1 23 0 1 24 0 1 25 0 1 26 0 1 27 0 1 28 0 1 29 0 1 30 0 1 31 0 1 32 0 1 33 0 1 34 0 1 35 0 1 36 0 1 37 0 1 38 0 1 39 0 1 40 0 1 41 0 1 42 0 1 43 0 1 44 0 1 45 0 1 46 0 1 47 0 1 48 0 1 49 0 1 50 0 1 51 0 1 52 0 1 53 0 1 54 0 1 55 0 1 56 0 1 57 0 1 58 0 1 59 0 1 60 0 1 61 0 1 62 0 1 63 0 1 64 0 1 65 0 1 66 0 1 67 0 1 68 0 1 69 0 1 70 0 1 71 0 1 72 0 1 73 0 1 74 0 1 75 0 1 76 0 1 77 0 1 78 0 1 79 0 1 80 0 1 81 0 1 82 0 1 83 0 1 84 0 1 85 0 1 86 0 1 87 0 1 88 0 1 89 0 1 90 0 1 91 0 1 92 0 1 93 0 1 94 0 1 95 0 1 96 0 1 97 0 1 98 0 1 99 0 1 100 0 1 101 0 1 102 0 1 103 0 1 104 0 1 105 0 1 106 0 1 107 0 1 108 0 1 109 0 1 110 0 1 111 0 1 112 0 1 113 0 1 114 0 1 115 0 1 116 0 1 117 0 1 118 0 1 119 0 1 120 0 1 121 0 1 122 0 1 123 0 1 124 0 1 125 0 1 126 0 1 127 0 1 128 0 1 129 0 1 130 0 1 131 0 1 132 0 1 133 0 1 134 0 1 135 0 1 136 0 1 137 0 1 138 0 1 139 0 52 140 0 139 128 0 0 5 1 142 0 1 143 0 1 52 0 1 70 0 1 144 0 1 54 0 1 83 0 1 72 0 1 6 0 1 5 0 1 145 0 1 86 0 1 146 0 1 53 0 52 140 0 14 128 141 0 5 1 148 0 1 149 0 1 150 0 1 151 0 1 152 0 1 153 0 1 154 0 1 155 0 1 156 0 1 157 0 1 158 0 1 159 0 1 160 0 1 161 0 1 162 0 1 163 0 1 164 0 1 165 0 1 166 0 1 167 0 1 168 0 1 169 0 1 170 0 52 140 0 23 128 147 0 5 52 140 0 0 128 171 0 5 51 173 0 128 172 0 5 51 175 0 128 174 0 5 51 177 0 128 176 0 5 51 179 0 128 178 0 5 51 181 0 128 180 0 5 51 183 0 128 182 0 5 51 185 0 128 184 0 5 51 187 0 128 186 0 5 51 189 0 128 188 0 5 51 191 0 128 190 0 5 51 193 0 128 192 0 5 1 194 0 112 50)))
|