Files
rea/experiments/atomic-codemode/savepoint-control-oracle.md
T
e2205313a5 feat(experiment): expose bounded full recovered graphs
Preserve complete graph facts with a bounded lossless native wire codec and
shared paged Evidence views. Verify both MCP adapters and retained legacy
records, then freeze a control/data-flow question and oracle for real agents.

[AUTOMATED] Exploratory native patch; no upstream integration or PR.

Co-authored-by: gensokyo-dev <342580529+gensokyo-dev@users.noreply.github.com>
Co-authored-by: Kaoru0822 <208281322+kaoru0822-kitauji@users.noreply.github.com>
2026-10-16 13:47:33 +00:00

6.0 KiB

Savepoint format/control oracle

Pinned before model trials; not provided to measured models. This question gives a function name and messages, not entry, instruction, graph or value addresses. It is still a scoped local investigation, not general unseeded reconstruction. Both atomic adapters share the same native facts and authority. No traditional provider cell exists for this question, whose required graph identities are not a fair provider-independent outcome for such a cell.

Target: Debian SQLite 3.40.1-2+deb12u2 amd64, /usr/lib/x86_64-linux-gnu/libsqlite3.so.0 -> .0.8.6, SHA-256 2e6eef9a727f081f0d453b4e5e6cbd8b9ef8b6f86cbf7681cbad444d3b0b55c8. Preserved engine: 677b9795d49a65e459054ecbd3c0df37d603b541d72df9f74b46778947ed3936.

The exact-name inventory has entries 0x288f0 (16 bytes) and 0xea6d0 (32,384 bytes), with identical names and no aliases. The inventory alone does not label PLT versus implementation. Incoming data references from the two strings identify the owning sqlite3VdbeExec entry 0xea6d0; the CLI reproducer verifies this composition. Do not select by catalog order or claim the name establishes binding.

Format Address / NUL-inclusive bytes Producer / block Merge input
cannot open savepoint - SQL statements in progress 0x12c500 / 51 0xf2381:712c / 1142 0, v100012a75, edge 1142:0
cannot release savepoint - SQL statements in progress 0x12c538 / 54 0xf2437:753c / 1158 1, v10001352e, edge 1158:0

Both CPUI_PTRSUB format producers use constant-zero input 0 and the eight-byte address constant at input 1. Both feed PHI 0xf238b:ceb7 in block 1159, output v100033f25, passed in RSI (eight-byte register storage at 0x30) at recovered input index 2 of shared CALL 0xf238b:7130. The native target is ram:0x296c0, label sqlite3VdbeError, independently verified as the machine direct CALL target; runtime binding and complete source signatures remain unknown.

Local recovered conditions

Setup Controller / CBRANCH True edge / destination False edge / destination Condition
open, block 1142 block 1141, 0xedc01:7065 1141:1 -> 1142 1141:0 -> 1143 v100012864, ne-zero
release, block 1158 block 1157, 0xf0389:71b8 1157:1 -> 1158 1157:0 -> 1161 v100012bd9, ne-zero

The open condition is one-byte v100012864, defined by 0xedc01:7064 CPUI_INT_SLESS: input 0 is four-byte constant zero v30001285f; input 1 is four-byte v100012840, defined by 0xedbf8:7056 CPUI_LOAD. Thus the local recovered guard is a signed positive loaded 32-bit value, not an unsigned nonzero test.

The release condition is one-byte v100012bd9, defined by 0xf0384:71b3 CPUI_INT_EQUAL: input 0 is four-byte v10001280a, defined by 0xedbe5:7041 CPUI_LOAD; input 1 is four-byte constant one v3000393a3. Its local guard is equality to one. Both load contents and aliases remain unknown. Models need not invent source member names for either memory object.

Derived controllers return precisely the two relations above for dependents 1142/1158 in the actual retained-source replay. Coverage is complete for finite paths to recovered zero-successor exits; nontermination and runtime reachability remain unknown. These are direct/local control relations, not all transitive earlier guards or proof of feasible execution.

Independent selected machine evidence

GNU objdump over the same ELF independently supplies these bytes/transfers; ELF file/virtual mappings also verify their raw bytes. The complete recovered graph, including these identities, deeply equals the earlier diagnostic native golden. That producer comparison is not independent machine/IR equivalence.

Address Bytes Machine fact
0xedbe5 8b7004 MOV ESI,[RAX+4]
0xedbec 89742440 MOV [RSP+0x40],ESI
0xedbf8 418b9dd8000000 MOV EBX,[R13+0xd8]
0xedbff 85db TEST EBX,EBX
0xedc01 0f8f6b470000 JG 0xf2372; fallthrough 0xedc07
0xf0384 837c244001 CMP dword [RSP+0x40],1
0xf0389 0f849e200000 JE 0xf242d; fallthrough 0xf038f
0xf2381 488d3578a10300 LEA RSI,[0x12c500]
0xf238b e83073f3ff CALL 0x296c0
0xf2437 488d35faa00300 LEA RSI,[0x12c538]
0xf2446 e940ffffff JMP 0xf238b

The earlier load at 0xedbe5 and spill at 0xedbec correspond to the native value later compared at 0xf0384; selected bytes do not prove all intervening memory/runtime behavior. Machine setup/branch windows and native optimized CFG edges are separate evidence representations. PHI is an IR operation at a shared origin, not a machine instruction.

Expected recovered coverage is now a full block-member graph: 21,349 operations, 35,755 values, 1,229 blocks and zero omitted definition IDs. It includes 416 recovered calls; 395 known CALL targets and 21 unresolved CALLIND targets. This does not establish full machine-flow/call coverage or memory alias resolution. The previous call-rooted projection lacked both CBRANCH/Boolean definitions and the open-path LOAD, as well as all CFG access; those absences remain recorded.

Grade the complete answer and actual trace, not keywords alone: both formats and shared call/PHI alternatives, both edges for each local condition, precise Boolean and memory widths/signedness, focused machine checks, real source IDs/digest, scope/earlier-guard/alias/nontermination/runtime limits, and retained-capture reuse.