Skip to content

Adding a guard so a panic inside the Lattice impl leads to an abort - #186

Merged
luketpeterson merged 1 commit into
masterfrom
lattice_panic_guard
Nov 11, 2026
Merged

luketpeterson merged 1 commit into
masterfrom
lattice_panic_guard

Conversation

@luketpeterson

@luketpeterson luketpeterson commented Nov 11, 2026 •

Copy link
Copy Markdown
Collaborator

Adding a guard so a panic inside the Lattice impl leads to an abort, rather than UB. Validated no perf impact and does not interfere with catching panics that come from outside the Lattice implementation.

Addresses #185

…ather than UB. Validated no perf impact and does not interfere with catching panics that come from outside the Lattice implementation
@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Bench A/B vs base: done

job log · 2026-11-11 12:09:55 UTC

base 8172d18 → head 7b404e7, 3 round(s), median of each run averaged; negative is faster

bench cases geomean largest gain largest loss >5% faster >5% slower
shakespeare 7 +0.6% -1.3% shakespeare/shakespeare_words_get +3.4% shakespeare/shakespeare_sentences_get 0 0
cities 5 +1.6% -3.2% cities/cities_val_count +13.5% cities/cities_get_act 0 1
sparse_keys 108 +0.1% -2.6% sparse_descend_until/500 +9.1% sparse_insert/50 0 3
binary_keys 89 -3.8% -7.8% binary_set_val_at_short_replace/2 +2.5% binary_insert/1600 14 0
superdense_keys 116 -0.1% -11.9% superdense_drop_bench/1600 +5.6% superdense_k_path_iter/4000 4 1
act_paths 46 -0.8% -9.4% shape_map_to_act_cata/random_long +4.2% size_dense_paths_to_act/200000 1 0
zipper_head_owned 16 +2.9% -4.3% zipper_head_owned/map_reader_get_focus +26.2% zipper_head_owned/borrowed_head_read_missing_path 0 3
product_zipper 4 -1.0% -2.9% product_zipper/introspecting_pathmap_pathmap +0.1% product_zipper/generic_act_act 0 0
27 case(s) moved more than 5%
bench case base head change
zipper_head_owned zipper_head_owned/borrowed_head_read_missing_path 13.66 µs 17.24 µs +26.2%
zipper_head_owned zipper_head_owned/borrowed_head_read_value_in_shared_parent 12.65 µs 15.14 µs +19.7%
cities cities/cities_get_act 674.60 ms 765.63 ms +13.5%
superdense_keys superdense_drop_bench/1600 4.71 µs 4.15 µs -11.9%
act_paths shape_map_to_act_cata/random_long 43.42 ms 39.32 ms -9.4%
sparse_keys sparse_insert/50 1.66 µs 1.81 µs +9.1%
binary_keys binary_set_val_at_short_replace/2 18 ns 17 ns -7.8%
sparse_keys sparse_insert/100 3.97 µs 4.26 µs +7.4%
binary_keys binary_zipper_prev_iter/400 354.33 µs 329.57 µs -7.0%
binary_keys binary_zipper_prev_iter/100 93.73 µs 87.24 µs -6.9%
binary_keys binary_zipper_prev_iter/200 182.70 µs 170.10 µs -6.9%
superdense_keys superdense_get/32000 463.77 µs 432.20 µs -6.8%
binary_keys binary_zipper_prev_iter/50 47.95 µs 44.74 µs -6.7%
binary_keys binary_val_count_bench/4000 31.99 µs 29.92 µs -6.5%
binary_keys binary_zipper_prev_iter/800 683.10 µs 639.40 µs -6.4%
binary_keys binary_zipper_prev_iter/1600 1.32 ms 1.23 ms -6.4%
superdense_keys superdense_drop_bench/100 53 ns 50 ns -6.3%
binary_keys binary_get/2000 143.00 µs 134.63 µs -5.9%
superdense_keys superdense_k_path_iter/4000 25.20 µs 26.61 µs +5.6%
binary_keys binary_meet/50 5.42 µs 5.13 µs -5.4%
binary_keys binary_zipper_prev_step_iter/200 310.53 µs 293.83 µs -5.4%
sparse_keys sparse_insert/200 8.93 µs 9.41 µs +5.3%
superdense_keys superdense_zipper_cursor/200 1.19 µs 1.13 µs -5.3%
binary_keys binary_zipper_prev_step_iter/400 597.67 µs 566.87 µs -5.2%
binary_keys binary_meet/1600 160.67 µs 152.47 µs -5.1%
binary_keys binary_drop_head/400 38.91 µs 36.92 µs -5.1%
zipper_head_owned zipper_head_owned/shared_parent_reader_val 1.47 µs 1.54 µs +5.0%

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

@luketpeterson
luketpeterson merged commit 4e1c424 into master Nov 11, 2026
5 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