sx-tools: WASM kernel updates, TW/CSSX rework, content refresh, new debugging tools
Build tooling: updated OCaml bootstrapper, compile-modules, bundle.sh, sx-build-all. WASM browser: rebuilt sx_browser.bc.js/wasm, sx-platform-2.js, .sxbc bytecode files. CSSX/Tailwind: reworked cssx.sx templates and tw-layout, added tw-type support. Content: refreshed essays, plans, geography, reactive islands, docs, demos, handlers. New tools: bisect_sxbc.sh, test-spa.js, render-trace.sx, morph playwright spec. Tests: added test-match.sx, test-examples.sx, updated test-tw.sx and web tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
51
lib/render-trace.sx
Normal file
51
lib/render-trace.sx
Normal file
@@ -0,0 +1,51 @@
|
||||
(define *render-trace* false)
|
||||
|
||||
(define *render-trace-log* (list))
|
||||
|
||||
(define *render-trace-depth* 0)
|
||||
|
||||
(define
|
||||
render-trace-reset!
|
||||
(fn () (set! *render-trace-log* (list)) (set! *render-trace-depth* 0)))
|
||||
|
||||
(define
|
||||
render-trace-push!
|
||||
(fn
|
||||
(kind detail result)
|
||||
(when
|
||||
*render-trace*
|
||||
(set! *render-trace-log* (append *render-trace-log* (list {:result (if (> (len (str result)) 80) (str (slice (str result) 0 77) "...") (str result)) :depth *render-trace-depth* :kind kind :detail detail}))))))
|
||||
|
||||
(define
|
||||
render-trace-enter!
|
||||
(fn
|
||||
(kind detail)
|
||||
(when
|
||||
*render-trace*
|
||||
(render-trace-push! kind detail "...")
|
||||
(set! *render-trace-depth* (+ *render-trace-depth* 1)))))
|
||||
|
||||
(define
|
||||
render-trace-exit!
|
||||
(fn
|
||||
(result)
|
||||
(when
|
||||
*render-trace*
|
||||
(set! *render-trace-depth* (- *render-trace-depth* 1)))))
|
||||
|
||||
(define
|
||||
format-render-trace
|
||||
(fn
|
||||
()
|
||||
(join
|
||||
"\n"
|
||||
(map
|
||||
(fn
|
||||
(entry)
|
||||
(let
|
||||
((indent (join "" (map (fn (_) " ") (range 0 (get entry :depth)))))
|
||||
(kind (get entry :kind))
|
||||
(detail (get entry :detail))
|
||||
(result (get entry :result)))
|
||||
(str indent kind " " detail " → " result)))
|
||||
*render-trace-log*))))
|
||||
Reference in New Issue
Block a user