Phase 1 Step 1 of the architecture roadmap. The old cssx.sx (cssx-resolve, cssx-process-token, cssx-template, old tw function) is superseded by the ~tw component system in tw.sx. - Delete shared/sx/templates/cssx.sx - Remove cssx.sx from all load lists (sx_server.ml, run_tests.ml, mcp_tree.ml, compile-modules.js, bundle.sh, sx-build-all.sh) - Replace (tw "tokens") inline style calls with (~tw :tokens "tokens") in layouts.sx and not-found.sx - Remove _css-hash / init-css-tracking / SX-Css header plumbing (dead code — ~tw/flush + flush-collected-styles handle CSS now) - Remove sx-css-classes param and meta tag from shell template - Update stale data-cssx references to data-sx-css in tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
47 lines
2.1 KiB
Bash
Executable File
47 lines
2.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Full SX build pipeline — OCaml + JS browser + JS test + JS tests.
|
|
set -euo pipefail
|
|
|
|
cd "$(dirname "$0")/.."
|
|
|
|
echo "=== OCaml build ==="
|
|
(cd hosts/ocaml && eval $(opam env 2>/dev/null) && dune build) || { echo "FAIL: OCaml build"; exit 1; }
|
|
|
|
echo "=== Sync WASM kernel to shared/static/wasm/ ==="
|
|
OCAML_BUILD=hosts/ocaml/_build/default/browser
|
|
cp "$OCAML_BUILD/sx_browser.bc.wasm.js" shared/static/wasm/sx_browser.bc.wasm.js
|
|
cp "$OCAML_BUILD/sx_browser.bc.js" shared/static/wasm/sx_browser.bc.js
|
|
cp -r "$OCAML_BUILD/sx_browser.bc.wasm.assets" shared/static/wasm/
|
|
echo " WASM loader: $(du -sh shared/static/wasm/sx_browser.bc.wasm.js | cut -f1)"
|
|
echo " JS fallback: $(du -sh shared/static/wasm/sx_browser.bc.js | cut -f1)"
|
|
|
|
echo "=== Sync spec .sx to dist (canonical → dist) ==="
|
|
cp spec/signals.sx hosts/ocaml/browser/dist/sx/core-signals.sx
|
|
cp spec/render.sx hosts/ocaml/browser/dist/sx/
|
|
cp spec/harness.sx hosts/ocaml/browser/dist/sx/
|
|
echo " spec → dist: 3 files"
|
|
|
|
echo "=== Sync web .sx to dist (wasm/sx → dist) ==="
|
|
for f in signals.sx deps.sx router.sx page-helpers.sx freeze.sx \
|
|
bytecode.sx compiler.sx vm.sx dom.sx browser.sx \
|
|
adapter-html.sx adapter-sx.sx adapter-dom.sx \
|
|
boot-helpers.sx hypersx.sx harness-reactive.sx harness-web.sx \
|
|
engine.sx orchestration.sx boot.sx \
|
|
tw-layout.sx tw-type.sx tw.sx; do
|
|
if [ -f "shared/static/wasm/sx/$f" ]; then
|
|
cp "shared/static/wasm/sx/$f" "hosts/ocaml/browser/dist/sx/"
|
|
fi
|
|
done
|
|
echo " wasm/sx → dist: web files synced"
|
|
|
|
echo "=== Recompile .sxbc bytecode ==="
|
|
node hosts/ocaml/browser/compile-modules.js || { echo "FAIL: sxbc compile"; exit 1; }
|
|
|
|
echo "=== JS browser build ==="
|
|
python3 hosts/javascript/cli.py --output shared/static/scripts/sx-browser.js || { echo "FAIL: JS build"; exit 1; }
|
|
echo "=== JS test build ==="
|
|
python3 hosts/javascript/cli.py --extensions continuations --spec-modules types --output shared/static/scripts/sx-full-test.js || { echo "FAIL: test build"; exit 1; }
|
|
echo "=== JS tests ==="
|
|
node hosts/javascript/run_tests.js --full 2>&1 | tail -3 || { echo "FAIL: JS tests"; exit 1; }
|
|
echo "=== All OK ==="
|