-
Notifications
You must be signed in to change notification settings - Fork 0
Phase 38 readme plan
Companion to the Phase 38 design block in Amiga port design. That section answers what and why; this file is the step-by-step ship plan — how to chunk the work into landable PRs.
The goal is an upstream-quality ports/amiga/README.md: same
shape as the other port READMEs (rp2, stm32, esp32, unix),
suitable for a first-time visitor to land in ports/amiga/ and
understand what they're looking at. The in-port phase log,
testing runbook, and architecture notes stay where they already
are (docs/amiga.md, docs/amiga-testing.md).
Step 1: Draft README + cross-link from docs/amiga.md
↓
Step 2: Polish + close
| # | Step | Output |
|---|---|---|
| 1 | Initial ports/amiga/README.md draft covering heading, intro, supported-features list, build instructions, deployment, accessing the REPL, and a brief testing pointer. Cross-link from the top of docs/amiga.md so the in-port doc points new readers at the README first. |
New README file + one-line link addition. |
| 2 | Polish pass: verify the supported-features list against the current phase status table; check every link resolves; align the section headings with the most common other-port shape (Building, Running, Testing); flip docs/amiga.md Phase 38 → ✅. |
Final README + status flip. |
A ports/amiga/README.md with the following sections, in order:
-
MicroPython port to AmigaOS 3.x(heading,====underline) - Intro paragraph(s) — what the port is, AmigaOS 3.x / 3.1+ minimum, 68020+ CPU target, what binary it produces, how it launches (Shell or Workbench).
-
Supported features — bullet list. Group roughly:
- Core language: dynamic heap, 68k native code emitter, frozen modules, persistent REPL history, line editing, Ctrl+C handling.
- File system: Pythonic VFS, AmigaDOS path semantics.
- AmigaOS APIs:
amiga.library(proxy +.fdtrampoline),amiga.intuition,amiga.asl,amiga.icon,amiga.catalog, ARexx (in / out /RexxClient), env-var integration, volume / assign introspection, AmigaDOS pattern matching,timer.device-backedtime. - Networking:
socketviabsdsocket.library. - TLS: AmiSSL v5 (variant-gated).
-
urequestsfrozen HTTP/HTTPS client. -
platform.amiga_info()andplatform.*identity. -
os/os.path: standard surface pluschmod/getprotect/FIBF_*/makedirs/walk/ AmigaOS-aware path helpers.
-
Building — bebbo gcc 6.5 toolchain pointer (link to bebbo's
GitHub),
make -C mpy-crossprerequisite,cd ports/amiga && make, the three variants and how to select viaVARIANT=. Mentiontools/amiga-build.shas the CI-mirror Docker route for portability. - Deploying — copy the binary to an Amiga drive; protect the bits; on Amiberry, drop into a hard-file mount. One paragraph each.
-
Accessing the REPL — invoke from Shell (
micropythonormicropython script.py); brief Workbench-launch note (double-click; output via tooltypeSCRIPT=). -
Testing — vamos (host, headless) and Amiberry (full
emulation) one-paragraph each, pointing to
docs/amiga-testing.mdfor the full runbook. -
Further reading — short link list:
docs/amiga.md(design and phase status),docs/amiga-testing.md(testing runbook).
- Match the style of
ports/rp2/README.mdandports/stm32/README.md: setext-style====underline for the H1,----for H2, plain markdown otherwise. Code blocks use```fences; shell prompts as$. - Don't reference Phase numbers in the README -- those are
internal to
docs/amiga.md. The README describes the port as it exists now, not the path that got us there. - Don't repeat what
docs/amiga-testing.mdalready covers; point to it instead. - A "Limitations" subsection is welcome but should be terse and
factual (e.g. "No
@micropython.nativetry/except; no@micropython.vipermulti-register locals — both bounded by the 68k emitter rework"). Detail belongs indocs/amiga.md.
Open the file in a Markdown renderer; check every link resolves; read it top-to-bottom from the perspective of someone who has never seen the port before and ask "could I build this in 30 minutes?"
- Re-check the supported-features list against the live phase
status table in
docs/amiga.md(anything still planned should stay off the README's "what it has today" list). - Cross-link from
docs/amiga.md's Overview toports/amiga/README.mdso the in-port doc points new readers at the README first. -
docs/amiga.mdPhase 38 status → ✅.
-
grep -rn "ports/amiga/README.md"acrossdocs/andports/amiga/confirms cross-references are in place. - Open both
docs/amiga.mdand the new README; the README is the entry point,docs/amiga.mdis the depth.
- No emoji. Other-port READMEs are plain markdown; we match.
-
AmigaShell prompts. When showing a sample, use
1>as the prompt to mirror AmigaDOS conventions (not$). -
No fork-specific URLs. The README should read as if it's
already in upstream -- no
sidick/micropythonreferences, nodocs/phase*-plan.mdlinks (those are work-in-flight planning docs, not user-facing). Referencedocs/amiga.mdanddocs/amiga-testing.mdonly. -
Length budget. ~150–200 lines. If a section grows past 30
lines, consider whether it belongs in
docs/amiga.mdinstead.
- Examples directory (
examples/amiga/) — separate work if a caller asks. Other ports don't always have one. - A "What's new" / changelog — git log is authoritative.
- Phase plan summaries —
docs/amiga.mdalready does this. - Architectural deep-dives (trampoline ABI, FD parser, native emitter codegen) — too much for a README.
Both steps shipped.
Step 1 — Draft. ports/amiga/README.md landed with the
sections in the order specified above. The original "cross-link
from docs/amiga.md" deliverable was supplanted by the docs
migration: the design log moved to the fork wiki, and the
README's "Further reading" section now points at
Amiga port design and
Amiga port testing on the wiki instead.
Step 2 — Polish + close.
- Supported-features list cross-checked against the live phase
status table: nothing from Phase 12 (68k NLR rework), Phase 37
(
amiga.datatypes), or Phase 39 (extmodopt-ins) leaked in. - All links resolve (HTTP 200 against the wiki pages and the bebbo gcc upstream).
- Section headings align with the upstream-port convention —
Building / Running / Testing / Limitations / Further readingwith an Amiga-specificDeployingsection betweenBuildingandRunningfor the icon / tooltype / emulator-mount content that doesn't fit elsewhere. - Phase 38 flipped to ✅ on Amiga port design; a fuller status block there records the final README sections and the deviations from the original plan.
Carried into the upstream PR moment:
- README's "Testing" and "Further reading" sections use
fork-specific wiki URLs (
github.com/sidick/micropython/wiki/...). These will need rewriting at the upstream PR moment. - The "Further reading" targets are wiki pages, not
docs/amiga*.mdfiles as the original plan envisioned (those files no longer exist in-tree — the wiki is the new home).