checkpoint: P5.8 partial — m3te + distribution validated with the new build pipeline

This commit is contained in:
agra
2026-06-19 15:40:51 +03:00
parent a91b6e8ae0
commit 224478fabf

View File

@@ -431,6 +431,22 @@ when reached (sentinels or accessor fns; see the design doc Risks).
`List` growth; orthogonal, see `current/CHECKPOINT-METATYPE.md`.)
## Log
- **P5.8 (partial) — real-project validation: m3te + distribution build with the new pipeline (2026-06-19).**
Acceptance test for the sx-driven build pipeline. **m3te** (`~/projects/m3te`, an SDL3 match-3 game): migrated
its `build.sx` off the deleted API — `configure_build :: ()` → `() abi(.compiler)`, `opts.set_post_link_callback(
bundle_main)` → `on_build(bundle_main)` (the ONLY source change needed). Then `sx build main.sx` produces a valid
SIGNED macOS `.app` (correct `Contents/{MacOS,Resources}` layout, `Resources/assets/` bundled, links Homebrew
SDL3, passes `codesign`); `sx build --target ios-sim main.sx` produces the flat iOS `.app` (DTPlatformName=
iPhoneSimulator; system-framework "not embedded" warnings are expected/benign). So BOTH the macOS and iOS-sim
bundle paths validate end-to-end on real project code. **distribution** (`~/projects/distribution`, a
server/CLI+sqlite project, NO bundling): `make build` clean (smoke + dist binaries via `default_pipeline`'s
emit+link with C objects + vendored sqlite); `make test` 24/25 (the 1 fail, `publish_happy.sx`, is a PRE-EXISTING
stale `#foreign` parse error — that keyword is gone from the parser; unrelated to the pipeline/this session).
**m3te's `build.sx` edit is in its working tree, uncommitted (the user's repo) — reported, not committed.**
> **REMAINING P5.8:** iOS-device + Android paths still unvalidated on this host (no device identity round-trip /
> Android SDK); add `.app`/`.apk` bundle SMOKE TESTS to the corpus (needs corpus-runner support — a `.build`
> directive for a bundle dir + structure assertion + cleanup; deferred as its own focused step). m3te is now a
> repeatable real-project acceptance test in the meantime.
- **P5.6 (macOS path) — `default_pipeline` drives bundling; fix issue 0125 (2026-06-19).** `build.sx` now
`#import`s `platform/bundle.sx` and `default_pipeline` delegates to `bundle_main` when `bundle_path()` is set
(emit+link via the shared `emit_and_link` core, then wrap the `.app`/`.apk`); else just emit+link. **Removed the