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
Umbrella for the open Enzyme-rule and Enzyme-coverage issues. The exchange and BC sweeps have declared-transpose rules over raw storage (_exchange_storage! / _bc_storage! + BlockLayout); the operator sweeps do not, one crash is fixed but not root-caused, none of it is tested on a GPU or a packed field, and four gradient tests are skipped on Julia 1.13.
Optional, no issue: the Linux x86_64 segfault fixed in 9fc1b02 (formerly #40) was never root-caused. That commit removed the single-grid apply_bc!/fold_bc! rule and made the remaining rule bodies allocation-free in one step, so the candidates are allocation in the rule body and the removed rule's mixed pointer/isbits AbstractGrid argument (same class as EnzymeAD/Enzyme.jl#2707). Re-bisect with an upstream MWE only if a single-grid rule is ever wanted again.
Invariants that bind every sub-issue
A rule is an exact substitution of a declared transpose, never an approximation, and never fires on a path carrying operator parameters (ScalingOp, Advection with a Field coefficient) — test/autodiff.jl guards dκ (skipped on Julia 1.13 until test(ad): re-enable Enzyme gradient tests skipped on Julia 1.13 #108 lands).
Rule arguments may not mix GC pointers with inline floats (Julia 1.12 calling convention); rule bodies may not allocate. Both are documented in DESIGN §6 and CLAUDE.md.
A local macOS/aarch64 green run is not evidence about Linux x86_64. Push and read the CI matrix.
—
🤖 Claude refreshed this one: #40 left, #108 joined. claude-opus-5-5[1m] (high) · claude-code 2.1.285 · unreviewed
Activity
[-]meta(ad): Enzyme custom-rule coverage — operator pullbacks, rule-body constraints, GPU parity[/-][+]meta(ad): Enzyme coverage — operator pullbacks, packed/GPU parity, Julia 1.13[/+]