You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
dasLLAMA metal lens: derive @ROLE's read/write axis from kernel bodies (#3570)
* dasLLAMA metal lens: derive @ROLE's read/write axis from kernel bodies
The shared kernel-access classifier (the Vulkan lens's analyzer) gains a
field mode for class-shaped Metal kernels: tracked names are the class's
@ssbo fields, matched as bare names or explicit self.<name> (float4
component names shadow the classic buffer names, so plain ExprField name
matching is wrong); no recursion into free callees (intrinsic shims'
locals collide with bare-name matching — self-helpers hit the ratchet);
claims keyed by source location since infer clones subtrees. simdgroup
store/load + tg_store_float4 join the intrinsic table.
[metal_dispatch] now derives read/write/readwrite per @ssbo field from
the [metal_kernel] body and emits hz from the derivation; a declared role
on that axis is a cross-checked assertion (mismatch = compile error,
access_force=true restores the declared contract), weight/alias stay
declared (frame policy / hazard ownership are not kernel facts) with
weight-writes refused. The 110 read/write-axis declarations on lensed
classes are deleted; un-lensed classes keep their 258 declarations, now
cross-checked against the same derivation by the census lint — every
role in the metal modules is machine-verified, none is trust-me.
Deriving while all 592 declarations were still present validated the
migration and caught 3 stale hand roles (moe_wscale seli readwrite->read,
suppress_row x readwrite->write, pre_add_rms a readwrite->read — the last
one's comment still described the older in-place implementation).
Gates: metal modules compile clean, kernels suite 2/2 under STRICT.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q8bZnWkVWeXy8jfrxSojso
* skills/babysit: the reviewer is the tool, you are the judge — hard acceptance bar + all-reject terminal state
Acceptance bar is exactly two items: an actual reachable bug, or an actual
factual error in prose. Everything else rejects — no nits, no never-happens
bugs, no asteroid-hit guards, no structural tightening of proven-correct
code, no determinism cosmetics, no "cheap to fix". An all-reject round is
the expected outcome. The merge terminal state is a JUDGED round where
nothing got accepted — not Copilot running out of comments after
accept-and-repush cycles.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q8bZnWkVWeXy8jfrxSojso
---------
Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
0 commit comments