b72623f79c5d4ae813b51ccc42683df6243034b7
CDX Seek (cdx.go — ported from rddfive/cdx_engine.c): - Linear search → binary search on decoded leaf keys (O(N) → O(log N)) - Leftmost match: continues searching left after match (duplicate key correctness) - Leaf cache hit: skip decode if same page (SEEK loop optimization) NTX zero-copy Page (ntx.go — BoltDB pattern): - Page.data: []byte slice into mmap (was [1024]byte copy) - cachedLoadPage: p.data = mmap[offset:offset+1024] (no memcpy!) - pagePool: 8-slot ring for Page struct reuse DBF mmap (dbf.go): - GoTo: copy from mmap instead of file.ReadAt syscall - Unmap before Append/Close/Flush (file growth), re-mmap after Results (50K, ext4, Harbour comparison): ┌──────────────┬──────────┬──────────┬──────────────┐ │ │ Harbour │ Five │ │ ├──────────────┼──────────┼──────────┼──────────────┤ │ CDX SEEK │ 27ms │ 49ms │ 1.8x (was 6.5x!)│ │ CDX SEEK ID │ 17ms │ 24ms │ 1.4x (was 8.4x!)│ │ CDX SCAN │ 5ms │ 4ms │ ✅ FASTER │ │ CDX SCOPE │ 4ms │ 3ms │ ✅ FASTER │ │ NTX SCAN │ 4ms │ 3ms │ ✅ FASTER │ │ NTX DELSCAN │ 12ms │ 3ms │ ✅ 4x FASTER │ │ NTX SEEK rnd │ 67ms │ 69ms │ ≈ equal │ └──────────────┴──────────┴──────────┴──────────────┘ 82/82 stress PASS. CDX 18/18 cross-read PASS. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Description
Five — Harbour+Go Fusion Language (PRG→Go native binary)
Languages
Go
57.9%
xBase
22%
C
19.5%
Shell
0.5%
Makefile
0.1%