Implementation History

This is a quick reference for all the implementations that have been archived. Each row tells you what was tried, when it was archived, why it didn't work out, and where to find the full analysis.

Superseded Implementations

These worked but were replaced by better alternatives:

Name SHA Date Replaced By Reason Wins Analysis
LinearScan c1390d3 2025-10-07 HilbertLinearScan 2x slower 0/35 Reference implementation
OptimizedLinearScan c1390d3 2025-10-07 HilbertLinearScan 2x slower, no spatial locality 3/35 V8 optimizations insufficient
HilbertLinearScan 454e5c9 2025-10-08 MortonLinearScan 25% slower encoding 13/35 docs/analyses/morton-vs-hilbert-analysis.md
CompactLinearScan 74bf7af 2025-10-08 CompactMortonLinearScan 2.4x slower, no spatial locality 0/35 Size-optimized baseline
CompactMortonLinearScan d45b2d3 2025-10-08 MortonLinearScan Same size after opts, 7 vs 18 wins 7/35 Simplified spatial hint
ArrayBufferLinearScan c1390d3 2025-10-07 HilbertLinearScan TypedArray complexity, worse perf 2/35 TypedArray ≠ faster
ArrayBufferRTree c1390d3 2025-10-07 RStarTree 15% slower construct, 34% slower query 8/35 docs/analyses/r-star-analysis.md

Failed Experiments

These didn't work at all:

Name SHA Date Failure Reason Hypothesis Analysis
CompactRTree c1390d3 2025-10-07 TypedArray can't handle dynamic tree splits Compact R-tree for GAS archive/docs/experiments/compact-rtree-experiment.md
HybridRTree c1390d3 2025-10-07 Switching overhead > specialized impl gains Adaptive linear→tree archive/docs/experiments/hybrid-rtree-experiment.md

About the Table

SHA - The git commit where this implementation last existed. You can use git show <SHA>:path/to/file.ts to view the code.

Wins - How many benchmark scenarios this implementation won out of 35 total. Lower numbers mean it was consistently slower.

Analysis - Where to find the detailed writeup explaining what was tried and why it didn't work out.

Getting the Code

If you want to actually look at the implementation code:

# View a specific file
git show 454e5c9:archive/src/implementations/hilbertlinearscan.ts

# Save it to a file
git show 454e5c9:archive/src/implementations/hilbertlinearscan.ts > /tmp/hilbert.ts

# Restore the entire archive directory as it was
git checkout 454e5c9 -- archive/