janestreet / base

Standard library for OCaml
MIT License
860 stars 125 forks source link

[0.14] Use raise_without_backtrace in Map, Set #132

Open greedy opened 2 years ago

greedy commented 2 years ago

Backport of #131 to 0.14

Map and Set use some exceptions for control flow that were being raised with plain raise. This meant that stack traces were being created for these exception that couldn't escape their outer function causing an unfortunate performance loss. Raising these exceptions with raise_without_backtrace avoids the performance problem.

Signed-off-by: Geoff Reedy geoff@programmer-monk.net