Skip to content

Tests and fixes for a number of prune-flag bugs - #153

Merged
luketpeterson merged 6 commits into
masterfrom
bugfix/prune_flag_issues
Oct 4, 2026
Merged

luketpeterson merged 6 commits into
masterfrom
bugfix/prune_flag_issues

Conversation

@luketpeterson

Copy link
Copy Markdown
Collaborator

No description provided.

…false followed by prune_path should have identical result to passing prune=true
…LineListNode to disallow dangling sentinels and values from overlapping
@luketpeterson
luketpeterson requested a review from imlvts October 2, 2026 16:05
@github-actions

github-actions Bot commented Oct 2, 2026 •

Copy link
Copy Markdown

Bench A/B vs base: done

job log · 2026-10-03 05:42:44 UTC

base b4a6abd → head 34e708d, 3 round(s), median of each run averaged; negative is faster

bench cases geomean largest gain largest loss >5% faster >5% slower
shakespeare 7 +1.2% -4.4% shakespeare/shakespeare_words_insert +10.0% shakespeare/shakespeare_sentences_get 0 2
cities 5 -1.0% -4.8% cities/cities_val_count_act +0.5% cities/cities_val_count 0 0
sparse_keys 96 -0.6% -9.9% sparse_meet/50 +9.1% sparse_zipper_cursor/200 10 3
binary_keys 77 -2.0% -7.3% binary_zipper_iter/100 +12.1% binary_descend_until_max_bytes/2000 15 1
superdense_keys 104 -0.4% -5.0% superdense_val_count_bench/100 +4.4% superdense_val_count_bench/20000 1 0
act_paths 46 -0.0% -4.5% shape_map_to_act_cata/dense_narrow +8.6% size_map_to_act_cata/50000 0 4
zipper_head_owned 6 +0.5% -7.2% zipper_head_owned/owned_head_write_creation_cleanup +9.8% zipper_head_owned/borrowed_head_read_creation 2 2
product_zipper 4 -1.5% -2.1% product_zipper/introspecting_pathmap_pathmap -0.6% product_zipper/generic_pathmap_act 0 0
40 case(s) moved more than 5%
bench case base head change
binary_keys binary_descend_until_max_bytes/2000 145.33 µs 162.90 µs +12.1%
shakespeare shakespeare/shakespeare_sentences_get 48.43 ms 53.28 ms +10.0%
sparse_keys sparse_meet/50 1.00 µs 905 ns -9.9%
zipper_head_owned zipper_head_owned/borrowed_head_read_creation 11.03 µs 12.11 µs +9.8%
sparse_keys sparse_zipper_cursor/200 2.35 µs 2.56 µs +9.1%
sparse_keys sparse_zipper_cursor/100 1.18 µs 1.29 µs +9.1%
sparse_keys sparse_meet/100 2.03 µs 1.85 µs -8.9%
act_paths size_map_to_act_cata/50000 6.73 ms 7.31 ms +8.6%
act_paths size_map_to_act_cata/100000 14.84 ms 16.04 ms +8.1%
shakespeare shakespeare/shakespeare_words_val_count 317.13 µs 341.83 µs +7.8%
zipper_head_owned zipper_head_owned/owned_head_read_creation 11.94 µs 12.87 µs +7.8%
sparse_keys sparse_meet/200 4.87 µs 4.50 µs -7.7%
sparse_keys sparse_zipper_cursor/400 5.20 µs 5.60 µs +7.6%
sparse_keys binary_drop_head/50 3.59 µs 3.32 µs -7.5%
binary_keys binary_zipper_iter/100 2.43 µs 2.26 µs -7.3%
zipper_head_owned zipper_head_owned/owned_head_write_creation_cleanup 37.13 µs 34.47 µs -7.2%
binary_keys binary_zipper_iter/800 18.34 µs 17.03 µs -7.1%
binary_keys binary_insert/100 7.90 µs 7.36 µs -6.8%
binary_keys binary_insert/200 16.73 µs 15.59 µs -6.8%
binary_keys binary_zipper_iter/1600 36.15 µs 33.74 µs -6.7%
binary_keys binary_zipper_iter/400 9.31 µs 8.69 µs -6.6%
binary_keys binary_insert/50 3.68 µs 3.44 µs -6.5%
act_paths size_map_to_act_cata/25000 3.20 ms 3.41 ms +6.4%
binary_keys binary_insert/400 35.70 µs 33.44 µs -6.3%
sparse_keys sparse_k_path_iter/800 16.34 µs 15.32 µs -6.2%
zipper_head_owned zipper_head_owned/borrowed_head_write_creation_cleanup 35.28 µs 33.12 µs -6.1%
binary_keys binary_zipper_iter/200 4.81 µs 4.52 µs -6.1%
binary_keys binary_insert/1600 178.00 µs 167.23 µs -6.0%
act_paths size_dense_paths_to_act/25000 830.10 µs 879.90 µs +6.0%
sparse_keys sparse_k_path_iter/1600 30.79 µs 28.95 µs -6.0%
binary_keys binary_insert/800 75.95 µs 71.46 µs -5.9%
sparse_keys binary_drop_head/100 7.90 µs 7.44 µs -5.8%
binary_keys binary_zipper_iter/50 1.26 µs 1.19 µs -5.8%
binary_keys binary_set_val_at_long_replace/160 53 ns 50 ns -5.8%
sparse_keys sparse_meet/400 10.95 µs 10.35 µs -5.5%
binary_keys binary_descend_until/500 33.59 µs 31.83 µs -5.2%
sparse_keys sparse_k_path_iter/400 7.60 µs 7.20 µs -5.2%
binary_keys binary_descend_until/250 16.03 µs 15.20 µs -5.2%
sparse_keys sparse_k_path_iter/200 3.56 µs 3.38 µs -5.1%
superdense_keys superdense_val_count_bench/100 60 ns 57 ns -5.0%

Full tables per bench are in the job log and the bench-out artifact.

@imlvts

imlvts commented Oct 3, 2026

Copy link
Copy Markdown
Collaborator

I definitely like these changes. if there are no perf concerns, I'd merge this.

@luketpeterson

Copy link
Copy Markdown
Collaborator Author

I definitely like these changes. if there are no perf concerns, I'd merge this.

I spent a lot of time on benchmarking them. In fact, 10x more time ensuring perf parity than on the changes themselves.

Merging.

@luketpeterson
luketpeterson merged commit 3f70b7c into master Oct 4, 2026
7 of 8 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants