Skip to content

Commit 06ddf4f

Browse files
committed
docs(gh62): round-6 demand-driven D8 redesign — 5 artefacts (refs #62)
Round-6 cross-LLM review (opus47_deep + codex_gpt5 + gemini + deepseek) empirically verified the round-5 D8 scope against the corpus and the compiled monitor bytecode and surfaced three premises that did not hold: 1. Monitor bytecode has zero org.aspectj.* references (the round-5 "WRONG-DATA in production" framing described a flow that does not execute — signatureFor() has zero callers in production). 2. AspectDescriptor.namedPointcuts() does not exist (round-5 §4.M.5 silently assumed a cross-repo schema change that was never planned). 3. Round-5 nominal-family scope (Reflective API + Matcher Correctness) misses the largest measured gap: condition(...) MOP-extension guard appears in 74 sites and was conflated with AspectJ if() PCD which has zero .mop source demand. Round-6 replaces nominal-family scope with eight demand-driven closures: - §4.G condition(...) MOP guard emit (74 sites) - §4.W positive within(typePattern) matcher (28 sites) - §4.O T+ in call() owner position (~73 sites) - §4.N !target(T)/!args(T) parser specialization (32 sites) - §4.X method-name glob name* (~16 sites) - §4.S __STATICSIG JavaMOP macro support (3 sites) - §4.Y staticinitialization synthesis when <clinit> absent (6 sites) - §4.T after() throwing(...) end-to-end install (2 sites) Plus zero-cost matcher fix: - §4.D NamedRefPC resolver via existing AspectDescriptor.getCommonPointcut() Dropped from round-5: br.unb.cic.rv.aspectjlang.* shipped runtime (~600 LOC for 0 demand sites), standalone TargetPC/ArgsPC (0 sites), !cflow/!if/!handler parseUnary specialization (0 sites), ThisJoinPointEmitter rewrite cascade, coverage-weaver alignment (defect inexistent — SignatureFormatter already correct). Smoke validation §6.S replaces round-5 ±5% event-count parity gate with three demand-driven gates: A) no new VerifyError (hard); B) monotonic non-decrease event count (hard); C) per-closure positive evidence (hard — each of the 8 closures + namedref MUST produce ≥1 new event in ≥1 APK). INV-INS-94 (round-6) covers all 8 demand-driven closures + NamedRefPC resolver. INV-INS-95 becomes advisory LOC-vs-matrix-delta tripwire. Empirical verification commands documented in commit (see ledger.md and proposal.md §"Scope expansion (round-6 demand-driven D8)"). openspec validate --strict PASS. 5 files changed; round-5 nominal-family scope replaced by demand-driven gap closures; ~530-580 LOC realistic production budget vs round-5's nominal 700-1000 (and ~1500-2000 if the round-5 premises had been actually implemented).
1 parent c5d870c commit 06ddf4f

5 files changed

Lines changed: 249 additions & 138 deletions

File tree

0 commit comments

Comments
 (0)