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>
a59b5cc
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>
0649594
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>
15bcb70
Upstreaming: note build-tooling consistency fixes in PR1
Port helper scripts relocated to ports/amiga/tools/ and CROSS_COMPILE made
overridable; both folded into PR1 and the curated branch rebuilt.
d578876
Upstreaming: history curation done (amiga-port-clean built)
260 commits curated to 8 linear commits on amiga-port-clean, byte-identical
to amiga-port (gate passes), with a real PR1 (bytecode-only, zero core
changes) / PR2 (native emitter) boundary. Mark item 3 done.
33f8299
Correct AmiSSL #111 framing: it was CPU speed, not a bug
The filed AmiSSL issue turned out to be a processor-speed limitation,
not an AmiSSL defect. Drop the bug-tracker link and state the resolution
plainly on both pages.
54fbb72
Upstreaming: add history-curation plan (item 3)
Scope finding: branch base == upstream master (zero drift), so item 3 is
pure curation, not a catch-up rebase. History has 12 merges, ~52 commits
for now-deleted docs, a mid-history test-path rename, and 16 fixups, so
recommend squash-to-fresh-history from upstream/master with a byte-identical
correctness gate. Includes proposed PR1/PR2 logical commit series.
fb4f544
Upstreaming: record PR1 prototype de-risk result
Prototyped PR1 (bytecode-only, no core py/ changes) on a throwaway
branch: all three variants build, setjmp NLR works, 30/30 non-native
smoke tests pass incl .mpy import, binary ~25 KB smaller. Also note
persistentcode.h is guarded by LOAD_NATIVE=0 so PR1 needs zero core
changes.
97ef2a7
Upstreaming: add native-emitter split plan (item 1)
Document the two-stacked-PR split: PR1 = bytecode-only port with zero
core changes, PR2 = the 68k native backend + register NLR. Include the
file manifests, why the split is clean, open details, and the build/test
matrix. Mark item 1 in progress.
b883ee2
Upstreaming: mark linter pass (item 6) done
Record that ruff lint/format, codeformat.py (uncrustify+fixup_c), and
codespell all pass on the port; update the status table and progress log.
a0cd031
Upstreaming: mark sync_upstream removal done
Item 4 (drop the fork-maintenance workflow) is complete; update the
status table, note, and progress log.
5f398c0
Add Upstreaming tracker page
Capture the contributor-guideline (generative-AI policy) requirements,
acceptance blockers/suggestions, audit findings, and progress log for
getting the Amiga port into upstream. Link it from Home.
b5c47a6
design log: record the asyncio execution-speed finding.
Add a known-limitations entry: asyncio is enabled, but a few timing/
ordering tests (gather_notimpl, wait_for, fair) fail on the slow 68k
because tasks get ph_key = ticks_ms() at create time and per-iteration
overhead (~12-50ms on the emulated 68020) outlasts the tests' short
sleeps, reordering output. Pass on unix; not a port bug; not timing
precision (us-precise busy-wait WFE unchanged); eases on faster hardware.
Signed-off-by: Simon Dick <simond@irrelevant.org>
cdc8dc7
Investigate the 3 asyncio Amiberry failures: execution-speed artifact.
Root-caused the 3 asyncio test failures (gather_notimpl, wait_for, fair).
They pass on the unix reference port, so they're Amiga-specific, but not
a port bug and not a timing-precision issue (a us-precise busy-wait WFE
left them unchanged). modasyncio.c stamps a new task's ph_key = ticks_ms
at create time; these tests assume the bookkeeping around their short
(10-100ms) sleeps is instantaneous, which holds on a fast host but not on
a 68k. The emulated 68020's per-iteration overhead is ~12-50ms
(measurable: asyncio_fair expects t2 5x in 0.45s, we get 4x), so a later
task's ph_key can land after an earlier task's reschedule and reorder the
output. Functionality is correct; only interleaving/count shifts. Eases
on faster hardware.
Signed-off-by: Simon Dick <simond@irrelevant.org>
76ac826
Mark vamos-can't-run tests with their Amiberry results.
Ran the 46 tests that fail under vamos (asyncio/ssl/socket/select/time +
ringio_async, all needing a real Amiga) on Amiberry: 43 pass. The 3
failures are timing-sensitive asyncio task-ordering tests
(asyncio_gather_notimpl, asyncio_wait_for, asyncio_fair) -- the
functionality works, only the cooperative interleaving / iteration count
differs from the reference .exp; asyncio_fair has no .exp and is diffed
against CPython's (different) scheduler. Not port bugs.
Signed-off-by: Simon Dick <simond@irrelevant.org>
919adf7
Refresh per-directory vamos tallies (post-MPZ + asyncio/ssl/select).
Full run-tests.py re-run on 2026-06-21. MPZ moved ~60 int_big tests from
self-skip to pass (basics +44, float +9, micropython +7). Fail count
rose 40->59, but every new failure was checked individually and is a
vamos limitation (asyncio/ssl/socket/time/select now run but need a real
Amiga -- they pass on Amiberry) or a harness/path artifact (argv,
import_file, sys_path); none are port regressions. Genuine platform
differences (struct1, float ULP, viper boundary, bytecode_limit)
unchanged.
Signed-off-by: Simon Dick <simond@irrelevant.org>
8045e11
intbig: switch to MPZ; int_big suite passes on vamos + Amiberry.
Signed-off-by: Simon Dick <simond@irrelevant.org>
bd48584
vfs_userfs.py fixed by enabling .mpy load; genuine-gaps list now empty.
Signed-off-by: Simon Dick <simond@irrelevant.org>
e955fdf
platform_basic.py fixed: frozen platform.py gains python_compiler/libc_ver.
Signed-off-by: Simon Dick <simond@irrelevant.org>
2ce6c52
Cross-connection poison fixed: clear OpenSSL error queue before SSL ops.
Signed-off-by: Simon Dick <simond@irrelevant.org>
e5cc985
urequests: shared SSLContext + close-on-failure; correct the framing.
The TLS flakiness is a post-handshake server reset, not CDN/handshake
fingerprinting -- AmiSSL handshakes fine, then the exchange resets.
Signed-off-by: Simon Dick <simond@irrelevant.org>
b640bf2
urequests hardened: TLS now on the single BIO transport.
Signed-off-by: Simon Dick <simond@irrelevant.org>
8efca81
asyncio-over-TLS works; note BIO stream path is more resilient.
Signed-off-by: Simon Dick <simond@irrelevant.org>
5fea77b
test-status: asyncio enabled; event loop runs over select/poll.
Signed-off-by: Simon Dick <simond@irrelevant.org>
71deee4
test-status: select/poll over bsdsocket now works.
Signed-off-by: Simon Dick <simond@irrelevant.org>
0108ee3
Phase-28 + test-status: Full extmod ssl suite passes.
Signed-off-by: Simon Dick <simond@irrelevant.org>
dd5ae9e
Phase-28: Note in-memory cadata support; ssl_cadata passes.
Signed-off-by: Simon Dick <simond@irrelevant.org>
b94ea32
Phase-28: Note stream-BIO wrap; upstream extmod ssl tests pass.
Signed-off-by: Simon Dick <simond@irrelevant.org>
1c212a9
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>
7354f18
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>
e03973b