Commit Graph
17 Commits
Author SHA1 Message Date
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
Jonas VolmanandClaude Fable 5 ce3764d331 Add the C1 differential profiler and record why it does not sample yet
c1_sampler.py profiles m6only.c against m6none.c (identical headers and
locals, cross product removed) so header parsing cancels and expression
building stands out. It collects zero samples today, diagnosed rather than
assumed: OpenThread fails for all four threads, and the loop gets a single
pass before the sub-second compile exits, so Toolhelp-based sampling from
64-bit Python is far too coarse either way.

Fix for both recorded: launch CL suspended via CreateProcess to hold the
thread handle directly (no Toolhelp, no OpenThread), then tight-loop and
accumulate across many compiles - the approach the older acc_sampler used.
Cheaper alternative also recorded: a differential BREAKPOINT profile with
dbg32, which already fires on C1, trading many runs for a proven harness.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:51:32 -07:00
Jonas VolmanandClaude Fable 5 10239359b2 Record the second negative wave in the true flat-dot basin
Every earlier caller and helper sweep this session ran in the refuted
grouped-dot basin and was void. Re-run against unmodified production
headers: dot expression trees, the attested historical spellings from the
corpus census, call-site order and naming, dataflow/use-count changes
(reading the cross from s_plane.n, build order, crossing into t_plane.n),
scale_vector3d structure, and cross_product3d implementations. None moves
the 20 lines; roughly 65 shapes now measured across every structural class.

Sweep harnesses preserved so the negatives are reproducible rather than
just asserted.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:51:32 -07:00
Jonas VolmanandClaude Fable 5 f3284264e9 Map the C2 FP emit path against the micro_m6 tie
Single-function target m6only.c isolates the cross-product operand tie.
Measured: the FP path runs through byte emitter 0x107455e6 (called from
0x10744452) with edi holding a live IR node; opcode at node[+4] (0x24e),
operand pointer at node[+0x18], member leaves one 0x60 stride apart. The
assembled function is findable in the arena by pattern scan - prologue at
buffer+0 and the tied fld at buffer+0x18 - so the deciding bytes are
addressable at run time. Node/buffer offsets are deterministic; only the
arena base shifts per run.

Negatives recorded: all previously-mapped FP decision sites (0x10745628,
0x10744304, 0x10735135) take zero hits here - they were mapped from an
ai_debug compile and are path-specific. And the emitter's hits are NOT
1:1 with FP instructions (4 of 12 displacement positions match), so an
earlier node differential keyed on hit order was invalid and is discarded.

Next instrument: runtime-resolved watchpoints in dbg32, watching the
displacement byte at buffer+0x1a to get the operand encoder.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:51:32 -07:00
Jonas VolmanandClaude Fable 5 bed9ca0ad4 Preserve the c2 probe lab for the commutative-order residual
micro.c::micro_m6 is a 96-byte reproduction of the cross-product operand
tie; probe_cross.c reproduces the full caller context. probelab.py compiles
either with the unit's real flags and disassembles one function, so the
next session can iterate in seconds instead of minutes.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-31 15:51:07 -07:00
Jonas Volman 40a88b9e8a Close matrix_math.obj with authenticated AP-930 kernel 2026-08-31 15:36:07 -07:00
Jonas Volman 86d8c2ba46 Close Director camera cluster with credible exact C 2026-08-30 23:12:23 -07:00
Jonas Volman decf689cb5 Replace Director assembly transcription with credible C 2026-08-30 22:39:31 -07:00
Jonas Volman 37947362e4 Remove fake Active Camouflage wrapper matches 2026-08-30 22:14:36 -07:00
Jonas Volman d4094d830b Park circular queue optimizer tie credibly 2026-08-30 22:04:24 -07:00
Jonas Volman 3ee1fd695e Close object shadows in ordinary C 2026-08-29 12:44:46 -07:00
bnunu fd9c8eb095 Publish Units, HS, and campaign tooling progress
Carry forward three Units reconstruction advances, complete hs_library_external at 36/36 target-owned functions and 3824/3824 padded bytes, and admit it as Matching.

Also harden parked-function validation for assembly transcriptions and enable MSVC header dependency tracking. Full 568-object builds and all 205 tooling tests pass; the parked manifest has zero stale or invalid entries.
2026-08-28 08:17:11 -07:00
Jonas Volman 3e060a85fc Add Fable 5 units closeout prompt 2026-08-26 23:07:44 -07:00
Jonas Volman f623e0bacc Match data encoding object 2026-08-13 05:30:26 -07:00
Jonas Volman 800d746dd6 Match data packets object 2026-08-13 05:30:26 -07:00
Jonas Volman 9934cbe876 Match public key crypt object 2026-07-29 18:13:34 -07:00
Jonas Volman 307f77efce Document circular queue optimizer fixed point 2026-07-29 10:12:29 -07:00