1d9b364df85e53f56a0855b0d074a398cd922409
Page.data changed from [1024]byte (copied) to []byte (mmap slice reference). Inspired by BoltDB's zero-copy page access pattern. cachedLoadPage: returns slice into mmap memory (no 1024-byte copy!) - Before: copy(p.data[:], mmap[offset:offset+1024]) — memcpy per page - After: p.data = mmap[offset:offset+1024] — pointer assignment only pagePool: reuses Page structs (8-slot ring) to reduce GC pressure. Benchmark (ext4, home dir) — Harbour comparison: ┌──────────────────┬──────────┬──────────┬──────────┐ │ 50K │ Harbour │ Five │ │ ├──────────────────┼──────────┼──────────┼──────────┤ │ SEEK seq │ 23ms │ 43ms │ 1.9x │ │ SEEK random │ 63ms │ 65ms │ ≈ equal! │ │ SCAN │ 5ms │ 3ms │ FASTER! │ │ DUPKEY scan │ 23ms │ 12ms │ FASTER! │ │ DELSCAN │ 17ms │ 2ms │ 8.5x! │ │ PACK │ 16ms │ 21ms │ 1.3x │ └──────────────────┴──────────┴──────────┴──────────┘ 82/82 stress PASS. All unit tests 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%