docs: reflect arm-port carve-out; master is x86-only, aarch64 on branch
Mainline now carries roadmap #1-#5; the aarch64 context-switch port is a single untested commit on the arm-port branch. Update the task.md resume block and the README build section accordingly.
This commit is contained in:
@@ -67,8 +67,10 @@ benches/
|
|||||||
## Building and running
|
## Building and running
|
||||||
|
|
||||||
Standard Cargo. Requires Rust 1.95 or newer (the `#[naked]` attribute went stable
|
Standard Cargo. Requires Rust 1.95 or newer (the `#[naked]` attribute went stable
|
||||||
in 1.88; we use a few unrelated post-1.88 features). x86-64 Linux only —
|
in 1.88; we use a few unrelated post-1.88 features). `master` is x86-64 Linux
|
||||||
ARM64 and macOS are on the deferred list because of the assembly shim and the
|
only. An experimental, **untested** aarch64 context-switch backend lives on the
|
||||||
|
`arm-port` branch (extracted into a `target_arch`-gated `src/arch/`); it has not
|
||||||
|
been validated on hardware yet. macOS remains on the deferred list because of the
|
||||||
epoll dependency.
|
epoll dependency.
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
|||||||
@@ -5,17 +5,19 @@ before starting; the gotchas section is hard-won and will save you a faceplant.
|
|||||||
|
|
||||||
## Resume the environment
|
## Resume the environment
|
||||||
|
|
||||||
- Repo: `/home/claude/work/smarm`, branch `arm-port`, currently 8 commits past
|
- Repo: `smarm`. Two branches (the old single `arm-port` stack was split):
|
||||||
`master`:
|
- `master` — the mainline, and HEAD. Carries roadmap #1–#5: cooperative
|
||||||
- `a8fec02` aarch64 context-switch port
|
cancellation, supervisor strategies (one_for_one/all, rest_for_one) + the
|
||||||
- `183fd05` monitors (`monitor()` → `Receiver<Down>`)
|
orphaned-timer shutdown fix, links/trap_exit, selective receive, gen_server,
|
||||||
- `f617266` one-for-one supervisor (restart policies + intensity cap)
|
and demonitor/`MonitorId`. Tagged `v0.4.0`. x86-64 Linux only.
|
||||||
- `a8ddb4a` cooperative cancellation (roadmap #1 — done)
|
- `arm-port` — `master` plus a single commit: `feat(arch): aarch64 context
|
||||||
- `e80334b` fix: orphaned timers no longer block runtime shutdown
|
switch + cycle counter`. Extracts the x86-64 context-switch / stack-init /
|
||||||
- `351dc9c` one_for_all / rest_for_one + ordered shutdown (roadmap #2 — done)
|
cycle-counter out of `context.rs` into a `target_arch`-gated `src/arch/`
|
||||||
- `31133a6` docs(roadmap): mark #1 and #2 done
|
(x86_64 + aarch64 backends) and adds an AAPCS64 backend. ⚠️ UNTESTED: never
|
||||||
- `6581484` links + trap_exit (roadmap #3 — done)
|
built or run on real ARM hardware. The x86-64 path is unchanged
|
||||||
- (+ a trailing docs commit marking #3 done and refreshing supervisor/README)
|
(`arch/x86_64.rs` is the old `context.rs` body verbatim), so the x86 suite
|
||||||
|
passing says nothing about the aarch64 backend. Build + test on-device
|
||||||
|
before trusting it.
|
||||||
- Toolchain is installed but NOT on PATH in a fresh shell. First line of every
|
- Toolchain is installed but NOT on PATH in a fresh shell. First line of every
|
||||||
session: `. "$HOME/.cargo/env"` (rustc/cargo 1.96).
|
session: `. "$HOME/.cargo/env"` (rustc/cargo 1.96).
|
||||||
- Build `cargo build` · all tests `cargo test` · one suite `cargo test --test monitor`.
|
- Build `cargo build` · all tests `cargo test` · one suite `cargo test --test monitor`.
|
||||||
@@ -217,8 +219,11 @@ Shipped. What landed vs the plan:
|
|||||||
- Pure additive layer (no Slot/scheduler/spawn/finalize change) → no perf
|
- Pure additive layer (no Slot/scheduler/spawn/finalize change) → no perf
|
||||||
check run. Tests (`tests/gen_server.rs`): cast→call roundtrip, init/terminate
|
check run. Tests (`tests/gen_server.rs`): cast→call roundtrip, init/terminate
|
||||||
ordering, both server-down paths.
|
ordering, both server-down paths.
|
||||||
- Docs lag: README still says "x86-64 Linux only — ARM64 … deferred" and the
|
- Docs: README now points at the experimental, untested aarch64 port on the
|
||||||
module table calls `context` x86-64-only; update for the aarch64 backend.
|
`arm-port` branch. The module table still calls `context` x86-64-only — true
|
||||||
|
for `master`, since the `src/arch/` split rides on `arm-port`. Fold the arch/
|
||||||
|
split and ARM64-supported wording into the README module table + build section
|
||||||
|
once `arm-port` is validated on hardware and merged.
|
||||||
|
|
||||||
## Gotchas / invariants (respect these)
|
## Gotchas / invariants (respect these)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user