Browser kernel: - Add `parse` native fn (matches server: unwrap single, list for multiple) - Restore env==global_env guard on _env_bind_hook (let bindings must not leak to _vm_globals — caused JIT CSSX "Not callable: nil" errors) - Add _env_bind_hook call in env_set_id so set! mutations sync to VM globals - Fire _vm_global_set_hook from OP_DEFINE so VM defines sync back to CEK env CEK evaluator: - Replace recursive cek_run with iterative while loop using sx_truthy (previous attempt used strict Bool true matching, broke in wasm_of_ocaml) - Remove dead cek_run_iterative function Web modules: - Remove find-matching-route and parse-route-pattern stubs from boot-helpers.sx that shadowed real implementations from router.sx - Sync boot-helpers.sx to dist/static dirs for bytecode compilation Platform (sx-platform.js): - Set data-sx-ready attribute after boot completes (was only in boot-init which sx-platform.js doesn't call — it steps through boot manually) - Add document-level click delegation for a[sx-get] links as workaround for bytecoded bind-event not attaching per-element listeners (VM closure issue under investigation — bind-event runs but dom-add-listener calls don't result in addEventListener) Tests: - New test_kernel.js: 24 tests covering env sync, parse, route matching, host FFI/preventDefault, deep recursion - New navigation test: "sx-get link fetches SX not HTML and preserves layout" (currently catches layout breakage after SPA swap — known issue) Known remaining issues: - JIT CSSX failures: closure-captured variables resolve to nil in VM bytecode - SPA content swap via execute-request breaks page layout - Bytecoded bind-event doesn't attach per-element addEventListener (root cause unknown — when listen-target guard appears to block despite element being valid) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 line
22 KiB
JSON
1 line
22 KiB
JSON
{"magic":"SXBC","version":1,"hash":"3a8a55b66b6597f5","module":{"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,50],"constants":[{"t":"s","v":"make-upvalue-cell"},{"t":"code","v":{"bytecode":[1,0,0,16,0,65,1,0,50],"constants":[{"t":"s","v":"uv-value"}],"arity":1}},{"t":"s","v":"uv-get"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,50],"constants":[{"t":"s","v":"get"},{"t":"s","v":"uv-value"}],"arity":1}},{"t":"s","v":"uv-set!"},{"t":"code","v":{"bytecode":[16,0,1,1,0,16,1,52,0,0,3,50],"constants":[{"t":"s","v":"dict-set!"},{"t":"s","v":"uv-value"}],"arity":2}},{"t":"s","v":"make-vm-code"},{"t":"code","v":{"bytecode":[1,0,0,16,2,1,1,0,16,1,1,2,0,16,0,1,3,0,16,3,65,4,0,50],"constants":[{"t":"s","v":"vc-bytecode"},{"t":"s","v":"vc-locals"},{"t":"s","v":"vc-arity"},{"t":"s","v":"vc-constants"}],"arity":4}},{"t":"s","v":"make-vm-closure"},{"t":"code","v":{"bytecode":[1,0,0,16,3,1,1,0,16,1,1,2,0,16,2,1,3,0,16,0,1,4,0,16,4,65,5,0,50],"constants":[{"t":"s","v":"vm-globals"},{"t":"s","v":"vm-upvalues"},{"t":"s","v":"vm-name"},{"t":"s","v":"vm-code"},{"t":"s","v":"vm-closure-env"}],"arity":5}},{"t":"s","v":"make-vm-frame"},{"t":"code","v":{"bytecode":[1,0,0,1,1,0,1,2,0,16,0,1,3,0,16,1,1,4,0,65,0,0,65,4,0,50],"constants":[{"t":"s","v":"ip"},{"t":"n","v":0},{"t":"s","v":"closure"},{"t":"s","v":"base"},{"t":"s","v":"local-cells"}],"arity":2}},{"t":"s","v":"make-vm"},{"t":"code","v":{"bytecode":[1,0,0,1,1,0,1,2,0,52,3,0,0,1,4,0,1,6,0,52,5,0,1,1,7,0,16,0,65,4,0,50],"constants":[{"t":"s","v":"sp"},{"t":"n","v":0},{"t":"s","v":"frames"},{"t":"s","v":"list"},{"t":"s","v":"stack"},{"t":"s","v":"make-vm-stack"},{"t":"n","v":4096},{"t":"s","v":"globals"}],"arity":1}},{"t":"s","v":"vm-push"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,17,2,16,0,1,2,0,52,0,0,2,17,3,16,2,16,3,52,4,0,1,52,3,0,2,33,45,0,16,2,1,7,0,52,6,0,2,52,5,0,1,17,4,16,3,16,4,16,2,52,8,0,3,5,16,0,1,2,0,16,4,52,9,0,3,5,16,4,17,3,32,1,0,2,5,16,3,16,2,16,1,52,10,0,3,5,16,0,1,1,0,16,2,1,12,0,52,11,0,2,52,9,0,3,50],"constants":[{"t":"s","v":"get"},{"t":"s","v":"sp"},{"t":"s","v":"stack"},{"t":"s","v":">="},{"t":"s","v":"vm-stack-length"},{"t":"s","v":"make-vm-stack"},{"t":"s","v":"*"},{"t":"n","v":2},{"t":"s","v":"vm-stack-copy!"},{"t":"s","v":"dict-set!"},{"t":"s","v":"vm-stack-set!"},{"t":"s","v":"+"},{"t":"n","v":1}],"arity":2}},{"t":"s","v":"vm-pop"},{"t":"code","v":{"bytecode":[16,0,1,2,0,52,1,0,2,1,3,0,52,0,0,2,17,1,16,0,1,2,0,16,1,52,4,0,3,5,16,0,1,6,0,52,1,0,2,16,1,52,5,0,2,50],"constants":[{"t":"s","v":"-"},{"t":"s","v":"get"},{"t":"s","v":"sp"},{"t":"n","v":1},{"t":"s","v":"dict-set!"},{"t":"s","v":"vm-stack-get"},{"t":"s","v":"stack"}],"arity":1}},{"t":"s","v":"vm-peek"},{"t":"code","v":{"bytecode":[16,0,1,2,0,52,1,0,2,16,0,1,4,0,52,1,0,2,1,5,0,52,3,0,2,52,0,0,2,50],"constants":[{"t":"s","v":"vm-stack-get"},{"t":"s","v":"get"},{"t":"s","v":"stack"},{"t":"s","v":"-"},{"t":"s","v":"sp"},{"t":"n","v":1}],"arity":1}},{"t":"s","v":"frame-read-u8"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,17,1,16,0,1,2,0,52,0,0,2,1,3,0,52,0,0,2,1,4,0,52,0,0,2,17,2,16,2,16,1,52,5,0,2,17,3,16,0,1,1,0,16,1,1,8,0,52,7,0,2,52,6,0,3,5,16,3,50],"constants":[{"t":"s","v":"get"},{"t":"s","v":"ip"},{"t":"s","v":"closure"},{"t":"s","v":"vm-code"},{"t":"s","v":"vc-bytecode"},{"t":"s","v":"nth"},{"t":"s","v":"dict-set!"},{"t":"s","v":"+"},{"t":"n","v":1}],"arity":1}},{"t":"s","v":"frame-read-u16"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,20,0,0,16,0,48,1,17,2,16,1,16,2,1,3,0,52,2,0,2,52,1,0,2,50],"constants":[{"t":"s","v":"frame-read-u8"},{"t":"s","v":"+"},{"t":"s","v":"*"},{"t":"n","v":256}],"arity":1}},{"t":"s","v":"frame-read-i16"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,16,1,1,2,0,52,1,0,2,33,12,0,16,1,1,4,0,52,3,0,2,32,2,0,16,1,50],"constants":[{"t":"s","v":"frame-read-u16"},{"t":"s","v":">="},{"t":"n","v":32768},{"t":"s","v":"-"},{"t":"n","v":65536}],"arity":1}},{"t":"s","v":"vm-push-frame"},{"t":"code","v":{"bytecode":[20,0,0,16,1,16,0,1,2,0,52,1,0,2,48,2,17,3,51,4,0,1,0,16,2,52,3,0,2,5,16,2,52,5,0,1,17,4,16,1,1,6,0,52,1,0,2,1,7,0,52,1,0,2,17,5,16,5,16,4,52,8,0,2,17,6,16,6,1,10,0,52,9,0,2,33,26,0,1,10,0,17,7,51,11,0,1,7,1,6,1,0,1,8,17,8,5,16,8,48,0,32,1,0,2,5,16,0,1,13,0,16,3,16,0,1,13,0,52,1,0,2,52,14,0,2,52,12,0,3,50],"constants":[{"t":"s","v":"make-vm-frame"},{"t":"s","v":"get"},{"t":"s","v":"sp"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[20,0,0,18,0,16,0,49,2,50],"constants":[{"t":"s","v":"vm-push"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"len"},{"t":"s","v":"vm-code"},{"t":"s","v":"vc-locals"},{"t":"s","v":"-"},{"t":"s","v":">"},{"t":"n","v":0},{"t":"code","v":{"bytecode":[18,0,18,1,52,0,0,2,33,28,0,20,1,0,18,2,2,48,2,5,18,0,1,3,0,52,2,0,2,19,0,5,18,3,49,0,32,1,0,2,50],"constants":[{"t":"s","v":"<"},{"t":"s","v":"vm-push"},{"t":"s","v":"+"},{"t":"n","v":1}],"upvalue-count":4}},{"t":"s","v":"dict-set!"},{"t":"s","v":"frames"},{"t":"s","v":"cons"}],"arity":3}},{"t":"s","v":"code-from-value"},{"t":"code","v":{"bytecode":[1,0,0,5,16,0,52,2,0,1,52,1,0,1,33,22,0,20,3,0,1,4,0,1,5,0,52,6,0,0,52,6,0,0,49,4,32,112,0,16,0,1,8,0,52,7,0,2,17,1,16,1,52,9,0,1,33,7,0,52,6,0,0,32,2,0,16,1,17,2,16,0,1,10,0,52,7,0,2,17,3,16,3,52,9,0,1,33,7,0,52,6,0,0,32,2,0,16,3,17,4,16,0,1,11,0,52,7,0,2,17,5,16,5,52,9,0,1,33,6,0,1,4,0,32,2,0,16,5,17,6,20,3,0,16,6,16,6,1,5,0,52,12,0,2,16,2,16,4,49,4,50],"constants":[{"t":"s","v":"Convert a compiler output dict to a vm-code object."},{"t":"s","v":"not"},{"t":"s","v":"dict?"},{"t":"s","v":"make-vm-code"},{"t":"n","v":0},{"t":"n","v":16},{"t":"s","v":"list"},{"t":"s","v":"get"},{"t":"s","v":"bytecode"},{"t":"s","v":"nil?"},{"t":"s","v":"constants"},{"t":"s","v":"arity"},{"t":"s","v":"+"}],"arity":1}},{"t":"s","v":"vm-closure?"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,6,33,10,0,5,16,0,1,2,0,52,1,0,2,50],"constants":[{"t":"s","v":"dict?"},{"t":"s","v":"has-key?"},{"t":"s","v":"vm-code"}],"arity":1}},{"t":"s","v":"vm-call"},{"t":"code","v":{"bytecode":[20,0,0,16,1,48,1,33,14,0,20,1,0,16,0,16,1,16,2,49,3,32,116,0,20,2,0,16,1,48,1,33,18,0,20,3,0,16,0,16,1,16,2,52,4,0,2,49,2,32,88,0,16,1,52,6,0,1,1,7,0,52,5,0,2,6,34,32,0,5,16,1,52,6,0,1,1,8,0,52,5,0,2,6,34,14,0,5,16,1,52,6,0,1,1,9,0,52,5,0,2,33,19,0,20,3,0,16,0,20,10,0,16,1,16,2,48,2,49,2,32,17,0,1,13,0,16,1,52,6,0,1,52,12,0,2,52,11,0,1,50],"constants":[{"t":"s","v":"vm-closure?"},{"t":"s","v":"vm-push-frame"},{"t":"s","v":"callable?"},{"t":"s","v":"vm-push"},{"t":"s","v":"apply"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"lambda"},{"t":"s","v":"component"},{"t":"s","v":"island"},{"t":"s","v":"cek-call"},{"t":"s","v":"error"},{"t":"s","v":"str"},{"t":"s","v":"VM: not callable: "}],"arity":3}},{"t":"s","v":"frame-local-get"},{"t":"code","v":{"bytecode":[1,0,0,5,16,1,1,2,0,52,1,0,2,17,3,16,2,52,3,0,1,17,4,16,3,16,4,52,4,0,2,33,16,0,20,5,0,16,3,16,4,52,1,0,2,49,1,32,28,0,16,0,1,7,0,52,1,0,2,16,1,1,9,0,52,1,0,2,16,2,52,8,0,2,52,6,0,2,50],"constants":[{"t":"s","v":"Read a local variable — check shared cells first, then stack."},{"t":"s","v":"get"},{"t":"s","v":"local-cells"},{"t":"s","v":"str"},{"t":"s","v":"has-key?"},{"t":"s","v":"uv-get"},{"t":"s","v":"vm-stack-get"},{"t":"s","v":"stack"},{"t":"s","v":"+"},{"t":"s","v":"base"}],"arity":3}},{"t":"s","v":"frame-local-set"},{"t":"code","v":{"bytecode":[1,0,0,5,16,1,1,2,0,52,1,0,2,17,4,16,2,52,3,0,1,17,5,16,4,16,5,52,4,0,2,33,18,0,20,5,0,16,4,16,5,52,1,0,2,16,3,49,2,32,30,0,16,0,1,7,0,52,1,0,2,16,1,1,9,0,52,1,0,2,16,2,52,8,0,2,16,3,52,6,0,3,50],"constants":[{"t":"s","v":"Write a local variable — to shared cell if captured, else to stack."},{"t":"s","v":"get"},{"t":"s","v":"local-cells"},{"t":"s","v":"str"},{"t":"s","v":"has-key?"},{"t":"s","v":"uv-set!"},{"t":"s","v":"vm-stack-set!"},{"t":"s","v":"stack"},{"t":"s","v":"+"},{"t":"s","v":"base"}],"arity":4}},{"t":"s","v":"frame-upvalue-get"},{"t":"code","v":{"bytecode":[20,0,0,16,0,1,3,0,52,2,0,2,1,4,0,52,2,0,2,16,1,52,1,0,2,49,1,50],"constants":[{"t":"s","v":"uv-get"},{"t":"s","v":"nth"},{"t":"s","v":"get"},{"t":"s","v":"closure"},{"t":"s","v":"vm-upvalues"}],"arity":2}},{"t":"s","v":"frame-upvalue-set"},{"t":"code","v":{"bytecode":[20,0,0,16,0,1,3,0,52,2,0,2,1,4,0,52,2,0,2,16,1,52,1,0,2,16,2,49,2,50],"constants":[{"t":"s","v":"uv-set!"},{"t":"s","v":"nth"},{"t":"s","v":"get"},{"t":"s","v":"closure"},{"t":"s","v":"vm-upvalues"}],"arity":3}},{"t":"s","v":"vm-global-get"},{"t":"code","v":{"bytecode":[1,0,0,5,16,0,1,2,0,52,1,0,2,17,3,16,3,16,2,52,3,0,2,33,11,0,16,3,16,2,52,1,0,2,32,67,0,16,1,1,4,0,52,1,0,2,1,5,0,52,1,0,2,17,4,16,4,52,6,0,1,33,9,0,16,2,52,7,0,1,32,31,0,20,8,0,16,4,16,2,48,2,17,5,16,5,52,6,0,1,33,9,0,16,2,52,7,0,1,32,2,0,16,5,50],"constants":[{"t":"s","v":"Look up a global: globals table → closure env chain → primitives."},{"t":"s","v":"get"},{"t":"s","v":"globals"},{"t":"s","v":"has-key?"},{"t":"s","v":"closure"},{"t":"s","v":"vm-closure-env"},{"t":"s","v":"nil?"},{"t":"s","v":"get-primitive"},{"t":"s","v":"env-walk"}],"arity":3}},{"t":"s","v":"vm-global-set"},{"t":"code","v":{"bytecode":[1,0,0,5,16,1,1,2,0,52,1,0,2,1,3,0,52,1,0,2,17,4,4,17,5,16,4,52,5,0,1,52,4,0,1,33,16,0,20,6,0,16,4,16,2,16,3,48,3,17,5,32,1,0,2,5,16,5,52,4,0,1,33,20,0,16,0,1,8,0,52,1,0,2,16,2,16,3,52,7,0,3,32,1,0,2,50],"constants":[{"t":"s","v":"Set a global: write to closure env if name exists there, else globals."},{"t":"s","v":"get"},{"t":"s","v":"closure"},{"t":"s","v":"vm-closure-env"},{"t":"s","v":"not"},{"t":"s","v":"nil?"},{"t":"s","v":"env-walk-set!"},{"t":"s","v":"dict-set!"},{"t":"s","v":"globals"}],"arity":4}},{"t":"s","v":"env-walk"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,33,4,0,2,32,55,0,20,1,0,16,0,16,1,48,2,33,12,0,20,2,0,16,0,16,1,49,2,32,31,0,20,3,0,16,0,48,1,17,2,16,2,52,0,0,1,33,4,0,2,32,9,0,20,4,0,16,2,16,1,49,2,50],"constants":[{"t":"s","v":"nil?"},{"t":"s","v":"env-has?"},{"t":"s","v":"env-get"},{"t":"s","v":"env-parent"},{"t":"s","v":"env-walk"}],"arity":2}},{"t":"s","v":"env-walk-set!"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,33,4,0,4,32,61,0,20,1,0,16,0,16,1,48,2,33,16,0,20,2,0,16,0,16,1,16,2,48,3,5,3,32,33,0,20,3,0,16,0,48,1,17,3,16,3,52,0,0,1,33,4,0,4,32,11,0,20,4,0,16,3,16,1,16,2,49,3,50],"constants":[{"t":"s","v":"nil?"},{"t":"s","v":"env-has?"},{"t":"s","v":"env-set!"},{"t":"s","v":"env-parent"},{"t":"s","v":"env-walk-set!"}],"arity":3}},{"t":"s","v":"vm-create-closure"},{"t":"code","v":{"bytecode":[1,0,0,5,20,1,0,16,2,48,1,17,3,16,2,52,2,0,1,33,31,0,16,2,1,4,0,52,3,0,2,17,5,16,5,52,5,0,1,33,6,0,1,6,0,32,2,0,16,5,32,3,0,1,6,0,17,4,52,7,0,0,17,6,1,6,0,17,7,51,8,0,1,7,1,4,1,1,1,0,1,6,1,8,17,8,5,16,8,48,0,5,16,6,17,5,20,9,0,16,3,16,5,2,16,0,1,10,0,52,3,0,2,2,49,5,50],"constants":[{"t":"s","v":"Create a closure from a code constant. Reads upvalue descriptors\n from the bytecode stream and captures values from the enclosing frame."},{"t":"s","v":"code-from-value"},{"t":"s","v":"dict?"},{"t":"s","v":"get"},{"t":"s","v":"upvalue-count"},{"t":"s","v":"nil?"},{"t":"n","v":0},{"t":"s","v":"list"},{"t":"code","v":{"bytecode":[18,0,18,1,52,0,0,2,33,175,0,20,1,0,18,2,48,1,17,0,20,1,0,18,2,48,1,17,1,16,0,1,3,0,52,2,0,2,33,92,0,18,2,1,5,0,52,4,0,2,17,3,16,1,52,6,0,1,17,4,16,3,16,4,52,7,0,2,33,11,0,16,3,16,4,52,4,0,2,32,48,0,20,8,0,18,3,1,10,0,52,4,0,2,18,2,1,12,0,52,4,0,2,16,1,52,11,0,2,52,9,0,2,48,1,17,5,16,3,16,4,16,5,52,13,0,3,5,16,5,32,22,0,18,2,1,15,0,52,4,0,2,1,16,0,52,4,0,2,16,1,52,14,0,2,17,2,20,17,0,18,4,16,2,48,2,5,18,0,1,3,0,52,11,0,2,19,0,5,18,5,49,0,32,1,0,2,50],"constants":[{"t":"s","v":"<"},{"t":"s","v":"frame-read-u8"},{"t":"s","v":"="},{"t":"n","v":1},{"t":"s","v":"get"},{"t":"s","v":"local-cells"},{"t":"s","v":"str"},{"t":"s","v":"has-key?"},{"t":"s","v":"make-upvalue-cell"},{"t":"s","v":"vm-stack-get"},{"t":"s","v":"stack"},{"t":"s","v":"+"},{"t":"s","v":"base"},{"t":"s","v":"dict-set!"},{"t":"s","v":"nth"},{"t":"s","v":"closure"},{"t":"s","v":"vm-upvalues"},{"t":"s","v":"append!"}],"upvalue-count":6}},{"t":"s","v":"make-vm-closure"},{"t":"s","v":"globals"}],"arity":3}},{"t":"s","v":"vm-run"},{"t":"code","v":{"bytecode":[1,0,0,5,51,1,0,1,0,1,1,17,1,5,16,1,49,0,50],"constants":[{"t":"s","v":"Execute bytecode until all frames are exhausted.\n VmClosure calls push new frames; the loop picks them up.\n OP_TAIL_CALL + VmClosure = true TCO: drop frame, push new, loop."},{"t":"code","v":{"bytecode":[18,0,1,3,0,52,2,0,2,52,1,0,1,52,0,0,1,33,141,0,18,0,1,3,0,52,2,0,2,52,4,0,1,17,0,18,0,1,3,0,52,2,0,2,52,5,0,1,17,1,16,0,1,6,0,52,2,0,2,1,7,0,52,2,0,2,1,8,0,52,2,0,2,17,2,16,0,1,6,0,52,2,0,2,1,7,0,52,2,0,2,1,9,0,52,2,0,2,17,3,16,0,1,11,0,52,2,0,2,16,2,52,12,0,1,52,10,0,2,33,16,0,18,0,1,3,0,52,14,0,0,52,13,0,3,32,20,0,20,15,0,18,0,16,0,16,1,16,2,16,3,48,5,5,18,1,49,0,32,1,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"empty?"},{"t":"s","v":"get"},{"t":"s","v":"frames"},{"t":"s","v":"first"},{"t":"s","v":"rest"},{"t":"s","v":"closure"},{"t":"s","v":"vm-code"},{"t":"s","v":"vc-bytecode"},{"t":"s","v":"vc-constants"},{"t":"s","v":">="},{"t":"s","v":"ip"},{"t":"s","v":"len"},{"t":"s","v":"dict-set!"},{"t":"s","v":"list"},{"t":"s","v":"vm-step"}],"upvalue-count":2}}],"arity":2}},{"t":"s","v":"vm-step"},{"t":"code","v":{"bytecode":[20,0,0,16,1,48,1,17,5,16,5,1,2,0,52,1,0,2,33,27,0,20,3,0,16,1,48,1,17,6,20,4,0,16,0,16,4,16,6,52,5,0,2,49,2,32,109,7,16,5,1,6,0,52,1,0,2,33,11,0,20,4,0,16,0,2,49,2,32,86,7,16,5,1,7,0,52,1,0,2,33,11,0,20,4,0,16,0,3,49,2,32,63,7,16,5,1,8,0,52,1,0,2,33,11,0,20,4,0,16,0,4,49,2,32,40,7,16,5,1,9,0,52,1,0,2,33,10,0,20,10,0,16,0,49,1,32,18,7,16,5,1,11,0,52,1,0,2,33,17,0,20,4,0,16,0,20,12,0,16,0,48,1,49,2,32,245,6,16,5,1,13,0,52,1,0,2,33,30,0,20,0,0,16,1,48,1,17,6,20,4,0,16,0,20,14,0,16,0,16,1,16,6,48,3,49,2,32,203,6,16,5,1,15,0,52,1,0,2,33,30,0,20,0,0,16,1,48,1,17,6,20,16,0,16,0,16,1,16,6,20,12,0,16,0,48,1,49,4,32,161,6,16,5,1,17,0,52,1,0,2,33,28,0,20,0,0,16,1,48,1,17,6,20,4,0,16,0,20,18,0,16,1,16,6,48,2,49,2,32,121,6,16,5,1,19,0,52,1,0,2,33,28,0,20,0,0,16,1,48,1,17,6,20,20,0,16,1,16,6,20,12,0,16,0,48,1,49,3,32,81,6,16,5,1,21,0,52,1,0,2,33,40,0,20,3,0,16,1,48,1,17,6,16,4,16,6,52,5,0,2,17,7,20,4,0,16,0,20,22,0,16,0,16,1,16,7,48,3,49,2,32,29,6,16,5,1,23,0,52,1,0,2,33,40,0,20,3,0,16,1,48,1,17,6,16,4,16,6,52,5,0,2,17,7,20,24,0,16,0,16,1,16,7,20,12,0,16,0,48,1,49,4,32,233,5,16,5,1,25,0,52,1,0,2,33,36,0,20,26,0,16,1,48,1,17,6,16,1,1,28,0,16,1,1,28,0,52,30,0,2,16,6,52,29,0,2,52,27,0,3,32,185,5,16,5,1,31,0,52,1,0,2,33,58,0,20,26,0,16,1,48,1,17,6,20,10,0,16,0,48,1,17,7,16,7,52,32,0,1,33,27,0,16,1,1,28,0,16,1,1,28,0,52,30,0,2,16,6,52,29,0,2,52,27,0,3,32,1,0,2,32,115,5,16,5,1,33,0,52,1,0,2,33,54,0,20,26,0,16,1,48,1,17,6,20,10,0,16,0,48,1,17,7,16,7,33,27,0,16,1,1,28,0,16,1,1,28,0,52,30,0,2,16,6,52,29,0,2,52,27,0,3,32,1,0,2,32,49,5,16,5,1,34,0,52,1,0,2,33,64,0,20,0,0,16,1,48,1,17,6,52,35,0,0,17,7,1,36,0,17,8,51,37,0,1,8,1,6,1,7,1,0,1,9,17,9,5,16,9,48,0,5,20,10,0,16,0,48,1,17,10,20,38,0,16,0,16,10,16,7,49,3,32,229,4,16,5,1,39,0,52,1,0,2,33,95,0,20,0,0,16,1,48,1,17,6,52,35,0,0,17,7,1,36,0,17,8,51,37,0,1,8,1,6,1,7,1,0,1,9,17,9,5,16,9,48,0,5,20,10,0,16,0,48,1,17,10,16,0,1,40,0,16,2,52,27,0,3,5,16,0,1,41,0,16,1,1,42,0,52,30,0,2,52,27,0,3,5,20,38,0,16,0,16,10,16,7,49,3,32,122,4,16,5,1,43,0,52,1,0,2,33,52,0,20,10,0,16,0,48,1,17,6,16,0,1,40,0,16,2,52,27,0,3,5,16,0,1,41,0,16,1,1,42,0,52,30,0,2,52,27,0,3,5,20,4,0,16,0,16,6,49,2,32,58,4,16,5,1,44,0,52,1,0,2,33,44,0,20,3,0,16,1,48,1,17,6,16,4,16,6,52,5,0,2,17,7,20,45,0,16,0,16,1,16,7,48,3,17,8,20,4,0,16,0,16,8,49,2,32,2,4,16,5,1,46,0,52,1,0,2,33,78,0,20,3,0,16,1,48,1,17,6,20,0,0,16,1,48,1,17,7,16,4,16,6,52,5,0,2,17,8,52,35,0,0,17,9,1,36,0,17,10,51,37,0,1,10,1,7,1,9,1,0,1,11,17,11,5,16,11,48,0,5,20,4,0,16,0,16,8,16,9,52,47,0,2,49,2,32,168,3,16,5,1,48,0,52,1,0,2,33,53,0,20,3,0,16,1,48,1,17,6,52,35,0,0,17,7,1,36,0,17,8,51,37,0,1,8,1,6,1,7,1,0,1,9,17,9,5,16,9,48,0,5,20,4,0,16,0,16,7,49,2,32,103,3,16,5,1,49,0,52,1,0,2,33,52,0,20,3,0,16,1,48,1,17,6,65,0,0,17,7,1,36,0,17,8,51,50,0,1,8,1,6,1,0,1,7,1,9,17,9,5,16,9,48,0,5,20,4,0,16,0,16,7,49,2,32,39,3,16,5,1,51,0,52,1,0,2,33,60,0,20,0,0,16,1,48,1,17,6,52,35,0,0,17,7,1,36,0,17,8,51,37,0,1,8,1,6,1,7,1,0,1,9,17,9,5,16,9,48,0,5,20,4,0,16,0,20,53,0,16,7,52,52,0,2,49,2,32,223,2,16,5,1,54,0,52,1,0,2,33,44,0,20,3,0,16,1,48,1,17,6,16,4,16,6,52,5,0,2,17,7,16,0,1,55,0,52,30,0,2,16,7,20,12,0,16,0,48,1,52,27,0,3,32,167,2,16,5,1,56,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,29,0,2,49,2,32,119,2,16,5,1,57,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,58,0,2,49,2,32,71,2,16,5,1,59,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,60,0,2,49,2,32,23,2,16,5,1,61,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,62,0,2,49,2,32,231,1,16,5,1,63,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,1,0,2,49,2,32,183,1,16,5,1,64,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,65,0,2,49,2,32,135,1,16,5,1,66,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,67,0,2,49,2,32,87,1,16,5,1,68,0,52,1,0,2,33,21,0,20,4,0,16,0,20,10,0,16,0,48,1,52,32,0,1,49,2,32,54,1,16,5,1,69,0,52,1,0,2,33,21,0,20,4,0,16,0,20,10,0,16,0,48,1,52,70,0,1,49,2,32,21,1,16,5,1,71,0,52,1,0,2,33,21,0,20,4,0,16,0,20,10,0,16,0,48,1,52,72,0,1,49,2,32,244,0,16,5,1,73,0,52,1,0,2,33,21,0,20,4,0,16,0,20,10,0,16,0,48,1,52,74,0,1,49,2,32,211,0,16,5,1,75,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,5,0,2,49,2,32,163,0,16,5,1,76,0,52,1,0,2,33,36,0,20,10,0,16,0,48,1,17,6,20,10,0,16,0,48,1,17,7,20,4,0,16,0,16,7,16,6,52,77,0,2,49,2,32,115,0,16,5,1,78,0,52,1,0,2,33,24,0,20,4,0,16,0,1,36,0,20,10,0,16,0,48,1,52,58,0,2,49,2,32,79,0,16,5,1,79,0,52,1,0,2,33,21,0,20,4,0,16,0,20,10,0,16,0,48,1,52,80,0,1,49,2,32,46,0,16,5,1,81,0,52,1,0,2,33,21,0,20,4,0,16,0,20,10,0,16,0,48,1,52,82,0,1,49,2,32,13,0,1,84,0,16,5,52,53,0,2,52,83,0,1,50],"constants":[{"t":"s","v":"frame-read-u8"},{"t":"s","v":"="},{"t":"n","v":1},{"t":"s","v":"frame-read-u16"},{"t":"s","v":"vm-push"},{"t":"s","v":"nth"},{"t":"n","v":2},{"t":"n","v":3},{"t":"n","v":4},{"t":"n","v":5},{"t":"s","v":"vm-pop"},{"t":"n","v":6},{"t":"s","v":"vm-peek"},{"t":"n","v":16},{"t":"s","v":"frame-local-get"},{"t":"n","v":17},{"t":"s","v":"frame-local-set"},{"t":"n","v":18},{"t":"s","v":"frame-upvalue-get"},{"t":"n","v":19},{"t":"s","v":"frame-upvalue-set"},{"t":"n","v":20},{"t":"s","v":"vm-global-get"},{"t":"n","v":21},{"t":"s","v":"vm-global-set"},{"t":"n","v":32},{"t":"s","v":"frame-read-i16"},{"t":"s","v":"dict-set!"},{"t":"s","v":"ip"},{"t":"s","v":"+"},{"t":"s","v":"get"},{"t":"n","v":33},{"t":"s","v":"not"},{"t":"n","v":34},{"t":"n","v":48},{"t":"s","v":"list"},{"t":"n","v":0},{"t":"code","v":{"bytecode":[18,0,18,1,52,0,0,2,33,35,0,20,2,0,18,3,48,1,18,2,52,1,0,2,19,2,5,18,0,1,4,0,52,3,0,2,19,0,5,18,4,49,0,32,1,0,2,50],"constants":[{"t":"s","v":"<"},{"t":"s","v":"cons"},{"t":"s","v":"vm-pop"},{"t":"s","v":"+"},{"t":"n","v":1}],"upvalue-count":5}},{"t":"s","v":"vm-call"},{"t":"n","v":49},{"t":"s","v":"frames"},{"t":"s","v":"sp"},{"t":"s","v":"base"},{"t":"n","v":50},{"t":"n","v":51},{"t":"s","v":"vm-create-closure"},{"t":"n","v":52},{"t":"s","v":"call-primitive"},{"t":"n","v":64},{"t":"n","v":65},{"t":"code","v":{"bytecode":[18,0,18,1,52,0,0,2,33,48,0,20,1,0,18,2,48,1,17,0,20,1,0,18,2,48,1,17,1,18,3,16,1,16,0,52,2,0,3,5,18,0,1,4,0,52,3,0,2,19,0,5,18,4,49,0,32,1,0,2,50],"constants":[{"t":"s","v":"<"},{"t":"s","v":"vm-pop"},{"t":"s","v":"dict-set!"},{"t":"s","v":"+"},{"t":"n","v":1}],"upvalue-count":5}},{"t":"n","v":144},{"t":"s","v":"apply"},{"t":"s","v":"str"},{"t":"n","v":128},{"t":"s","v":"globals"},{"t":"n","v":160},{"t":"n","v":161},{"t":"s","v":"-"},{"t":"n","v":162},{"t":"s","v":"*"},{"t":"n","v":163},{"t":"s","v":"/"},{"t":"n","v":164},{"t":"n","v":165},{"t":"s","v":"<"},{"t":"n","v":166},{"t":"s","v":">"},{"t":"n","v":167},{"t":"n","v":168},{"t":"s","v":"len"},{"t":"n","v":169},{"t":"s","v":"first"},{"t":"n","v":170},{"t":"s","v":"rest"},{"t":"n","v":171},{"t":"n","v":172},{"t":"s","v":"cons"},{"t":"n","v":173},{"t":"n","v":174},{"t":"s","v":"inc"},{"t":"n","v":175},{"t":"s","v":"dec"},{"t":"s","v":"error"},{"t":"s","v":"VM: unknown opcode "}],"arity":5}},{"t":"s","v":"vm-call-closure"},{"t":"code","v":{"bytecode":[20,0,0,16,2,48,1,17,3,20,1,0,16,3,16,0,16,1,48,3,5,20,2,0,16,3,48,1,5,20,3,0,16,3,49,1,50],"constants":[{"t":"s","v":"make-vm"},{"t":"s","v":"vm-push-frame"},{"t":"s","v":"vm-run"},{"t":"s","v":"vm-pop"}],"arity":3}},{"t":"s","v":"vm-execute-module"},{"t":"code","v":{"bytecode":[20,0,0,16,0,52,1,0,0,1,2,0,16,1,2,48,5,17,2,20,3,0,16,1,48,1,17,3,20,4,0,16,2,1,5,0,48,2,17,4,1,5,0,17,5,16,0,1,7,0,52,6,0,2,17,6,51,8,0,1,5,1,6,1,3,1,7,17,7,5,16,7,48,0,5,16,3,1,10,0,16,4,52,1,0,1,52,9,0,3,5,20,11,0,16,3,48,1,5,20,12,0,16,3,49,1,50],"constants":[{"t":"s","v":"make-vm-closure"},{"t":"s","v":"list"},{"t":"s","v":"module"},{"t":"s","v":"make-vm"},{"t":"s","v":"make-vm-frame"},{"t":"n","v":0},{"t":"s","v":"get"},{"t":"s","v":"vc-locals"},{"t":"code","v":{"bytecode":[18,0,18,1,52,0,0,2,33,28,0,20,1,0,18,2,2,48,2,5,18,0,1,3,0,52,2,0,2,19,0,5,18,3,49,0,32,1,0,2,50],"constants":[{"t":"s","v":"<"},{"t":"s","v":"vm-push"},{"t":"s","v":"+"},{"t":"n","v":1}],"upvalue-count":4}},{"t":"s","v":"dict-set!"},{"t":"s","v":"frames"},{"t":"s","v":"vm-run"},{"t":"s","v":"vm-pop"}],"arity":2}}]}} |