1.4.0
packTab 1.4.0 focuses on better sparse-prefix compression, clearer compression modes, and simpler generation logic.
Highlights
- Added explicit compression endpoints.
--compression 0now selects a flat / unsplit encoding.--compression 10now minimizes raw table bytes.--compression 1..9keep the historical heuristic behavior.
- Added aligned leading-default culling.
- Tables with large power-of-two-aligned default prefixes can now be rebased to the smallest dyadic interval covering the live range.
- This preserves the recursive split structure while avoiding storage for removable all-default left branches.
- Added exact leading-default culling for inlineable spans.
- When trimming to the first non-default index makes the remaining flat span small enough to inline as a constant, packTab now tries that exact rebase too.
- Removed the identity optimization.
- This simplifies the model and code generation, and makes rebased sparse-prefix handling easier to reason about.
- Improved generated C and Rust lookups for rebased spans.
- Rebased lookups use a single unsigned range check, including safe wrapping arithmetic on Rust.
Other changes
- Updated documentation for the new compression semantics and sparse-prefix behavior.
- Expanded tests for compression endpoint selection, aligned prefix culling, and exact-inline prefix culling.
Validation
- Full test suite passes: 204 tests.