Files
rose-ash/shared/static/wasm/sx/router.sxbc.json
giles c923a34fa8 Fix WASM browser click handlers: 8 bugs, 50 new VM tests
The sx-get links were doing full page refreshes because click handlers
never attached. Root causes: VM frame management bug, missing primitives,
CEK/VM type dispatch mismatch, and silent error swallowing.

Fixes:
- VM frame exhaustion: frames <- [] now properly pops to rest_frames
- length primitive: add alias for len in OCaml primitives
- call_sx_fn: use sx_call directly instead of eval_expr (CEK checks
  for type "lambda" but VmClosure reports "function")
- Boot error surfacing: Sx.init() now has try/catch + failure summary
- Callback error surfacing: catch-all handler for non-Eval_error exceptions
- Silent JIT failures: log before CEK fallback instead of swallowing
- vm→env sync: loadModule now calls sync_vm_to_env()
- sx_build_bytecode MCP tool added for bytecode compilation

Tests: 50 new tests across test-vm.sx and test-vm-primitives.sx covering
nested VM calls, frame integrity, CEK bridge, primitive availability,
cross-module symbol resolution, and callback dispatch.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-27 00:37:21 +00:00

1 line
20 KiB
JSON

{"magic":"SXBC","version":1,"hash":"10d418bcee7e13ff","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,5,51,61,0,128,60,0,5,51,63,0,128,62,0,5,51,65,0,128,64,0,5,51,67,0,128,66,0,5,51,69,0,128,68,0,5,51,71,0,128,70,0,50],"constants":[{"t":"s","v":"split-path-segments"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,33,12,0,16,0,1,3,0,52,2,0,2,32,2,0,16,0,17,1,16,1,52,5,0,1,52,4,0,1,6,33,10,0,5,16,1,1,1,0,52,6,0,2,33,25,0,16,1,1,7,0,16,1,52,9,0,1,1,3,0,52,8,0,2,52,2,0,3,32,2,0,16,1,17,2,16,2,52,5,0,1,33,7,0,52,10,0,0,32,9,0,16,2,1,1,0,52,11,0,2,50],"constants":[{"t":"s","v":"starts-with?"},{"t":"s","v":"/"},{"t":"s","v":"slice"},{"t":"n","v":1},{"t":"s","v":"not"},{"t":"s","v":"empty?"},{"t":"s","v":"ends-with?"},{"t":"n","v":0},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"s","v":"list"},{"t":"s","v":"split"}],"arity":1}},{"t":"s","v":"make-route-segment"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,6,33,10,0,5,16,0,1,3,0,52,2,0,2,33,59,0,16,0,1,5,0,16,0,52,7,0,1,1,5,0,52,6,0,2,52,4,0,3,17,1,65,0,0,17,2,16,2,1,9,0,1,10,0,52,8,0,3,5,16,2,1,11,0,16,1,52,8,0,3,5,16,2,32,32,0,65,0,0,17,1,16,1,1,9,0,1,12,0,52,8,0,3,5,16,1,1,11,0,16,0,52,8,0,3,5,16,1,50],"constants":[{"t":"s","v":"starts-with?"},{"t":"s","v":"<"},{"t":"s","v":"ends-with?"},{"t":"s","v":">"},{"t":"s","v":"slice"},{"t":"n","v":1},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"s","v":"dict-set!"},{"t":"s","v":"type"},{"t":"s","v":"param"},{"t":"s","v":"value"},{"t":"s","v":"literal"}],"arity":1}},{"t":"s","v":"parse-route-pattern"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,20,2,0,16,1,52,1,0,2,50],"constants":[{"t":"s","v":"split-path-segments"},{"t":"s","v":"map"},{"t":"s","v":"make-route-segment"}],"arity":1}},{"t":"s","v":"match-route-segments"},{"t":"code","v":{"bytecode":[16,0,52,2,0,1,16,1,52,2,0,1,52,1,0,2,52,0,0,1,33,4,0,2,32,35,0,65,0,0,17,2,3,17,3,51,4,0,1,3,1,0,1,2,16,1,52,3,0,2,5,16,3,33,5,0,16,2,32,1,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"="},{"t":"s","v":"len"},{"t":"s","v":"for-each-indexed"},{"t":"code","v":{"bytecode":[18,0,33,103,0,18,1,16,0,52,0,0,2,17,2,16,1,1,2,0,52,1,0,2,17,3,16,3,1,4,0,52,3,0,2,33,32,0,16,2,16,1,1,6,0,52,1,0,2,52,3,0,2,52,5,0,1,33,6,0,4,19,0,32,1,0,2,32,35,0,16,3,1,7,0,52,3,0,2,33,20,0,18,2,16,1,1,6,0,52,1,0,2,16,2,52,8,0,3,32,3,0,4,19,0,32,1,0,2,50],"constants":[{"t":"s","v":"nth"},{"t":"s","v":"get"},{"t":"s","v":"type"},{"t":"s","v":"="},{"t":"s","v":"literal"},{"t":"s","v":"not"},{"t":"s","v":"value"},{"t":"s","v":"param"},{"t":"s","v":"dict-set!"}],"arity":2,"upvalue-count":3}}],"arity":2}},{"t":"s","v":"match-route"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,2,20,1,0,16,1,48,1,17,3,20,2,0,16,2,16,3,49,2,50],"constants":[{"t":"s","v":"split-path-segments"},{"t":"s","v":"parse-route-pattern"},{"t":"s","v":"match-route-segments"}],"arity":2}},{"t":"s","v":"find-matching-route"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,33,17,0,20,2,0,16,0,48,1,6,34,3,0,5,16,0,32,2,0,16,0,17,2,20,3,0,16,2,48,1,17,3,2,17,4,51,5,0,1,4,1,3,16,1,52,4,0,2,5,16,4,50],"constants":[{"t":"s","v":"starts-with?"},{"t":"s","v":"/("},{"t":"s","v":"sx-url-to-path"},{"t":"s","v":"split-path-segments"},{"t":"s","v":"for-each"},{"t":"code","v":{"bytecode":[18,0,52,0,0,1,33,65,0,20,1,0,18,1,16,0,1,3,0,52,2,0,2,48,2,17,1,16,1,52,0,0,1,52,4,0,1,33,30,0,16,0,65,0,0,52,5,0,2,17,2,16,2,1,7,0,16,1,52,6,0,3,5,16,2,19,0,32,1,0,2,32,1,0,2,50],"constants":[{"t":"s","v":"nil?"},{"t":"s","v":"match-route-segments"},{"t":"s","v":"get"},{"t":"s","v":"parsed"},{"t":"s","v":"not"},{"t":"s","v":"merge"},{"t":"s","v":"dict-set!"},{"t":"s","v":"params"}],"arity":1,"upvalue-count":2}}],"arity":2}},{"t":"s","v":"_fn-to-segment"},{"t":"code","v":{"bytecode":[16,0,6,1,0,0,52,1,0,2,33,7,0,5,1,2,0,32,147,0,6,1,3,0,52,1,0,2,33,7,0,5,1,4,0,32,129,0,6,1,5,0,52,1,0,2,33,7,0,5,1,6,0,32,111,0,6,1,7,0,52,1,0,2,33,7,0,5,1,8,0,32,93,0,6,1,9,0,52,1,0,2,33,7,0,5,1,10,0,32,75,0,6,1,11,0,52,1,0,2,33,7,0,5,1,12,0,32,57,0,6,1,13,0,52,1,0,2,33,7,0,5,1,14,0,32,39,0,6,1,15,0,52,1,0,2,33,7,0,5,1,16,0,32,21,0,6,1,17,0,52,1,0,2,33,7,0,5,1,18,0,32,3,0,5,16,0,50],"constants":[{"t":"s","v":"doc"},{"t":"s","v":"="},{"t":"s","v":"docs"},{"t":"s","v":"spec"},{"t":"s","v":"specs"},{"t":"s","v":"bootstrapper"},{"t":"s","v":"bootstrappers"},{"t":"s","v":"test"},{"t":"s","v":"testing"},{"t":"s","v":"example"},{"t":"s","v":"examples"},{"t":"s","v":"protocol"},{"t":"s","v":"protocols"},{"t":"s","v":"essay"},{"t":"s","v":"essays"},{"t":"s","v":"plan"},{"t":"s","v":"plans"},{"t":"s","v":"reference-detail"},{"t":"s","v":"reference"}],"arity":1}},{"t":"s","v":"sx-url-to-path"},{"t":"code","v":{"bytecode":[16,0,1,2,0,52,1,0,2,6,33,10,0,5,16,0,1,4,0,52,3,0,2,52,0,0,1,33,4,0,2,32,99,0,16,0,1,6,0,16,0,52,8,0,1,1,9,0,52,7,0,2,52,5,0,3,17,1,16,1,1,11,0,1,12,0,52,10,0,3,1,13,0,1,14,0,52,10,0,3,1,4,0,1,14,0,52,10,0,3,17,2,51,16,0,16,2,1,12,0,52,17,0,2,52,15,0,2,17,3,1,12,0,1,12,0,20,21,0,16,3,52,20,0,2,52,19,0,2,52,18,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"starts-with?"},{"t":"s","v":"/("},{"t":"s","v":"ends-with?"},{"t":"s","v":")"},{"t":"s","v":"slice"},{"t":"n","v":2},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"n","v":1},{"t":"s","v":"replace"},{"t":"s","v":"."},{"t":"s","v":"/"},{"t":"s","v":"("},{"t":"s","v":""},{"t":"s","v":"filter"},{"t":"code","v":{"bytecode":[16,0,52,1,0,1,52,0,0,1,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"empty?"}],"arity":1}},{"t":"s","v":"split"},{"t":"s","v":"str"},{"t":"s","v":"join"},{"t":"s","v":"map"},{"t":"s","v":"_fn-to-segment"}],"arity":1}},{"t":"s","v":"_count-leading-dots"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,33,6,0,1,1,0,32,39,0,16,0,1,3,0,52,2,0,2,33,24,0,1,5,0,20,6,0,16,0,1,5,0,52,7,0,2,48,1,52,4,0,2,32,3,0,1,1,0,50],"constants":[{"t":"s","v":"empty?"},{"t":"n","v":0},{"t":"s","v":"starts-with?"},{"t":"s","v":"."},{"t":"s","v":"+"},{"t":"n","v":1},{"t":"s","v":"_count-leading-dots"},{"t":"s","v":"slice"}],"arity":1}},{"t":"s","v":"_strip-trailing-close"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,33,30,0,20,2,0,16,0,1,4,0,16,0,52,6,0,1,1,7,0,52,5,0,2,52,3,0,3,49,1,32,2,0,16,0,50],"constants":[{"t":"s","v":"ends-with?"},{"t":"s","v":")"},{"t":"s","v":"_strip-trailing-close"},{"t":"s","v":"slice"},{"t":"n","v":0},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"n","v":1}],"arity":1}},{"t":"s","v":"_index-of-safe"},{"t":"code","v":{"bytecode":[16,0,16,1,52,0,0,2,17,2,16,2,52,1,0,1,6,34,10,0,5,16,2,1,3,0,52,2,0,2,33,4,0,2,32,2,0,16,2,50],"constants":[{"t":"s","v":"index-of"},{"t":"s","v":"nil?"},{"t":"s","v":"<"},{"t":"n","v":0}],"arity":2}},{"t":"s","v":"_last-index-of"},{"t":"code","v":{"bytecode":[20,0,0,16,0,16,1,48,2,17,2,16,2,52,1,0,1,33,4,0,2,32,53,0,20,2,0,16,0,16,2,1,5,0,52,4,0,2,52,3,0,2,16,1,48,2,17,3,16,3,52,1,0,1,33,5,0,16,2,32,15,0,16,2,1,5,0,52,4,0,2,16,3,52,4,0,2,50],"constants":[{"t":"s","v":"_index-of-safe"},{"t":"s","v":"nil?"},{"t":"s","v":"_last-index-of"},{"t":"s","v":"slice"},{"t":"s","v":"+"},{"t":"n","v":1}],"arity":2}},{"t":"s","v":"_pop-sx-url-level"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,16,0,52,2,0,1,20,0,0,16,0,48,1,52,2,0,1,52,1,0,2,17,2,16,2,1,4,0,52,3,0,2,33,6,0,1,5,0,32,67,0,20,6,0,16,1,1,7,0,48,2,17,3,16,3,52,8,0,1,33,6,0,1,5,0,32,40,0,16,1,1,11,0,16,3,52,10,0,3,16,0,16,0,52,2,0,1,16,2,1,4,0,52,1,0,2,52,1,0,2,52,10,0,2,52,9,0,2,50],"constants":[{"t":"s","v":"_strip-trailing-close"},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"s","v":"<="},{"t":"n","v":1},{"t":"s","v":"/"},{"t":"s","v":"_last-index-of"},{"t":"s","v":".("},{"t":"s","v":"nil?"},{"t":"s","v":"str"},{"t":"s","v":"slice"},{"t":"n","v":0}],"arity":1}},{"t":"s","v":"_pop-sx-url-levels"},{"t":"code","v":{"bytecode":[16,1,1,1,0,52,0,0,2,33,5,0,16,0,32,21,0,20,2,0,20,3,0,16,0,48,1,16,1,1,5,0,52,4,0,2,49,2,50],"constants":[{"t":"s","v":"<="},{"t":"n","v":0},{"t":"s","v":"_pop-sx-url-levels"},{"t":"s","v":"_pop-sx-url-level"},{"t":"s","v":"-"},{"t":"n","v":1}],"arity":2}},{"t":"s","v":"_split-pos-kw"},{"t":"code","v":{"bytecode":[16,1,16,0,52,1,0,1,52,0,0,2,33,23,0,1,2,0,1,4,0,16,2,52,3,0,2,1,5,0,16,3,65,2,0,32,136,0,16,0,16,1,52,6,0,2,17,4,16,4,1,8,0,52,7,0,2,33,84,0,16,1,1,11,0,52,10,0,2,16,0,52,1,0,1,52,9,0,2,33,18,0,16,0,16,1,1,11,0,52,10,0,2,52,6,0,2,32,3,0,1,12,0,17,5,20,13,0,16,0,16,1,1,14,0,52,10,0,2,16,2,16,3,16,4,16,5,52,16,0,2,52,16,0,1,52,15,0,2,49,4,32,30,0,20,13,0,16,0,16,1,1,11,0,52,10,0,2,16,2,16,4,52,16,0,1,52,15,0,2,16,3,49,4,50],"constants":[{"t":"s","v":">="},{"t":"s","v":"len"},{"t":"s","v":"positional"},{"t":"s","v":"join"},{"t":"s","v":"."},{"t":"s","v":"keywords"},{"t":"s","v":"nth"},{"t":"s","v":"starts-with?"},{"t":"s","v":":"},{"t":"s","v":"<"},{"t":"s","v":"+"},{"t":"n","v":1},{"t":"s","v":""},{"t":"s","v":"_split-pos-kw"},{"t":"n","v":2},{"t":"s","v":"append"},{"t":"s","v":"list"}],"arity":4}},{"t":"s","v":"_parse-relative-body"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,33,19,0,1,1,0,1,2,0,1,3,0,52,4,0,0,65,2,0,32,25,0,20,5,0,16,0,1,7,0,52,6,0,2,1,8,0,52,4,0,0,52,4,0,0,49,4,50],"constants":[{"t":"s","v":"empty?"},{"t":"s","v":"positional"},{"t":"s","v":""},{"t":"s","v":"keywords"},{"t":"s","v":"list"},{"t":"s","v":"_split-pos-kw"},{"t":"s","v":"split"},{"t":"s","v":"."},{"t":"n","v":0}],"arity":1}},{"t":"s","v":"_extract-innermost"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,16,0,20,0,0,16,0,48,1,52,2,0,1,52,1,0,2,17,2,20,3,0,16,1,1,4,0,48,2,17,3,16,3,52,5,0,1,33,29,0,1,6,0,1,7,0,1,8,0,16,1,1,9,0,52,1,0,2,1,10,0,16,2,65,3,0,32,47,0,1,6,0,16,1,1,11,0,16,3,1,9,0,52,12,0,2,52,1,0,3,1,8,0,16,1,16,3,1,9,0,52,12,0,2,52,1,0,2,1,10,0,16,2,65,3,0,50],"constants":[{"t":"s","v":"_strip-trailing-close"},{"t":"s","v":"slice"},{"t":"s","v":"len"},{"t":"s","v":"_last-index-of"},{"t":"s","v":".("},{"t":"s","v":"nil?"},{"t":"s","v":"before"},{"t":"s","v":"/("},{"t":"s","v":"content"},{"t":"n","v":2},{"t":"s","v":"suffix"},{"t":"n","v":0},{"t":"s","v":"+"}],"arity":1}},{"t":"s","v":"_find-kw-in-tokens"},{"t":"code","v":{"bytecode":[16,1,16,0,52,1,0,1,52,0,0,2,33,4,0,2,32,77,0,16,0,16,1,52,3,0,2,16,2,52,2,0,2,6,33,20,0,5,16,1,1,6,0,52,5,0,2,16,0,52,1,0,1,52,4,0,2,33,18,0,16,0,16,1,1,6,0,52,5,0,2,52,3,0,2,32,18,0,20,7,0,16,0,16,1,1,6,0,52,5,0,2,16,2,49,3,50],"constants":[{"t":"s","v":">="},{"t":"s","v":"len"},{"t":"s","v":"="},{"t":"s","v":"nth"},{"t":"s","v":"<"},{"t":"s","v":"+"},{"t":"n","v":1},{"t":"s","v":"_find-kw-in-tokens"}],"arity":3}},{"t":"s","v":"_find-keyword-value"},{"t":"code","v":{"bytecode":[20,0,0,16,0,1,2,0,52,1,0,2,1,3,0,16,1,49,3,50],"constants":[{"t":"s","v":"_find-kw-in-tokens"},{"t":"s","v":"split"},{"t":"s","v":"."},{"t":"n","v":0}],"arity":2}},{"t":"s","v":"_replace-kw-in-tokens"},{"t":"code","v":{"bytecode":[16,1,16,0,52,1,0,1,52,0,0,2,33,7,0,52,2,0,0,32,108,0,16,0,16,1,52,4,0,2,16,2,52,3,0,2,6,33,20,0,5,16,1,1,7,0,52,6,0,2,16,0,52,1,0,1,52,5,0,2,33,35,0,16,2,16,3,52,2,0,2,20,9,0,16,0,16,1,1,10,0,52,6,0,2,16,2,16,3,48,4,52,8,0,2,32,32,0,16,0,16,1,52,4,0,2,20,9,0,16,0,16,1,1,7,0,52,6,0,2,16,2,16,3,48,4,52,11,0,2,50],"constants":[{"t":"s","v":">="},{"t":"s","v":"len"},{"t":"s","v":"list"},{"t":"s","v":"="},{"t":"s","v":"nth"},{"t":"s","v":"<"},{"t":"s","v":"+"},{"t":"n","v":1},{"t":"s","v":"append"},{"t":"s","v":"_replace-kw-in-tokens"},{"t":"n","v":2},{"t":"s","v":"cons"}],"arity":4}},{"t":"s","v":"_set-keyword-in-content"},{"t":"code","v":{"bytecode":[20,0,0,16,0,16,1,48,2,17,3,16,3,52,1,0,1,33,19,0,16,0,1,3,0,16,1,1,3,0,16,2,52,2,0,5,32,28,0,1,3,0,20,5,0,16,0,1,3,0,52,6,0,2,1,7,0,16,1,16,2,48,4,52,4,0,2,50],"constants":[{"t":"s","v":"_find-keyword-value"},{"t":"s","v":"nil?"},{"t":"s","v":"str"},{"t":"s","v":"."},{"t":"s","v":"join"},{"t":"s","v":"_replace-kw-in-tokens"},{"t":"s","v":"split"},{"t":"n","v":0}],"arity":3}},{"t":"s","v":"_is-delta-value?"},{"t":"code","v":{"bytecode":[16,0,52,1,0,1,52,0,0,1,6,33,42,0,5,16,0,52,3,0,1,1,4,0,52,2,0,2,6,33,24,0,5,16,0,1,6,0,52,5,0,2,6,34,10,0,5,16,0,1,7,0,52,5,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"empty?"},{"t":"s","v":">"},{"t":"s","v":"len"},{"t":"n","v":1},{"t":"s","v":"starts-with?"},{"t":"s","v":"+"},{"t":"s","v":"-"}],"arity":1}},{"t":"s","v":"_apply-delta"},{"t":"code","v":{"bytecode":[16,0,2,52,0,0,2,17,2,16,1,2,52,0,0,2,17,3,16,2,52,1,0,1,6,34,7,0,5,16,3,52,1,0,1,33,5,0,16,1,32,12,0,16,2,16,3,52,3,0,2,52,2,0,1,50],"constants":[{"t":"s","v":"parse-int"},{"t":"s","v":"nil?"},{"t":"s","v":"str"},{"t":"s","v":"+"}],"arity":2}},{"t":"s","v":"_apply-kw-pairs"},{"t":"code","v":{"bytecode":[16,1,52,0,0,1,33,5,0,16,0,32,100,0,16,1,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,20,4,0,16,4,48,1,33,37,0,20,5,0,16,0,16,3,48,2,17,6,16,6,52,6,0,1,33,5,0,16,4,32,9,0,20,7,0,16,6,16,4,48,2,32,2,0,16,4,17,5,20,8,0,20,9,0,16,0,16,3,16,5,48,3,16,1,52,10,0,1,49,2,50],"constants":[{"t":"s","v":"empty?"},{"t":"s","v":"first"},{"t":"s","v":"nth"},{"t":"n","v":1},{"t":"s","v":"_is-delta-value?"},{"t":"s","v":"_find-keyword-value"},{"t":"s","v":"nil?"},{"t":"s","v":"_apply-delta"},{"t":"s","v":"_apply-kw-pairs"},{"t":"s","v":"_set-keyword-in-content"},{"t":"s","v":"rest"}],"arity":2}},{"t":"s","v":"_apply-keywords-to-url"},{"t":"code","v":{"bytecode":[16,1,52,0,0,1,33,5,0,16,0,32,51,0,20,1,0,16,0,48,1,17,2,20,2,0,16,2,1,4,0,52,3,0,2,16,1,48,2,17,3,16,2,1,6,0,52,3,0,2,16,3,16,2,1,7,0,52,3,0,2,52,5,0,3,50],"constants":[{"t":"s","v":"empty?"},{"t":"s","v":"_extract-innermost"},{"t":"s","v":"_apply-kw-pairs"},{"t":"s","v":"get"},{"t":"s","v":"content"},{"t":"s","v":"str"},{"t":"s","v":"before"},{"t":"s","v":"suffix"}],"arity":2}},{"t":"s","v":"_normalize-relative"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,33,5,0,16,0,32,12,0,1,1,0,16,0,1,3,0,52,2,0,3,50],"constants":[{"t":"s","v":"starts-with?"},{"t":"s","v":"("},{"t":"s","v":"str"},{"t":"s","v":")"}],"arity":1}},{"t":"s","v":"resolve-relative-url"},{"t":"code","v":{"bytecode":[20,0,0,16,1,48,1,17,2,16,2,1,2,0,16,2,52,4,0,1,1,2,0,52,3,0,2,52,1,0,3,17,3,20,5,0,16,3,48,1,17,4,16,3,20,5,0,16,3,48,1,52,1,0,2,17,5,16,4,1,7,0,52,6,0,2,33,5,0,16,0,32,215,0,20,8,0,16,5,48,1,17,6,16,6,1,10,0,52,9,0,2,17,7,16,6,1,11,0,52,9,0,2,17,8,16,4,1,2,0,52,6,0,2,33,58,0,16,7,52,12,0,1,33,5,0,16,0,32,41,0,20,13,0,16,0,48,1,17,10,16,0,20,13,0,16,0,48,1,52,4,0,1,52,1,0,2,17,11,16,10,1,15,0,16,7,16,11,52,14,0,4,32,103,0,20,16,0,16,0,16,4,1,2,0,52,3,0,2,48,2,17,10,16,7,52,12,0,1,33,5,0,16,10,32,71,0,16,10,1,17,0,52,6,0,2,33,15,0,1,18,0,16,7,1,19,0,52,14,0,3,32,44,0,20,13,0,16,10,48,1,17,11,16,10,20,13,0,16,10,48,1,52,4,0,1,52,1,0,2,17,12,16,11,1,20,0,16,7,1,19,0,16,12,52,14,0,5,17,9,20,21,0,16,9,16,8,49,2,50],"constants":[{"t":"s","v":"_normalize-relative"},{"t":"s","v":"slice"},{"t":"n","v":1},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"s","v":"_count-leading-dots"},{"t":"s","v":"="},{"t":"n","v":0},{"t":"s","v":"_parse-relative-body"},{"t":"s","v":"get"},{"t":"s","v":"positional"},{"t":"s","v":"keywords"},{"t":"s","v":"empty?"},{"t":"s","v":"_strip-trailing-close"},{"t":"s","v":"str"},{"t":"s","v":"."},{"t":"s","v":"_pop-sx-url-levels"},{"t":"s","v":"/"},{"t":"s","v":"/("},{"t":"s","v":")"},{"t":"s","v":".("},{"t":"s","v":"_apply-keywords-to-url"}],"arity":2}},{"t":"s","v":"relative-sx-url?"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,6,33,14,0,5,16,0,1,3,0,52,0,0,2,52,2,0,1,6,34,10,0,5,16,0,1,4,0,52,0,0,2,50],"constants":[{"t":"s","v":"starts-with?"},{"t":"s","v":"("},{"t":"s","v":"not"},{"t":"s","v":"/("},{"t":"s","v":"."}],"arity":1}},{"t":"s","v":"_url-special-forms"},{"t":"code","v":{"bytecode":[1,1,0,1,2,0,1,3,0,1,4,0,1,5,0,1,6,0,52,0,0,6,50],"constants":[{"t":"s","v":"list"},{"t":"s","v":"!source"},{"t":"s","v":"!inspect"},{"t":"s","v":"!diff"},{"t":"s","v":"!search"},{"t":"s","v":"!raw"},{"t":"s","v":"!json"}]}},{"t":"s","v":"url-special-form?"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,6,33,12,0,5,20,3,0,48,0,16,0,52,2,0,2,50],"constants":[{"t":"s","v":"starts-with?"},{"t":"s","v":"!"},{"t":"s","v":"contains?"},{"t":"s","v":"_url-special-forms"}],"arity":1}},{"t":"s","v":"parse-sx-url"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,33,17,0,1,2,0,16,0,1,3,0,1,4,0,65,2,0,32,119,1,20,5,0,16,0,48,1,33,17,0,1,2,0,16,0,1,3,0,1,6,0,65,2,0,32,92,1,16,0,1,8,0,52,7,0,2,6,33,10,0,5,16,0,1,10,0,52,9,0,2,33,193,0,16,0,1,12,0,16,0,52,14,0,1,1,15,0,52,13,0,2,52,11,0,3,17,1,20,16,0,16,1,1,17,0,48,2,17,2,20,16,0,16,1,1,18,0,48,2,17,3,16,2,52,19,0,1,6,33,7,0,5,16,3,52,19,0,1,33,9,0,16,1,52,14,0,1,32,36,0,16,2,52,19,0,1,33,5,0,16,3,32,22,0,16,3,52,19,0,1,33,5,0,16,2,32,8,0,16,2,16,3,52,20,0,2,17,4,16,1,1,21,0,16,4,52,11,0,3,17,5,16,1,16,4,52,11,0,2,17,6,16,6,1,17,0,52,7,0,2,33,12,0,16,6,1,15,0,52,11,0,2,32,2,0,16,6,17,7,1,2,0,16,0,1,3,0,1,22,0,1,23,0,16,7,1,24,0,16,5,65,4,0,32,129,0,16,0,1,25,0,52,7,0,2,6,33,10,0,5,16,0,1,10,0,52,9,0,2,33,46,0,16,0,1,12,0,16,0,52,14,0,1,1,15,0,52,13,0,2,52,11,0,3,17,1,1,2,0,16,0,1,3,0,1,26,0,1,27,0,16,1,65,3,0,32,57,0,16,0,1,28,0,52,7,0,2,6,33,10,0,5,16,0,1,10,0,52,9,0,2,33,17,0,1,2,0,16,0,1,3,0,1,29,0,65,2,0,32,14,0,1,2,0,16,0,1,3,0,1,30,0,65,2,0,50],"constants":[{"t":"s","v":"="},{"t":"s","v":"/"},{"t":"s","v":"raw"},{"t":"s","v":"type"},{"t":"s","v":"home"},{"t":"s","v":"relative-sx-url?"},{"t":"s","v":"relative"},{"t":"s","v":"starts-with?"},{"t":"s","v":"/(!"},{"t":"s","v":"ends-with?"},{"t":"s","v":")"},{"t":"s","v":"slice"},{"t":"n","v":2},{"t":"s","v":"-"},{"t":"s","v":"len"},{"t":"n","v":1},{"t":"s","v":"_index-of-safe"},{"t":"s","v":"."},{"t":"s","v":"("},{"t":"s","v":"nil?"},{"t":"s","v":"min"},{"t":"n","v":0},{"t":"s","v":"special-form"},{"t":"s","v":"inner"},{"t":"s","v":"form"},{"t":"s","v":"/(~"},{"t":"s","v":"direct-component"},{"t":"s","v":"name"},{"t":"s","v":"/("},{"t":"s","v":"absolute"},{"t":"s","v":"path"}],"arity":1}},{"t":"s","v":"url-special-form-name"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,16,1,1,3,0,52,2,0,2,1,4,0,52,1,0,2,33,12,0,16,1,1,5,0,52,2,0,2,32,1,0,2,50],"constants":[{"t":"s","v":"parse-sx-url"},{"t":"s","v":"="},{"t":"s","v":"get"},{"t":"s","v":"type"},{"t":"s","v":"special-form"},{"t":"s","v":"form"}],"arity":1}},{"t":"s","v":"url-special-form-inner"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,1,16,1,1,3,0,52,2,0,2,1,4,0,52,1,0,2,33,12,0,16,1,1,5,0,52,2,0,2,32,1,0,2,50],"constants":[{"t":"s","v":"parse-sx-url"},{"t":"s","v":"="},{"t":"s","v":"get"},{"t":"s","v":"type"},{"t":"s","v":"special-form"},{"t":"s","v":"inner"}],"arity":1}},{"t":"s","v":"url-to-expr"},{"t":"code","v":{"bytecode":[16,0,1,1,0,52,0,0,2,6,34,7,0,5,16,0,52,2,0,1,33,7,0,52,3,0,0,32,73,0,16,0,1,1,0,52,4,0,2,33,12,0,16,0,1,6,0,52,5,0,2,32,2,0,16,0,17,1,16,1,1,8,0,1,9,0,52,7,0,3,17,2,20,10,0,16,2,48,1,17,3,16,3,52,2,0,1,33,7,0,52,3,0,0,32,6,0,16,3,52,11,0,1,50],"constants":[{"t":"s","v":"="},{"t":"s","v":"/"},{"t":"s","v":"empty?"},{"t":"s","v":"list"},{"t":"s","v":"starts-with?"},{"t":"s","v":"slice"},{"t":"n","v":1},{"t":"s","v":"replace"},{"t":"s","v":"."},{"t":"s","v":" "},{"t":"s","v":"sx-parse"},{"t":"s","v":"first"}],"arity":1}},{"t":"s","v":"auto-quote-unknowns"},{"t":"code","v":{"bytecode":[16,0,52,1,0,1,52,0,0,1,33,5,0,16,0,32,39,0,16,0,52,2,0,1,33,5,0,16,0,32,25,0,16,0,52,4,0,1,51,6,0,1,1,16,0,52,7,0,1,52,5,0,2,52,3,0,2,50],"constants":[{"t":"s","v":"not"},{"t":"s","v":"list?"},{"t":"s","v":"empty?"},{"t":"s","v":"cons"},{"t":"s","v":"first"},{"t":"s","v":"map"},{"t":"code","v":{"bytecode":[16,0,52,0,0,1,33,12,0,20,1,0,16,0,18,0,49,2,32,91,0,16,0,52,3,0,1,1,4,0,52,2,0,2,33,73,0,20,5,0,16,0,48,1,17,1,20,6,0,18,0,16,1,48,2,6,34,38,0,5,16,1,1,8,0,52,7,0,2,6,34,24,0,5,16,1,1,9,0,52,7,0,2,6,34,10,0,5,16,1,1,10,0,52,7,0,2,33,5,0,16,0,32,2,0,16,1,32,2,0,16,0,50],"constants":[{"t":"s","v":"list?"},{"t":"s","v":"auto-quote-unknowns"},{"t":"s","v":"="},{"t":"s","v":"type-of"},{"t":"s","v":"symbol"},{"t":"s","v":"symbol-name"},{"t":"s","v":"env-has?"},{"t":"s","v":"starts-with?"},{"t":"s","v":":"},{"t":"s","v":"~"},{"t":"s","v":"!"}],"arity":1,"upvalue-count":1}},{"t":"s","v":"rest"}],"arity":2}},{"t":"s","v":"prepare-url-expr"},{"t":"code","v":{"bytecode":[20,0,0,16,0,48,1,17,2,16,2,52,1,0,1,33,5,0,16,2,32,9,0,20,2,0,16,2,16,1,49,2,50],"constants":[{"t":"s","v":"url-to-expr"},{"t":"s","v":"empty?"},{"t":"s","v":"auto-quote-unknowns"}],"arity":2}}]}}