We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
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>
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>
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>
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>
Amiga testing: document serial reliability hardening; bulk runs now dependable Signed-off-by: Simon Dick <simond@irrelevant.org>
Amiga testing: add extmod-over-serial results; note stray .exp removed Signed-off-by: Simon Dick <simond@irrelevant.org>
Amiga testing: document basics-over-serial cascade/flakiness; suite is clean bar struct1 Signed-off-by: Simon Dick <simond@irrelevant.org>
Amiga testing: add float-suite-over-serial results (FPCR fix) Signed-off-by: Simon Dick <simond@irrelevant.org>
Amiga testing: time_res was a port FPCR bug, now fixed Signed-off-by: Simon Dick <simond@irrelevant.org>
Testing: correct time_res mechanism (LIBS: math lib auto-selects soft/FPU at runtime) Signed-off-by: Simon Dick <simond@irrelevant.org>
Testing: refine time_res note (all FPU modes truncate; only no-FPU full precision) Signed-off-by: Simon Dick <simond@irrelevant.org>
Testing: time_res is an Amiberry FPU-emulation artifact, not a port bug Signed-off-by: Simon Dick <simond@irrelevant.org>
Testing: import_file.py fixed (sys.path[0] relative for basename scripts) Signed-off-by: Simon Dick <simond@irrelevant.org>
Testing: triage import_file.py failure (harness sibling limit + absolute __file__) Signed-off-by: Simon Dick <simond@irrelevant.org>
Testing: serial run-tests.py -t works; 2026-06-20 re-run + Amiberry verification Signed-off-by: Simon Dick <simond@irrelevant.org>
Add investigation items for ClassAct and a header-to-Python tool. Two sized cost/benefit sketches under a new top-level "Investigation items" section (between Phase 39 and Other known limitations): - ClassAct / ReAction GUI binding: BOOPSI toolkit wrap to give the port a real windowed UI surface beyond Phase 30/31's modal requesters. Sketches API shape, ~30-class scope, layout-engine win, five open questions, two-phase split verdict. - Third-party header to drop-in Python constants tool (amiga-headergen): orchestrator over the existing fdgen / taggen / structgen engines emitting a single .py the user drops into PROGDIR:, removing the hand-translate-the-header pain for non-NDK libraries. Signed-off-by: Simon Dick <simond@irrelevant.org>
Document the 2026-06-13 tooling and conformance pass. Adds a "Tooling and upstream-conformance pass" subsection to the design log covering: - New tools/amiga-structgen.py, completing the trio with fdgen and taggen so all three NDK-derived data tables (FDs, tag IDs, struct layouts) are now generated rather than transcribed. - MIT license header retrofit on 25 port-local C/H files plus three variant headers. - mphalport.h guard renamed from #pragma once to MICROPY_INCLUDED_*. - main.c uncrustify pass (two #if/#endif indents). - Commit policy realigned with upstream's DCO -- sign-off on every new commit, branch to be squashed before any merge attempt so the unsigned historical commits don't matter. Also adds a cross-reference from the "Other known limitations" section to the testing wiki's expanded TODO failure list, so the two pages don't drift. Signed-off-by: Simon Dick <simond@irrelevant.org>
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>
Refresh suite snapshot for 2026-06-02 (MOVEQ fix + Phase 39).
Smoke test sweep: document new tests + asm68k MOVEQ fix.
Phase 39 step 4: btree (Berkeley DB) surface shipped.
Phase 39 step 3: deflate compress (write) surface shipped.
Phase 39 step 2: hashlib MD5 + SHA-1 shipped.
Phase 39 step 1: Wall-clock time surface shipped.
Phase 38: Add Status -- done blocks to design log and step plan.
Refresh Phase 28 / 29 pages with latest in-tree updates.
Import Amiga port design log and per-phase plans from in-tree docs/.
Initial Home page