Charles KWON OhJun
44d3c7385c
perf: fused opcodes + inline EOF/BOF/Found/RecNo/Deleted
Fused opcodes (ops_compare.go):
- LocalLessEqualInt: FOR i<=N without Push+LessEqual+PopLogical
- LocalGreaterEqualInt: FOR STEP -1
- Direct local access + int comparison (no stack, no Value boxing)
gengo FOR loop:
- Detects literal TO value → emits LocalLessEqualInt (3 calls → 1)
- Falls back to stack-based for variable limits
Inline RDD functions (gengo tryEmitInlineRTL):
- EOF/BOF/Found/Deleted/RecNo/RecCount: direct area method call
- No FindSymbol + PushNil + Do(0) + Frame/EndProc overhead
- Uses hoisted _darea when inside DO WHILE context
Results (50K, ext4):
SEEK random: 63ms (Harbour 67ms — FASTER!)
SEEK seq: 44ms (Harbour 27ms — 1.6x)
CDX SEEK NAME: 47ms (Harbour 27ms — 1.7x)
CDX SEEK ID: 24ms (Harbour 17ms — 1.4x)
All counts correct. 82/82 stress PASS. 14 packages ALL PASS.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 22:07:34 +09:00
..
2026-03-31 10:35:40 +09:00
2026-04-01 11:58:20 +09:00
2026-04-07 22:07:34 +09:00
2026-03-31 09:41:50 +09:00
2026-04-01 11:47:26 +09:00
2026-04-02 22:33:59 +09:00
2026-04-01 11:47:26 +09:00
2026-04-01 21:00:44 +09:00