fix(validation): reject unaddressable dictionaries#22
Conversation
|
|
Merging this PR will improve performance by 37.34%
|
| Mode | Benchmark | BASE |
HEAD |
Efficiency | |
|---|---|---|---|---|---|
| ❌ | WallTime | decompress_all[("l_comment", 16)] |
14.8 ms | 18.8 ms | -21.53% |
| ❌ | WallTime | decompress_all[("o_comment", 16)] |
13.5 ms | 16.3 ms | -17.25% |
| ⚡ | WallTime | decompress_all[12] |
748.1 µs | 380.2 µs | +96.78% |
| ⚡ | WallTime | decompress_all[16] |
744.5 µs | 395.7 µs | +88.16% |
| ⚡ | WallTime | decompress_all[("p_name", 12)] |
1,126.6 µs | 629.1 µs | +79.09% |
| ⚡ | WallTime | decompress_all[("p_name", 16)] |
916.1 µs | 587.9 µs | +55.83% |
Tip
Investigate this regression by commenting @codspeedbot fix this regression on this PR, or directly use the CodSpeed MCP with your agent.
Comparing fix/dictionary-token-limit (a4914ef) with develop (ef5ac03)
Footnotes
-
2 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩
Rejects compact dictionaries containing more than 65,536 tokens during validation, preventing dictionaries that cannot be addressed by the
u16token type from becoming trusted.Adds regression coverage for the exact 65,536-token boundary and rejection above it, and documents the limit in the dictionary invariants and interchange format.