Files
Cesarus85--mjolnir-vr/research
Jonas VolmanandClaude Fable 5 ffb69dfbaf Fix the C1 sampler with a suspended launch; record two traps it exposed
c1_sampler2.py launches CL.Exe CREATE_SUSPENDED so the main thread handle is
owned outright - no Toolhelp, no OpenThread, which is what defeated the first
version - then tight-loops Suspend/Wow64GetThreadContext/Resume and
accumulates over N compiles. It works: 333,991 C1 samples for m6only.c vs
163,140 for the control over 6 runs each, showing C1 does ~2x the work when
the inline expression is present.

Two traps caught by verification, not assumed:
- int3-padding "function starts" are labels, not entry points; five
  top-ranked ones took zero breakpoint hits. Raw sampled EIPs are the valid
  targets.
- the top differential EIPs are hot shared parser code: breakpointing the
  five highest-excess raw EIPs fires in BOTH compiles at the 250-hit cap, so
  the "excess" is largely volume, not expression specificity.

dbg32 now prints hit counts with 8 hex digits instead of 1 (250 printed as
"a" before), so differential counting is possible at all.

Requirements for a next attempt recorded: count-only mode with a raised cap,
a work-matched control (same expression, non-commutative operators), and
call-target attribution instead of int3 boundaries.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:51:32 -07:00
..