checkpoint: P5.8 — Android + iOS-sim validated on emulator/simulator
This commit is contained in:
@@ -446,6 +446,27 @@ when reached (sentinels or accessor fns; see the design doc Risks).
|
||||
`List` growth; orthogonal, see `current/CHECKPOINT-METATYPE.md`.)
|
||||
|
||||
## Log
|
||||
- **P5.8 — Android + iOS-sim validated end-to-end on emulator/simulator; first Android bundler corpus coverage
|
||||
(2026-06-19).** The sx-driven build pipeline now validated on BOTH mobile targets via the local
|
||||
emulator/simulator. **Android (Pixel_10_Pro emulator):** `sx build --target android --apk … -o lib….so`
|
||||
produces a valid SIGNED `.apk` (AndroidManifest.xml + resources.arsc + `lib/arm64-v8a/lib….so` + classes.dex +
|
||||
apksigner META-INF) via `default_pipeline → bundle_main` (javac/d8/aapt2/zip/zipalign/apksigner all on the
|
||||
comptime VM); `adb install` + `am start` → the app **runs (no crash)** for the `super.onCreate(b)` example
|
||||
(1424). **iOS-sim (iPhone 17 Pro simulator):** `sx build --target ios-sim --bundle …` → signed `.app`;
|
||||
`simctl install` + `launch` → the sx AppDelegate fired (`[sx] application:didFinishLaunchingWithOptions:
|
||||
called`), UIApplicationMain run loop alive. **THREE comptime-VM host-FFI gaps fixed to make the Android bundler
|
||||
run on the VM** (`d8fb425`): (1) an extern returning an OPTIONAL-of-word (`getenv() -> ?cstring`) now wraps the
|
||||
bare C payload word into the `{payload, has}` aggregate (present iff non-null), mirroring emit_llvm's
|
||||
`char*`→`?cstring`; (2) `struct_init` of the builtin two-word aggregates `string`/`any` (e.g.
|
||||
`from_cstring`'s `string.{ ptr=, len= }`); (3) the non-word-return bail now names the symbol + type. **`.apk`
|
||||
corpus smoke test** (`2ba36f6`, `examples/1666-platform-android-apk-smoke`): a new `.build` `apk` directive
|
||||
(cross-compile `--target android --apk`, build+inspect, NO execution) GATED on Android-SDK + real-JDK presence
|
||||
— SKIPS cleanly on hosts without them (so normal `zig build test` stays green), RUNS+PASSES with `JAVA_HOME`
|
||||
set (apk built + `AndroidManifest.xml`/`classes.dex`/`lib/arm64-v8a/` asserted, then cleaned up). Requires a
|
||||
real JDK (the macOS `/usr/bin/javac` stub fails); Android Studio's JBR works. **709 ran + 1666 skipped (no
|
||||
JDK) / 0 failed + 476/476 unit.** macOS `.app` (1665) + Android `.apk` (1666) now both cover the bundler.
|
||||
> **REMAINING (true tail):** iOS-DEVICE codesigning/provisioning (needs a real device + signing identity — a
|
||||
> simulator can't exercise the device-identity flow). Everything else in the stream is done.
|
||||
- **Empty-member types are VALID for all kinds (user design decision, 2026-06-19).** A comptime-constructed type
|
||||
with NO members now mints for every kind (empty `struct`, empty `tuple`/unit, empty `enum`, empty
|
||||
`tagged_union`); ONLY a bare `declare("X")` never completed by a `define` stays rejected. `registerTypeVm`
|
||||
|
||||
Reference in New Issue
Block a user