Skip to content

docs: fix Apple status drifts (MASTER_AUDIT row + metal4-key terminology) - #304

Merged
gstoner merged 2 commits into
mainfrom
docs/apple-status-drift
Jul 8, 2026
Merged

gstoner merged 2 commits into
mainfrom
docs/apple-status-drift

Conversation

@gstoner

@gstoner gstoner commented Jul 8, 2026

Copy link
Copy Markdown
Owner

Fix the two Apple status drifts

Surfaced while answering "what's open for the Apple compiler." Comment/doc-only — no capability values or tests changed.

1. MASTER_AUDIT Apple row was stale (real drift)

Its "still open" column listed items that have landed (binding specs, feature-limit-guided lowering, production packaged kernels, one-command-buffer JIT — all closed; APPLE_AUDIT.md's "Open Work" section is now empty). Rewrote it: Apple CPU+GPU execute natively and Apple is the reference impl of the shared KernelEmitter/KernelRunner/F4 framework (Workstream B); the real open frontier is performance + precision — a native simdgroup_matrix "steel-like" GEMM lane (clear-MPS), FP8/FP4/MX execution (macOS-27.0-SDK-gated, not hardware), and the world-class dims.

2. The metal4 feature-table key reads like a bug but isn't (terminology fix)

_APPLE_FEATURES[...]["metal4"] = "not_supported" on Apple7 looks wrong — the SDK on this M1 box ships the MTL4 headers (MTL4CommandQueue.h, MTL4MachineLearningPipeline.h, …) and the machine runs Metal 4. But the key gates the MTL4 cooperative-tensor-op runtime (command model + packaged ML), which is deliberately M5-gated and test-pinned (test_metal4_and_neural_accel_start_at_apple10_m5). That's distinct from:

  • "Metal 4 the API / MSL 4.0" — available Apple7+ (headers present); and
  • the Metal-4 ML compute surface Apple7 has — simdgroup_matrix / bfloat / MTLTensor-as-a-shader-datatype — which live in separate keys, already "ready".

Added a precise note to the status legend + fixed the misleading APPLE7 "No Metal 4" comment so the collision stops reading as a bug. Did not flip the value — whether M1 hardware-accelerates MTL4 cooperative tensor ops is an open device-probe question (task_fbb4d13b), and Decision #27 forbids flipping a Metal capability claim without grounding it. Confirmed task_fbb4d13b's original items (simdgroup_matrix/bfloat wrongly not_supported; M3/M4/M5 family map) are already fixed in the current code.

Verification

feature-limits 29/29 (values unchanged), frontmatter 8/8, drift gate in sync (19), docs lint passed, ruff clean.

🤖 Generated with Claude Code

@gstoner
gstoner enabled auto-merge (squash) July 8, 2026 02:45
…ogy)

Two drifts surfaced while reviewing what's open for the Apple compiler:

1. MASTER_AUDIT Apple row was stale — its "still open" listed items that have
   landed (binding specs, feature-limit-guided lowering, production packaged
   kernels, one-command-buffer JIT — all closed per APPLE_AUDIT.md's now-empty
   "Open Work"). Rewrote the row: Apple CPU+GPU execute natively and Apple is now
   the reference impl of the shared KernelEmitter/Runner/F4 framework (Workstream
   B); the real open frontier is performance + precision — a native
   simdgroup_matrix "steel-like" GEMM lane (clear-MPS), FP8/FP4/MX execution
   (macOS-27.0-SDK-gated, not hardware), and the world-class dims.

2. The `_APPLE_FEATURES` `metal4` key reads like a bug (`not_supported` on
   Apple7, whose SDK ships the MTL4 headers and whose machine runs Metal 4) but
   is NOT: it gates the MTL4 cooperative-tensor-op *runtime* (command model +
   packaged ML), deliberately M5-gated and test-pinned, distinct from "Metal 4
   the API / MSL 4.0" (Apple7+) and from the simdgroup_matrix/bfloat/MTLTensor
   compute surface (separate keys, already "ready"). Added a precise note to the
   status legend + fixed the misleading APPLE7 "No Metal 4" comment so the
   terminology collision stops reading as a bug. Did NOT flip the value —
   whether M1 hardware-accelerates MTL4 cooperative tensor ops is an open
   device-probe question (task_fbb4d13b) and Decision #27 forbids flipping a
   capability claim without grounding. Confirmed task_fbb4d13b's original items
   (simdgroup_matrix/bfloat wrongly not_supported; M3/M4/M5 family map) are
   already fixed in the current code.

Comment/doc-only — no capability values or tests changed. feature-limits 29/29,
frontmatter 8/8, drift gate in sync (19), docs lint passed; ruff clean.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gstoner
gstoner force-pushed the docs/apple-status-drift branch from 45a802a to 0f7fbfe Compare July 8, 2026 02:48
…int ratchet)

CI's unpinned `mypy>=1.11.0` resolved to the freshly-released mypy 2.2.0, which
narrows the `preserved` comprehension (over string-literal keys) to
dict[Literal[...], Any] and then rejects `**preserved` into TargetOp's
dict[str, Any] attrs — target_ir.py:1379, `[dict-item]`. Latent on main; my
docs PR was just the first to run under 2.2.0 (local mypy 2.1.0 doesn't flag it).

Fix: explicit `preserved: dict[str, Any]` annotation. Verified errors=0 under
mypy 2.2.0 + numpy<2.0 (CI's exact stack) via a throwaway venv, and under local
mypy 2.1.0. No behavior change.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@gstoner
gstoner merged commit 3181f94 into main Jul 8, 2026
17 checks passed
@gstoner
gstoner deleted the docs/apple-status-drift branch July 10, 2026 13:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant