Bytecode modules are now serialized as s-expressions (.sxbc) in addition to JSON (.sxbc.json). The .sxbc format is the canonical representation — content-addressable, parseable by the SX parser, and suitable for CID referencing. Annotation layers (source maps, variable names, tests, docs) can reference the bytecode CID without polluting the bytecode itself. Format: (sxbc version hash (code :arity N :bytecode (...) :constants (...))) The browser loader tries .sxbc first (via load-sxbc kernel primitive), falls back to .sxbc.json. Caddy needs .sxbc MIME type to serve the new format (currently 404s, JSON fallback works). Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
366 lines
11 KiB
Plaintext
366 lines
11 KiB
Plaintext
(sxbc 1 "96c150ad4f0a6342"
|
|
(code
|
|
:bytecode (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 1 140 0 52 1 0 139 128 0 0 5 1 142 0 1 143 0 1 53 0 1 71 0 1 144 0 1 55 0 1 84 0 1 73 0 1 7 0 1 6 0 1 145 0 1 87 0 1 146 0 1 54 0 52 1 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 1 0 23 128 147 0 5 52 1 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 50)
|
|
:constants (
|
|
"HTML_TAGS"
|
|
"list"
|
|
"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"
|
|
"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?"
|
|
(code :arity 1
|
|
:bytecode (16 0 1 1 0 52 0 0 2 6 34 94 0 5 16 0 1 2 0 52 0 0 2 6 34 80 0 5 16 0 1 3 0 52 0 0 2 6 34 66 0 5 16 0 1 4 0 52 0 0 2 6 34 52 0 5 16 0 1 5 0 52 0 0 2 6 34 38 0 5 16 0 1 6 0 52 0 0 2 6 34 24 0 5 16 0 1 7 0 52 0 0 2 6 34 10 0 5 20 9 0 16 0 52 8 0 2 50)
|
|
:constants (
|
|
"="
|
|
"define"
|
|
"defcomp"
|
|
"defisland"
|
|
"defmacro"
|
|
"defstyle"
|
|
"deftype"
|
|
"defeffect"
|
|
"contains?"
|
|
"*definition-form-extensions*"))
|
|
"parse-element-args"
|
|
(code :arity 2
|
|
:bytecode (52 0 0 0 17 2 52 1 0 0 17 3 51 3 0 1 0 1 1 1 2 1 3 1 4 0 1 5 0 1 6 0 4 52 0 0 4 16 0 52 2 0 3 5 16 2 16 3 52 1 0 2 50)
|
|
:constants (
|
|
"dict"
|
|
"list"
|
|
"reduce"
|
|
(code :arity 2 :upvalue-count 4
|
|
:bytecode (16 0 1 1 0 52 0 0 2 17 2 16 2 33 29 0 16 0 1 1 0 4 1 3 0 16 0 1 3 0 52 0 0 2 52 4 0 1 52 2 0 5 32 154 0 16 1 52 6 0 1 1 7 0 52 5 0 2 6 33 24 0 5 16 0 1 3 0 52 0 0 2 52 4 0 1 18 0 52 9 0 1 52 8 0 2 33 78 0 20 10 0 20 11 0 18 0 16 0 1 3 0 52 0 0 2 52 4 0 1 52 12 0 2 18 1 48 2 48 1 17 3 18 2 20 14 0 16 1 48 1 16 3 52 13 0 3 5 16 0 1 1 0 3 1 3 0 16 0 1 3 0 52 0 0 2 52 4 0 1 52 2 0 5 32 32 0 20 15 0 18 3 16 1 48 2 5 16 0 1 3 0 16 0 1 3 0 52 0 0 2 52 4 0 1 52 2 0 3 50)
|
|
:constants (
|
|
"get"
|
|
"skip"
|
|
"assoc"
|
|
"i"
|
|
"inc"
|
|
"="
|
|
"type-of"
|
|
"keyword"
|
|
"<"
|
|
"len"
|
|
"trampoline"
|
|
"eval-expr"
|
|
"nth"
|
|
"dict-set!"
|
|
"keyword-name"
|
|
"append!"))
|
|
"i"
|
|
0
|
|
"skip"))
|
|
"render-attrs"
|
|
(code :arity 1
|
|
:bytecode (1 1 0 51 3 0 1 0 16 0 52 4 0 1 52 2 0 2 52 0 0 2 50)
|
|
:constants (
|
|
"join"
|
|
""
|
|
"map"
|
|
(code :arity 1 :upvalue-count 1
|
|
:bytecode (18 0 16 0 52 0 0 2 17 1 20 2 0 16 0 52 1 0 2 6 33 3 0 5 16 1 33 12 0 1 4 0 16 0 52 3 0 2 32 70 0 20 2 0 16 0 52 1 0 2 6 33 7 0 5 16 1 52 5 0 1 33 6 0 1 6 0 32 41 0 16 1 52 7 0 1 33 6 0 1 6 0 32 26 0 1 4 0 16 0 1 8 0 20 9 0 16 1 52 3 0 1 48 1 1 10 0 52 3 0 5 50)
|
|
:constants (
|
|
"dict-get"
|
|
"contains?"
|
|
"BOOLEAN_ATTRS"
|
|
"str"
|
|
" "
|
|
"not"
|
|
""
|
|
"nil?"
|
|
"=\""
|
|
"escape-attr"
|
|
"\""))
|
|
"keys"))
|
|
"eval-cond"
|
|
(code :arity 2
|
|
: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)
|
|
:constants (
|
|
"cond-scheme?"
|
|
"eval-cond-scheme"
|
|
"eval-cond-clojure"))
|
|
"eval-cond-scheme"
|
|
(code :arity 2
|
|
:bytecode (16 0 52 0 0 1 33 4 0 2 32 76 0 16 0 52 1 0 1 17 2 16 2 52 1 0 1 17 3 16 2 1 3 0 52 2 0 2 17 4 16 3 52 4 0 1 33 5 0 16 4 32 35 0 20 5 0 20 6 0 16 3 16 1 48 2 48 1 33 5 0 16 4 32 13 0 20 7 0 16 0 52 8 0 1 16 1 49 2 50)
|
|
:constants (
|
|
"empty?"
|
|
"first"
|
|
"nth"
|
|
1
|
|
"is-else-clause?"
|
|
"trampoline"
|
|
"eval-expr"
|
|
"eval-cond-scheme"
|
|
"rest"))
|
|
"eval-cond-clojure"
|
|
(code :arity 2
|
|
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 33 4 0 2 32 71 0 16 0 52 3 0 1 17 2 16 0 1 5 0 52 4 0 2 17 3 16 2 52 6 0 1 33 5 0 16 3 32 38 0 20 7 0 20 8 0 16 2 16 1 48 2 48 1 33 5 0 16 3 32 16 0 20 9 0 16 0 1 2 0 52 10 0 2 16 1 49 2 50)
|
|
:constants (
|
|
"<"
|
|
"len"
|
|
2
|
|
"first"
|
|
"nth"
|
|
1
|
|
"is-else-clause?"
|
|
"trampoline"
|
|
"eval-expr"
|
|
"eval-cond-clojure"
|
|
"slice"))
|
|
"process-bindings"
|
|
(code :arity 2
|
|
:bytecode (20 0 0 16 1 48 1 17 2 51 2 0 1 2 16 0 52 1 0 2 5 16 2 50)
|
|
:constants (
|
|
"env-extend"
|
|
"for-each"
|
|
(code :arity 1 :upvalue-count 1
|
|
:bytecode (16 0 52 1 0 1 1 2 0 52 0 0 2 6 33 14 0 5 16 0 52 4 0 1 1 5 0 52 3 0 2 33 79 0 16 0 52 6 0 1 52 1 0 1 1 7 0 52 0 0 2 33 14 0 20 8 0 16 0 52 6 0 1 48 1 32 10 0 16 0 52 6 0 1 52 9 0 1 17 1 20 10 0 18 0 16 1 20 11 0 20 12 0 16 0 1 14 0 52 13 0 2 18 0 48 2 48 1 49 3 32 1 0 2 50)
|
|
:constants (
|
|
"="
|
|
"type-of"
|
|
"list"
|
|
">="
|
|
"len"
|
|
2
|
|
"first"
|
|
"symbol"
|
|
"symbol-name"
|
|
"str"
|
|
"env-bind!"
|
|
"trampoline"
|
|
"eval-expr"
|
|
"nth"
|
|
1))))
|
|
"is-render-expr?"
|
|
(code :arity 1
|
|
:bytecode (16 0 52 2 0 1 1 3 0 52 1 0 2 52 0 0 1 6 34 7 0 5 16 0 52 4 0 1 33 4 0 4 32 170 0 16 0 52 5 0 1 17 1 16 1 52 2 0 1 1 6 0 52 1 0 2 52 0 0 1 33 4 0 4 32 138 0 20 7 0 16 1 48 1 17 2 16 2 1 8 0 52 1 0 2 6 34 116 0 5 16 2 1 9 0 52 1 0 2 6 34 102 0 5 16 2 1 11 0 52 10 0 2 6 34 88 0 5 16 2 1 12 0 52 10 0 2 6 34 74 0 5 20 14 0 16 2 52 13 0 2 6 34 60 0 5 16 2 1 17 0 52 16 0 2 1 18 0 52 15 0 2 6 33 39 0 5 16 0 52 19 0 1 1 20 0 52 15 0 2 6 33 21 0 5 16 0 1 20 0 52 21 0 2 52 2 0 1 1 22 0 52 1 0 2 50)
|
|
:constants (
|
|
"not"
|
|
"="
|
|
"type-of"
|
|
"list"
|
|
"empty?"
|
|
"first"
|
|
"symbol"
|
|
"symbol-name"
|
|
"<>"
|
|
"raw!"
|
|
"starts-with?"
|
|
"~"
|
|
"html:"
|
|
"contains?"
|
|
"HTML_TAGS"
|
|
">"
|
|
"index-of"
|
|
"-"
|
|
0
|
|
"len"
|
|
1
|
|
"nth"
|
|
"keyword"))
|
|
"merge-spread-attrs"
|
|
(code :arity 2
|
|
:bytecode (51 1 0 1 1 1 0 16 1 52 2 0 1 52 0 0 2 50)
|
|
:constants (
|
|
"for-each"
|
|
(code :arity 1 :upvalue-count 2
|
|
:bytecode (18 0 16 0 52 0 0 2 17 1 16 0 1 2 0 52 1 0 2 33 62 0 18 1 1 2 0 52 0 0 2 17 2 18 1 1 2 0 16 2 6 33 14 0 5 16 2 1 5 0 52 1 0 2 52 4 0 1 33 14 0 16 2 1 7 0 16 1 52 6 0 3 32 2 0 16 1 52 3 0 3 32 84 0 16 0 1 8 0 52 1 0 2 33 62 0 18 1 1 8 0 52 0 0 2 17 2 18 1 1 8 0 16 2 6 33 14 0 5 16 2 1 5 0 52 1 0 2 52 4 0 1 33 14 0 16 2 1 9 0 16 1 52 6 0 3 32 2 0 16 1 52 3 0 3 32 10 0 18 1 16 0 16 1 52 3 0 3 50)
|
|
:constants (
|
|
"dict-get"
|
|
"="
|
|
"class"
|
|
"dict-set!"
|
|
"not"
|
|
""
|
|
"str"
|
|
" "
|
|
"style"
|
|
";"))
|
|
"keys"))
|
|
"escape-html"
|
|
(code :arity 1
|
|
:bytecode (16 0 52 0 0 1 17 1 16 1 1 2 0 1 3 0 52 1 0 3 17 1 5 16 1 1 4 0 1 5 0 52 1 0 3 17 1 5 16 1 1 6 0 1 7 0 52 1 0 3 17 1 5 16 1 1 8 0 1 9 0 52 1 0 3 17 1 5 16 1 50)
|
|
:constants (
|
|
"str"
|
|
"replace"
|
|
"&"
|
|
"&"
|
|
"<"
|
|
"<"
|
|
">"
|
|
">"
|
|
"\""
|
|
"""))
|
|
"escape-attr"
|
|
(code :arity 1
|
|
:bytecode (20 0 0 16 0 49 1 50)
|
|
:constants (
|
|
"escape-html")))))
|