Skip to content

History / Amiga port testing

Revisions

  • Note python.toml is gitignored; copy from committed example. Document that the Copperline config is local (gitignored via .git/info/exclude) and created by copying ports/amiga/python.toml.example. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 27, 2026
  • Add amiga-copperline-runtests.sh wrapper; fix python.toml path. Document the host-side directory-run wrapper (stage volume, gen .exp, on-device runner under -X serialdebug, stop-on-summary) and correct the config location to the repo-root python.toml. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 27, 2026
  • Document Copperline testing path and -X serialdebug capture. Add a Copperline section to the testing guide: independent FPU-correct emulator used as the oracle that pinned the Amiberry NaN bug, its current FPU-instruction gap (Copperline#45), and serial->stdout capture via the port's new -X serialdebug option (RawPutChar). Note the Amiberry 68881 NaN-mangling caveat alongside the FPU variant. Mirror the summary into the design log's testing section. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 27, 2026
  • Amiga docs: Add test-status scoreboard; slim the testing page. New Amiga-port-test-status page is the at-a-glance scoreboard: all 31 port-local smoke tests grouped by area with vamos/Amiberry status, the upstream-suite per-directory snapshot, and the remaining real-hardware failures split into genuine gaps / environmental / won't-fix platform differences, plus a recently-fixed table. Testing page cleanup (1048 -> 945 lines): - Consolidated the two conflicting suite snapshots into one "Suite results" section pointing at the scoreboard for the breakdown; kept the FPCR-rounding and sys.path[0] fix write-ups. - Compressed the float/basics/extmod serial narratives to their conclusions, with the forensic detail tucked into <details> blocks. - Replaced the two duplicated known-failure tables with a pointer to the scoreboard, so failure status has one home. - Added a runbook-vs-scoreboard pointer at the top. Repointed the design log's known-failures link and the now-orphaned testing-page anchors at the scoreboard. Home.md lists the new page. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga docs: Split the design log into per-phase wiki pages. Amiga-port-design.md shrinks from 2772 to 564 lines, becoming a lean index + architecture reference (overview, linked phase-status table, CPU/ABI, toolchain, NLR, GC, port layout, investigation items, known limitations, testing pointer). All per-phase log content moved out. New pages: Phase 12 (native emitter rework), 17 (library access), 18 (ARexx), 37 (datatypes, planned), 39 (extmod opt-ins); plus two era pages grouping the small foundational phases (0-11 Foundation, 13-27 Platform integration) to avoid stub pages. The 10 existing Phase-NN-*-plan pages (28-36, 38) absorb their design- log section as a "Design and rationale" block above the step plan, with Files/Status deduplicated. Every phase page gets a consistent H1 and a back-link to the design log; Home.md lists them all. Killed stale docs/phaseNN-*.md in-tree link targets and fixed a wrong Phase 17 link; verified zero dangling internal wiki links. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga docs: viper long-shift fix (Phase 12c) — emitter complete. The remaining viper failures were one bug, not the predicted register allocator + missing pointer opcodes: asm68k.h emitted word-size shift opcodes (LSL.W/LSR.W, and ASR encoded as ASL), so any viper shift past bit 15 was wrong. Fixed to LSL.L/LSR.L/ASR.L, flipping 6 tests. micropython/ is now 85 pass / 18 skip / 5 fail; the 5 remaining are big-endian vs little-endian-.exp byte-order differences in the viper ptr16/ptr32 boundary tests, moved to the platform-differences table. The native + viper emitter is functionally complete. MAX_REGS_FOR_LOCAL_VARS=1 is a perf limit, not a correctness gap. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga design log: Phase 12b done — native emitter complete. The native_const/closure/gen crashes were a big-endian byte-order bug: the emitter wrote prelude_ptr_index (and the generator start_offset) little-endian via mp_asm_base_data(), but the 68k reads it back as a native uintptr_t, so index 1 became 0x01000000 and child_table[] indexed out of bounds. Fixed by byte-swapping on N_68K. Mark Phase 12 done, rewrite 12b with the real root cause (the old A4 / ASM_CALL_IND theory was wrong — native->native calls already worked), and update the counts: micropython/ 79 pass / 18 skip / 11 fail, all 11 remaining are viper register/pointer gaps (zero native failures). Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga testing: Record full micropython/ vamos re-run for Phase 12a. Replace the derived +3/-3 NLR estimate with the measured full-suite result: micropython/ is 76 pass / 18 skip / 14 fail (was 70/18/20), +6 pass / -6 fail with zero regressions. The register NLR also fixed viper_try/viper_with/viper_globals (NLR-only, no viper register work needed), so the viper bucket drops 14 -> 11 and native 6 -> 3. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga design log: Phase 12a register NLR done; split out 12b. try/except/with in @micropython.native now work via the register-based 68k NLR (nlr68k.S + nlr68k_jump.c). Mark Phase 12a done, break the residual native-call/closure/generator crashes out as Phase 12b, and update the NLR architecture description, limitations tables, and the test-failure counts (native bucket 6 -> 3; micropython/ +3 pass). Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga testing: document serial reliability hardening; bulk runs now dependable Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga testing: add extmod-over-serial results; note stray .exp removed Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga testing: document basics-over-serial cascade/flakiness; suite is clean bar struct1 Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga testing: add float-suite-over-serial results (FPCR fix) Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Amiga testing: time_res was a port FPCR bug, now fixed Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Testing: correct time_res mechanism (LIBS: math lib auto-selects soft/FPU at runtime) Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Testing: refine time_res note (all FPU modes truncate; only no-FPU full precision) Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Testing: time_res is an Amiberry FPU-emulation artifact, not a port bug Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Testing: import_file.py fixed (sys.path[0] relative for basename scripts) Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Testing: triage import_file.py failure (harness sibling limit + absolute __file__) Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Testing: serial run-tests.py -t works; 2026-06-20 re-run + Amiberry verification Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 20, 2026
  • Enumerate the 35 pending-work test failures. Adds a "Known failures pending port work (TODO)" subsection beside the existing "not port bugs" table, grouping the current 35 failures captured against commit 98a3a6e4c (standard variant, vamos) by cause and pairing each group with the port work that would close it: 6 native_* Phase 12 NLR for try/except/with/closures 14 viper_* viper register allocator + 16/32-bit pointer ops 5 ssl_* AmiSSL API subset triage 3 socket_* vamos bsdsocket gaps (re-verify on Amiberry) 1 select vamos poll() gap 3 time_* vamos clock quantum 1 import vamos host-path rewrite for __file__ 1 vfs userfs root-mount collision with VfsAmiga 1 platform sys.platform="amiga" not in test's expected list Existing 4 "real platform difference" rows (struct1, float_parse*, float_format_accuracy) are unchanged and now sit under their own sub-heading to keep that distinction clear. Signed-off-by: Simon Dick <simond@irrelevant.org>

    @sidick sidick committed Jun 13, 2026
  • Refresh suite snapshot for 2026-06-02 (MOVEQ fix + Phase 39).

    @sidick sidick committed Jun 2, 2026
  • Smoke test sweep: document new tests + asm68k MOVEQ fix.

    @sidick sidick committed Jun 2, 2026
  • Import Amiga port design log and per-phase plans from in-tree docs/.

    @sidick sidick committed Jun 2, 2026