From 2989827aef4e930a5cc930d1827ac15bfa470cb2 Mon Sep 17 00:00:00 2001 From: Emil Dotchevski Date: Mon, 2 Dec 2019 10:11:05 -0800 Subject: [PATCH] Much simplified benchmark. --- benchmark/b.sh | 6 + benchmark/benchmark.md | 489 +++++++++++-------------- benchmark/clang_e_error_code_2.png | Bin 15573 -> 0 bytes benchmark/clang_e_error_code_50.png | Bin 16404 -> 0 bytes benchmark/clang_e_error_code_98.png | Bin 16222 -> 0 bytes benchmark/clang_e_heavy_payload.png | Bin 0 -> 11877 bytes benchmark/clang_e_heavy_payload_2.png | Bin 15541 -> 0 bytes benchmark/clang_e_heavy_payload_50.png | Bin 16027 -> 0 bytes benchmark/clang_e_heavy_payload_98.png | Bin 16655 -> 0 bytes benchmark/clang_e_int.png | Bin 0 -> 11581 bytes benchmark/clang_e_system_error.png | Bin 0 -> 12383 bytes benchmark/clang_e_system_error_2.png | Bin 16242 -> 0 bytes benchmark/clang_e_system_error_50.png | Bin 15819 -> 0 bytes benchmark/clang_e_system_error_98.png | Bin 16432 -> 0 bytes benchmark/deep_stack_leaf.cpp | 276 +++++--------- benchmark/deep_stack_other.cpp | 281 ++++++++++++++ benchmark/deep_stack_outcome.cpp | 312 ---------------- benchmark/gcc_e_error_code_2.png | Bin 15493 -> 0 bytes benchmark/gcc_e_error_code_50.png | Bin 16268 -> 0 bytes benchmark/gcc_e_error_code_98.png | Bin 16172 -> 0 bytes benchmark/gcc_e_heavy_payload.png | Bin 0 -> 11898 bytes benchmark/gcc_e_heavy_payload_2.png | Bin 16645 -> 0 bytes benchmark/gcc_e_heavy_payload_50.png | Bin 16135 -> 0 bytes benchmark/gcc_e_heavy_payload_98.png | Bin 16682 -> 0 bytes benchmark/gcc_e_int.png | Bin 0 -> 11372 bytes benchmark/gcc_e_system_error.png | Bin 0 -> 11946 bytes benchmark/gcc_e_system_error_2.png | Bin 15605 -> 0 bytes benchmark/gcc_e_system_error_50.png | Bin 16452 -> 0 bytes benchmark/gcc_e_system_error_98.png | Bin 16377 -> 0 bytes meson.build | 8 +- 30 files changed, 602 insertions(+), 770 deletions(-) create mode 100755 benchmark/b.sh delete mode 100644 benchmark/clang_e_error_code_2.png delete mode 100644 benchmark/clang_e_error_code_50.png delete mode 100644 benchmark/clang_e_error_code_98.png create mode 100644 benchmark/clang_e_heavy_payload.png delete mode 100644 benchmark/clang_e_heavy_payload_2.png delete mode 100644 benchmark/clang_e_heavy_payload_50.png delete mode 100644 benchmark/clang_e_heavy_payload_98.png create mode 100644 benchmark/clang_e_int.png create mode 100644 benchmark/clang_e_system_error.png delete mode 100644 benchmark/clang_e_system_error_2.png delete mode 100644 benchmark/clang_e_system_error_50.png delete mode 100644 benchmark/clang_e_system_error_98.png create mode 100644 benchmark/deep_stack_other.cpp delete mode 100644 benchmark/deep_stack_outcome.cpp delete mode 100644 benchmark/gcc_e_error_code_2.png delete mode 100644 benchmark/gcc_e_error_code_50.png delete mode 100644 benchmark/gcc_e_error_code_98.png create mode 100644 benchmark/gcc_e_heavy_payload.png delete mode 100644 benchmark/gcc_e_heavy_payload_2.png delete mode 100644 benchmark/gcc_e_heavy_payload_50.png delete mode 100644 benchmark/gcc_e_heavy_payload_98.png create mode 100644 benchmark/gcc_e_int.png create mode 100644 benchmark/gcc_e_system_error.png delete mode 100644 benchmark/gcc_e_system_error_2.png delete mode 100644 benchmark/gcc_e_system_error_50.png delete mode 100644 benchmark/gcc_e_system_error_98.png diff --git a/benchmark/b.sh b/benchmark/b.sh new file mode 100755 index 0000000..dcd010e --- /dev/null +++ b/benchmark/b.sh @@ -0,0 +1,6 @@ +ninja +rm benchmark.csv +./deep_stack_leaf +./deep_stack_tl +./deep_stack_result +./deep_stack_outcome diff --git a/benchmark/benchmark.md b/benchmark/benchmark.md index e674b03..ea6391f 100644 --- a/benchmark/benchmark.md +++ b/benchmark/benchmark.md @@ -1,25 +1,35 @@ # Benchmark -The LEAF github repository contains two similar benchmarking programs, one using LEAF, the other using Boost Outcome, that simulate transporting error objects across 32 levels of function calls, measuring the performance of the two libraries. +The LEAF github repository contains two similar benchmarking programs, one using LEAF, the other configurable to use `tl::expected` or Boost Outcome, that simulate transporting error objects across 10 levels of stack frames, measuring the performance of the three libraries. -Official library documentation: +Links: * LEAF: https://zajo.github.io/leaf +* `tl::expected`: https://github.com/TartanLlama/expected * Boost Outcome: https://www.boost.org/doc/libs/release/libs/outcome/doc/html/index.html ## Library design considerations -It is important to understand that LEAF and Outcome serve similar purpose but follow very different design philosophy. The benchmarks are comparing apples and oranges. +LEAF serves a similar purpose to other error handling libraries, but its design is very different. The benchmarks are comparing apples and oranges. -The main design difference is that LEAF has a very strong bias towards the use case where, after a call to a function which may fail, any failures are not handled but instead forwarded to the caller. When we merely check "do we have a failure", LEAF does not bother to make available the error objects associated with the failure. This saves a lot of cycles. +The main design difference is that when using LEAF, error objects are not communicated in return values. In case of a failure, the `leaf::result` object transports only an `int`, the unique error ID. -In contrast, Outcome always delivers error objects to each level of function call, even when the user is not handling errors at that point, and therefore has no intention of accessing them. +Error objects skip the error-neutral functions in the call stack and get moved directly to the relevant error-handling scope. This mechanism does not depend on RVO or any other optimization: as soon as the program passes an error object to LEAF, it moves it to the correct error handling scope. -This difference is reflected in how each library is used. The simple "check-only" case is nearly identical, e.g.: +Other error-handling libraries instead couple the static type of the return value of *all* error-neutral functions with the error type an error-reporting function may return. This approach suffers from the same problems as statically-enforced exception specifications: + +* It's difficult or impossible to use in generic contexts, and +* It impedes interoperability between the many different error types a non-trivial program must deal with. + +(The Boost Outcome library is also capable of avoiding such excessive coupling, by passing for the third `P` argument in the `outcome` template a pointer that erases the exact static type of the object being transported. However, this would require a dynamic memory allocation). + +## Syntax + +The most common check-only use case looks almost identically in LEAF and in Boost Outcome (`tl::expected` lacks a similar macro): ```c++ // Outcome { - OUTCOME_TRY(v, f()); // Check for errors, forward failures to the caller + BOOST_OUTCOME_TRY(v, f()); // Check for errors, forward failures to the caller // If control reaches here, v is the successful result (the call succeeded). } ``` @@ -32,28 +42,35 @@ This difference is reflected in how each library is used. The simple "check-only } ``` -However, when we want to handle failures, in Outcome accessing the error object (which is always available in the returned object) is a simple continuation of the error check: +However, when we want to handle failures, in Boost Outcome and in `tl::expected`, accessing the error object (which is always stored in the return value) is a simple continuation of the error check: ```c++ -// Outcome +// Outcome, tl::expected if( auto r = f() ) return r.value()+1; // No error else { // Error! switch( r.error() ) { - error_enum::error1: /* handle */ break; - error_enum::error2: /* handle */ break; - default: return r.as_failure(); + error_enum::error1: + /* handle error_enum::error1 */ + break; + + error_enum::error2: + /* handle error_enum::error2 */ + break; + + default: + /* handle any other failure */ } } ``` -When using LEAF, we must explicitly state our intention to handle some errors, not just check for failures: +When using LEAF, we must explicitly state our intention to handle errors, not just check for failures: ```c++ // LEAF -return leaf::try_handle_some( +leaf::try_handle_all []() -> leaf::result { LEAF_AUTO(v, f()); @@ -61,15 +78,19 @@ return leaf::try_handle_some( }, []( leaf::match ) { - /* handle */ + /* handle error_enum::error1 */ }, []( leaf::match ) { - /* handle */ + /* handle error_enum::error2 */ + }, + []() + { + /* handle any other failure */ } ); ``` -The use of `try_handle_some` reserves storage on the stack for the error object types being handled (in this case, `error_enum`). If the failure is either `error_enum::error1` or `error_enum::error2`, the matching error handling lambda is invoked. Otherwise, the failure is automatically forwarded to the caller. +The use of `try_handle_all` reserves storage on the stack for the error object types being handled (in this case, `error_enum`). If the failure is either `error_enum::error1` or `error_enum::error2`, the matching error handling lambda is invoked. ## Code generation considerations @@ -77,9 +98,9 @@ Benchmarking C++ programs is tricky, because we want to prevent the compiler fro The primary approach we use to prevent the compiler from optimizing everything out to nothing is to base all computations on a call to `std::rand()`. This adds cycles, but it also makes the benchmark more realistic, since functions which may legitimately fail should do _some_ real work. -When benchmarking error handling, it makes sense to measure the time it takes to return a result or error across multiple stack frames. This calls for disabling inlining. On the other hand, in C++ inlining is often possible, so that case must be measured as well. +When benchmarking error handling, it makes sense to measure the time it takes to return a result or error across multiple stack frames. This calls for disabling inlining. -The technique used to disable inlining in this benchmark is to mark functions as `__attribute__((noinline))` / `__declspec(noinline)`. This is imperfect, because optimizers can still peek into the body of the function and optimize things out, as is seen in this example: +The technique used to disable inlining in this benchmark is to mark functions as `__attribute__((noinline))`. This is imperfect, because optimizers can still peek into the body of the function and optimize things out, as is seen in this example: ```c++ __attribute__((noinline)) int val() {return 42;} @@ -93,18 +114,18 @@ Which on clang 9 outputs: ```x86asm val(): - mov eax, 42 - ret + mov eax, 42 + ret main: - mov eax, 42 - ret + mov eax, 42 + ret ``` It does not appear that anything like this is occurring in our case, but it is still a possibility. > NOTES: > -> - For benchmarking, both programs are compiled with exception handling disabled. +> - The benchmarks are compiled with exception handling disabled. > - LEAF is able to work with external `result<>` types. The benchmark uses `leaf::result`. ## Show me the code! @@ -125,42 +146,42 @@ Generates this code on clang ([Godbolt](https://godbolt.org/z/4AtHMk)): ```x86asm g(): # @g() - push rbx - sub rsp, 32 - mov rbx, rdi - lea rdi, [rsp + 8] - call f() - mov eax, dword ptr [rsp + 8] - mov ecx, eax - and ecx, 3 - cmp ecx, 2 - je .LBB0_4 - cmp ecx, 3 - jne .LBB0_2 - mov eax, dword ptr [rsp + 16] - add eax, 1 - mov dword ptr [rbx], 3 - mov dword ptr [rbx + 8], eax - mov rax, rbx - add rsp, 32 - pop rbx - ret + push rbx + sub rsp, 32 + mov rbx, rdi + lea rdi, [rsp + 8] + call f() + mov eax, dword ptr [rsp + 8] + mov ecx, eax + and ecx, 3 + cmp ecx, 2 + je .LBB0_4 + cmp ecx, 3 + jne .LBB0_2 + mov eax, dword ptr [rsp + 16] + add eax, 1 + mov dword ptr [rbx], 3 + mov dword ptr [rbx + 8], eax + mov rax, rbx + add rsp, 32 + pop rbx + ret .LBB0_4: - mov dword ptr [rbx], 2 - movups xmm0, xmmword ptr [rsp + 16] - mov qword ptr [rsp + 24], 0 - movups xmmword ptr [rbx + 8], xmm0 - mov qword ptr [rsp + 16], 0 - mov rax, rbx - add rsp, 32 - pop rbx - ret + mov dword ptr [rbx], 2 + movups xmm0, xmmword ptr [rsp + 16] + mov qword ptr [rsp + 24], 0 + movups xmmword ptr [rbx + 8], xmm0 + mov qword ptr [rsp + 16], 0 + mov rax, rbx + add rsp, 32 + pop rbx + ret .LBB0_2: - mov dword ptr [rbx], eax - mov rax, rbx - add rsp, 32 - pop rbx - ret + mov dword ptr [rbx], eax + mov rax, rbx + add rsp, 32 + pop rbx + ret ``` > Description: @@ -190,10 +211,10 @@ We get: ```x86asm g(): # @g() - mov rax, rdi - mov dword ptr [rdi], 3 - mov dword ptr [rdi + 8], 43 - ret + mov rax, rdi + mov dword ptr [rdi], 3 + mov dword ptr [rdi + 8], 43 + ret ``` With a less trivial definition of `f`: @@ -202,9 +223,9 @@ With a less trivial definition of `f`: leaf::result f() { if( rand()%2 ) - return 42; + return 42; else - return leaf::new_error(); + return leaf::new_error(); } leaf::result g() @@ -218,49 +239,43 @@ We get ([Godbolt](https://godbolt.org/z/4P7Jvv)): ```x86asm g(): # @g() - push rbx - mov rbx, rdi - call rand - test al, 1 - jne .LBB1_5 - mov eax, dword ptr fs:[boost::leaf::leaf_detail::id_factory::next_id@TPOFF] - test eax, eax - je .LBB1_3 - mov dword ptr fs:[boost::leaf::leaf_detail::id_factory::next_id@TPOFF], 0 - jmp .LBB1_4 + push rbx + mov rbx, rdi + call rand + test al, 1 + jne .LBB1_5 + mov eax, dword ptr fs:[boost::leaf::leaf_detail::id_factory::next_id@TPOFF] + test eax, eax + je .LBB1_3 + mov dword ptr fs:[boost::leaf::leaf_detail::id_factory::next_id@TPOFF], 0 + jmp .LBB1_4 .LBB1_5: - mov dword ptr [rbx], 3 - mov dword ptr [rbx + 8], 43 - mov rax, rbx - pop rbx - ret + mov dword ptr [rbx], 3 + mov dword ptr [rbx + 8], 43 + mov rax, rbx + pop rbx + ret .LBB1_3: - mov eax, 4 - lock xadd dword ptr [rip + boost::leaf::leaf_detail::id_factory::counter], eax - add eax, 4 + mov eax, 4 + lock xadd dword ptr [rip + boost::leaf::leaf_detail::id_factory::counter], eax + add eax, 4 .LBB1_4: - and eax, -4 - or eax, 1 - mov dword ptr fs:[boost::leaf::leaf_detail::id_factory::last_id@TPOFF], eax - mov dword ptr [rbx], eax - mov rax, rbx - pop rbx - ret + and eax, -4 + or eax, 1 + mov dword ptr fs:[boost::leaf::leaf_detail::id_factory::last_id@TPOFF], eax + mov dword ptr [rbx], eax + mov rax, rbx + pop rbx + ret ``` Above, the call to `f()` is inlined, most of the code is from the initial error reporting machinery in LEAF. ## Benchmark matrix dimensions -The benchmark matrix has 4 dimensions: +The benchmark matrix has 2 dimensions: -1. Check only vs. handle some errors: - - a. Each function calls the lower level function, does work on success, forwards errors to the caller, but does not handle them (the root of the call chain handles the error). - - b. Each fourth level of function call doesn't only check, but also handles some errors, forwarding other errors to the caller. - -2. Error object type: +1. Error object type: a. The error object transported in case of a failure is of type `e_error_code`, which is a simple `enum`. @@ -268,32 +283,37 @@ The benchmark matrix has 4 dimensions: c. The error object transported in case of a failure is of type `e_heavy_payload`, a `struct` of size 4096. -3. Error rate: 2%, 50%, 98% - -4. Inline vs. noinline (32 levels of function calls). +2. Error rate: 2%, 98% ## Source code [deep_stack_leaf.cpp](deep_stack_leaf.cpp) -[deep_stack_outcome.cpp](deep_stack_outcome.cpp) +[deep_stack_other.cpp](deep_stack_other.cpp) ## Godbolt -LEAF provides a single header which makes it very easy to use online. To see the generated code for the benchmark program, you can copy and paste the following into Godbolt: +LEAF and `tl::expected` both provide a single header, which makes it very easy to use them online. To see the generated code for the benchmark program, you can copy and paste the following into Godbolt: +LEAF: ```c++ -#include "https://raw.githubusercontent.com/zajo/leaf/master/include/boost/leaf/all.hpp" -#include "https://raw.githubusercontent.com/zajo/leaf/master/benchmark/deep_stack_leaf.cpp" +#include "https://raw.githubusercontent.com/zajo/leaf/master/include/boost/> af/all.hpp" +#include "https://raw.githubusercontent.com/zajo/leaf/master/benchmark/> deep_stack_leaf.cpp" ``` See https://godbolt.org/z/DTk4N4. +`tl::expected`: +```c++ +#include "https://raw.githubusercontent.com/TartanLlama/expected/master/include/tl/expected.hpp" +#include "https://raw.githubusercontent.com/zajo/leaf/master/benchmark/> deep_stack_other.cpp" +``` + ## Build options To build both versions of the benchmark program, the compilers are invoked using the following command line options: -* `-std=c++17`: Required by Outcome (LEAF only requires C++11); +* `-std=c++17`: Required by other libraries (LEAF only requires C++11); * `-fno-exceptions`: Disable exception handling; * `-O3`: Maximum optimizations; * `-DNDEBUG`: Disable asserts. @@ -304,187 +324,96 @@ In addition, the LEAF version is compiled with: ## Results -Below is the output the benchmark programs running on a MacBook Pro. The tables show the elapsed time for returning a result across 32 levels of function calls, depending on the error type, the action taken at each level, whether inlining is enabled, and the rate of failures. In addition, the programs generate a `benchmark.csv` file in the current working directory. +Below is the output the benchmark programs running on a MacBook Pro. The tables show the elapsed time for 10,000 iterations of returning a result across 10 stack frames, depending on the error type and the rate of failures. In addition, the programs generate a `benchmark.csv` file in the current working directory. +### gcc: -The following tables show elapsed time +> `leaf::result`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 719 | 562 +> e_system_error | 682 | 1251 +> e_heavy_payload | 787 | 5995 +> +> `tl::expected`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 1283 | 847 +> e_system_error | 858 | 5735 +> e_heavy_payload | 1083 | 21715 +> +> `outcome::result`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 1254 | 858 +> e_system_error | 754 | 1309 +> e_heavy_payload | 8925 | 23146 +> +> `outcome::outcome`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 830 | 1236 +> e_system_error | 991 | 2458 +> e_heavy_payload | 10113 | 25330 -#### 10000 iterations, call depth 32, sizeof(e_heavy_payload) = 4096 (clang, LEAF): +### clang: -Error type | At each level | Inlining | Rate | μs -----------------|--------------------|----------|------:|-------: -e_error_code | LEAF_AUTO | Disabled | 2% | 920 -e_error_code | LEAF_AUTO | Enabled | 2% | 135 -e_error_code | try_handle_some | Disabled | 2% | 1407 -e_error_code | try_handle_some | Enabled | 2% | 708 -e_error_code | LEAF_AUTO | Disabled | 50% | 916 -e_error_code | LEAF_AUTO | Enabled | 50% | 215 -e_error_code | try_handle_some | Disabled | 50% | 1467 -e_error_code | try_handle_some | Enabled | 50% | 851 -e_error_code | LEAF_AUTO | Disabled | 98% | 803 -e_error_code | LEAF_AUTO | Enabled | 98% | 204 -e_error_code | try_handle_some | Disabled | 98% | 1671 -e_error_code | try_handle_some | Enabled | 98% | 907 -e_system_error | LEAF_AUTO | Disabled | 2% | 1255 -e_system_error | LEAF_AUTO | Enabled | 2% | 204 -e_system_error | try_handle_some | Disabled | 2% | 1482 -e_system_error | try_handle_some | Enabled | 2% | 731 -e_system_error | LEAF_AUTO | Disabled | 50% | 1147 -e_system_error | LEAF_AUTO | Enabled | 50% | 362 -e_system_error | try_handle_some | Disabled | 50% | 1821 -e_system_error | try_handle_some | Enabled | 50% | 858 -e_system_error | LEAF_AUTO | Disabled | 98% | 977 -e_system_error | LEAF_AUTO | Enabled | 98% | 211 -e_system_error | try_handle_some | Disabled | 98% | 1585 -e_system_error | try_handle_some | Enabled | 98% | 952 -e_heavy_payload | LEAF_AUTO | Disabled | 2% | 1089 -e_heavy_payload | LEAF_AUTO | Enabled | 2% | 154 -e_heavy_payload | try_handle_some | Disabled | 2% | 1405 -e_heavy_payload | try_handle_some | Enabled | 2% | 824 -e_heavy_payload | LEAF_AUTO | Disabled | 50% | 1476 -e_heavy_payload | LEAF_AUTO | Enabled | 50% | 576 -e_heavy_payload | try_handle_some | Disabled | 50% | 2494 -e_heavy_payload | try_handle_some | Enabled | 50% | 1338 -e_heavy_payload | LEAF_AUTO | Disabled | 98% | 1644 -e_heavy_payload | LEAF_AUTO | Enabled | 98% | 931 -e_heavy_payload | try_handle_some | Disabled | 98% | 2646 -e_heavy_payload | try_handle_some | Enabled | 98% | 1676 - -#### 10000 iterations, call depth 32, sizeof(e_heavy_payload) = 4096 (clang, Outcome): - -Error type | At each level | Inlining | Rate | μs -----------------|--------------------|----------|------:|-------: -e_error_code | OUTCOME_TRY | Disabled | 2% | 2129 -e_error_code | OUTCOME_TRY | Enabled | 2% | 2245 -e_error_code | Handle some errors | Disabled | 2% | 2102 -e_error_code | Handle some errors | Enabled | 2% | 2157 -e_error_code | OUTCOME_TRY | Disabled | 50% | 3994 -e_error_code | OUTCOME_TRY | Enabled | 50% | 4043 -e_error_code | Handle some errors | Disabled | 50% | 2958 -e_error_code | Handle some errors | Enabled | 50% | 2994 -e_error_code | OUTCOME_TRY | Disabled | 98% | 5533 -e_error_code | OUTCOME_TRY | Enabled | 98% | 5573 -e_error_code | Handle some errors | Disabled | 98% | 3754 -e_error_code | Handle some errors | Enabled | 98% | 3824 -e_system_error | OUTCOME_TRY | Disabled | 2% | 2144 -e_system_error | OUTCOME_TRY | Enabled | 2% | 2158 -e_system_error | Handle some errors | Disabled | 2% | 2130 -e_system_error | Handle some errors | Enabled | 2% | 2187 -e_system_error | OUTCOME_TRY | Disabled | 50% | 3954 -e_system_error | OUTCOME_TRY | Enabled | 50% | 3996 -e_system_error | Handle some errors | Disabled | 50% | 3210 -e_system_error | Handle some errors | Enabled | 50% | 3369 -e_system_error | OUTCOME_TRY | Disabled | 98% | 5422 -e_system_error | OUTCOME_TRY | Enabled | 98% | 5247 -e_system_error | Handle some errors | Disabled | 98% | 4278 -e_system_error | Handle some errors | Enabled | 98% | 4126 -e_heavy_payload | OUTCOME_TRY | Disabled | 2% | 25931 -e_heavy_payload | OUTCOME_TRY | Enabled | 2% | 26290 -e_heavy_payload | Handle some errors | Disabled | 2% | 26060 -e_heavy_payload | Handle some errors | Enabled | 2% | 26176 -e_heavy_payload | OUTCOME_TRY | Disabled | 50% | 43802 -e_heavy_payload | OUTCOME_TRY | Enabled | 50% | 42883 -e_heavy_payload | Handle some errors | Disabled | 50% | 42538 -e_heavy_payload | Handle some errors | Enabled | 50% | 42590 -e_heavy_payload | OUTCOME_TRY | Disabled | 98% | 58263 -e_heavy_payload | OUTCOME_TRY | Enabled | 98% | 57450 -e_heavy_payload | Handle some errors | Disabled | 98% | 58248 -e_heavy_payload | Handle some errors | Enabled | 98% | 57814 - -#### 10000 iterations, call depth 32, sizeof(e_heavy_payload) = 4096 (gcc, LEAF): - -Error type | At each level | Inlining | Rate | μs -----------------|--------------------|----------|------:|-------: -e_error_code | LEAF_AUTO | Disabled | 2% | 1973 -e_error_code | LEAF_AUTO | Enabled | 2% | 76 -e_error_code | try_handle_some | Disabled | 2% | 2381 -e_error_code | try_handle_some | Enabled | 2% | 356 -e_error_code | LEAF_AUTO | Disabled | 50% | 1741 -e_error_code | LEAF_AUTO | Enabled | 50% | 235 -e_error_code | try_handle_some | Disabled | 50% | 2681 -e_error_code | try_handle_some | Enabled | 50% | 555 -e_error_code | LEAF_AUTO | Disabled | 98% | 1296 -e_error_code | LEAF_AUTO | Enabled | 98% | 234 -e_error_code | try_handle_some | Disabled | 98% | 2389 -e_error_code | try_handle_some | Enabled | 98% | 599 -e_system_error | LEAF_AUTO | Disabled | 2% | 1796 -e_system_error | LEAF_AUTO | Enabled | 2% | 76 -e_system_error | try_handle_some | Disabled | 2% | 2511 -e_system_error | try_handle_some | Enabled | 2% | 369 -e_system_error | LEAF_AUTO | Disabled | 50% | 1643 -e_system_error | LEAF_AUTO | Enabled | 50% | 249 -e_system_error | try_handle_some | Disabled | 50% | 2338 -e_system_error | try_handle_some | Enabled | 50% | 574 -e_system_error | LEAF_AUTO | Disabled | 98% | 1205 -e_system_error | LEAF_AUTO | Enabled | 98% | 263 -e_system_error | try_handle_some | Disabled | 98% | 2316 -e_system_error | try_handle_some | Enabled | 98% | 672 -e_heavy_payload | LEAF_AUTO | Disabled | 2% | 1907 -e_heavy_payload | LEAF_AUTO | Enabled | 2% | 91 -e_heavy_payload | try_handle_some | Disabled | 2% | 2069 -e_heavy_payload | try_handle_some | Enabled | 2% | 392 -e_heavy_payload | LEAF_AUTO | Disabled | 50% | 1982 -e_heavy_payload | LEAF_AUTO | Enabled | 50% | 831 -e_heavy_payload | try_handle_some | Disabled | 50% | 2579 -e_heavy_payload | try_handle_some | Enabled | 50% | 1139 -e_heavy_payload | LEAF_AUTO | Disabled | 98% | 2032 -e_heavy_payload | LEAF_AUTO | Enabled | 98% | 1579 -e_heavy_payload | try_handle_some | Disabled | 98% | 2806 -e_heavy_payload | try_handle_some | Enabled | 98% | 1682 - -#### 10000 iterations, call depth 32, sizeof(e_heavy_payload) = 4096 (gcc, Outcome): - -Error type | At each level | Inlining | Rate | μs -----------------|--------------------|----------|------:|-------: -e_error_code | OUTCOME_TRY | Disabled | 2% | 2261 -e_error_code | OUTCOME_TRY | Enabled | 2% | 1699 -e_error_code | Handle some errors | Disabled | 2% | 2333 -e_error_code | Handle some errors | Enabled | 2% | 1738 -e_error_code | OUTCOME_TRY | Disabled | 50% | 3754 -e_error_code | OUTCOME_TRY | Enabled | 50% | 2466 -e_error_code | Handle some errors | Disabled | 50% | 3004 -e_error_code | Handle some errors | Enabled | 50% | 2303 -e_error_code | OUTCOME_TRY | Disabled | 98% | 4745 -e_error_code | OUTCOME_TRY | Enabled | 98% | 2897 -e_error_code | Handle some errors | Disabled | 98% | 3482 -e_error_code | Handle some errors | Enabled | 98% | 2663 -e_system_error | OUTCOME_TRY | Disabled | 2% | 2591 -e_system_error | OUTCOME_TRY | Enabled | 2% | 2053 -e_system_error | Handle some errors | Disabled | 2% | 2591 -e_system_error | Handle some errors | Enabled | 2% | 1969 -e_system_error | OUTCOME_TRY | Disabled | 50% | 4793 -e_system_error | OUTCOME_TRY | Enabled | 50% | 3375 -e_system_error | Handle some errors | Disabled | 50% | 3662 -e_system_error | Handle some errors | Enabled | 50% | 2883 -e_system_error | OUTCOME_TRY | Disabled | 98% | 6653 -e_system_error | OUTCOME_TRY | Enabled | 98% | 4602 -e_system_error | Handle some errors | Disabled | 98% | 4550 -e_system_error | Handle some errors | Enabled | 98% | 3711 -e_heavy_payload | OUTCOME_TRY | Disabled | 2% | 31509 -e_heavy_payload | OUTCOME_TRY | Enabled | 2% | 17713 -e_heavy_payload | Handle some errors | Disabled | 2% | 28230 -e_heavy_payload | Handle some errors | Enabled | 2% | 17252 -e_heavy_payload | OUTCOME_TRY | Disabled | 50% | 44864 -e_heavy_payload | OUTCOME_TRY | Enabled | 50% | 25929 -e_heavy_payload | Handle some errors | Disabled | 50% | 43575 -e_heavy_payload | Handle some errors | Enabled | 50% | 26238 -e_heavy_payload | OUTCOME_TRY | Disabled | 98% | 63491 -e_heavy_payload | OUTCOME_TRY | Enabled | 98% | 35355 -e_heavy_payload | Handle some errors | Disabled | 98% | 61875 -e_heavy_payload | Handle some errors | Enabled | 98% | 34624 +> `leaf::result`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 729 | 562 +> e_system_error | 732 | 1134 +> e_heavy_payload | 901 | 5203 +> +> `tl::expected`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 830 | 459 +> e_system_error | 791 | 3957 +> e_heavy_payload | 1224 | 15512 +> +> `outcome::result`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 661 | 589 +> e_system_error | 743 | 1786 +> e_heavy_payload | 10453 | 15487 +> +> `outcome::outcome`: +> +> Error type | 2% (?s) | 98% (?s) +> ----------------|---------:|--------: +> e_int | 781 | 1811 +> e_system_error | 876 | 2493 +> e_heavy_payload | 10055 | 22527 ## Charts -The charts below are generated from the results from the previous section, converted from elapsed time in microseconds to millions of calls per second (so, bigger is better). Outcome performance is plotted in grey, LEAF performance is plotted in purple for clang, orange for gcc. +The charts below are generated from the results from the previous section, converted from elapsed time in microseconds to millions of calls per second. -| Error rate | `e_error_code` (clang) | `e_system_error` (clang) | `e_heavy_payload` (clang) | -|:---:|:---:|:---:|:---:| -| 2% | ![](clang_e_error_code_2.png) | ![](clang_e_system_error_2.png) | ![](clang_e_heavy_payload_2.png) | -| 50% | ![](clang_e_error_code_50.png) | ![](clang_e_system_error_50.png) | ![](clang_e_heavy_payload_50.png) | -| 98% | ![](clang_e_error_code_98.png) | ![](clang_e_system_error_98.png) | ![](clang_e_heavy_payload_98.png) | +### gcc: -| Error rate | `e_error_code` (gcc) | `e_system_error` (gcc) | `e_heavy_payload` (gcc) | -|:---:|:---:|:---:|:---:| -| 2% | ![](gcc_e_error_code_2.png) | ![](gcc_e_system_error_2.png) | ![](gcc_e_heavy_payload_2.png) | -| 50% | ![](gcc_e_error_code_50.png) | ![](gcc_e_system_error_50.png) | ![](gcc_e_heavy_payload_50.png) | -| 98% | ![](gcc_e_error_code_98.png) | ![](gcc_e_system_error_98.png) | ![](gcc_e_heavy_payload_98.png) | +> ![](gcc_e_int.png) +> +> ![](gcc_e_system_error.png) +> +> ![](gcc_e_heavy_payload.png) + +### clang: + +> ![](clang_e_int.png) +> +> ![](clang_e_system_error.png) +> +> ![](clang_e_heavy_payload.png) + +## Thanks + +Thanks for the valuable feedback: Peter Dimov, Glen Fernandes, Sorin Fetche, Niall Douglas, Ben Craig, Vinnie Falco, Jason Dictos diff --git a/benchmark/clang_e_error_code_2.png b/benchmark/clang_e_error_code_2.png deleted file mode 100644 index 338e901d6b2b676ba9bd56d4e6d0239481aeb49e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15573 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 Q1_lNOPgg&ebxsLQ09P??sQ>@~ diff --git a/benchmark/clang_e_error_code_50.png b/benchmark/clang_e_error_code_50.png deleted file mode 100644 index 74c0025f380d36a6d484b4a4b0162c715e4602cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16404 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1U@YcfV_;x-^t5~n1B3l-PZ!6Kid%2zmKTd$ z-?jdHxz+sx$LnQw&#C=;d}F!n`_~&zuj|#!pZ>I=)9p!5$1#>>PPG}my}1UK$_rZr zoH#r=L?*B}S$gj&|1Y-t`L`amFFahzXFrFOW?K23-yM~0yZ73wtN#-j7#J7~R{ddD z1Th>ofJgxy5Xr&~B9Yk#nLr{CaWEUAoB@fAtQ?sQR>FW&s{$W0GcyZg!W>B%85ItO zh6LZxbMtJoBO@cjVq$y@4($8)D?55uiDsimW9{#6JO3|b=a*Bt^X~x8;M0>JYh89GHOg_><>mguepFS1+{(3$Bu-e_9o?J@P!^6UaYKzJr zf4^MzpEh^y+iSX!n~sFu{Qm8mn{D5=aNe7Lety1NzCL#MHCgLP%a*C#-dUWUvHR-k z@Y`2chv!yQR2(tf`u5%3-MQc1++1gt_xIP=vhVNi3Ld|*@A>)p+eNj*cD#LdZfO2)MV^>z`%Uy+nSE^y=iB9Jp}N|dnw~$)%S%db+}m62yg&8vvEFyvHG<>!R1_Zi zQuFCar}g!xr>F1!eC@leO~r*>yLJWbvTKslzgIfxg;dqG5>GbUmJiS8*YA3L<+tst z!@@tSo90b^@#YPW_h#SOW;_2mTx5A2c{zR4a`#Qg*R5DluyL+&y5E`qZx6Tg@6J`8 zt}guA<+|&l|FsMb8-m1iQd_hfii(PK?CtNb&CbXusFhDUH|M3%;>qg%xB6tQ?|hqW zo?j*z^Q183frfDKvK`si^~&8>q@6n6FWJA7f4~3#y}JK@ zzXw#k_+9!Z<*C+-kB?&2KVIu~+r^Tak#XYf;$)AQ(%8!TYj1q}@nfrqk8ZKJLuN9rVVgLW9|L>2->3NpZz$C^ATs*g!{FB zeiUwh^L&0ipY^+~+1H(B*4j*YnQeVl;K#)pEq*k|S)w{k=IijmqC-JeOF)=6$wrmG1{}k2u}#zSYZCr+7T8 z_?RS?e>Y>9w~|Qw(ZJ{Ok(-x(zVLCft$J+wt+2B#6J5*%?XrLQeEZ_@^v19G{VsP| zx18&)G&$&{7UsB~n}wUT{J@wP!}K?$r~}VPMIQVfFTHn56ag|8e>Hh`_*!(p*k|1LnDI zaPjr+&91s2yZ+kh4MFMQ|L^ASDGqk8UORct%EvqGRx9V3sJKL}e>SgENQZODb#qnG zgF(J?zlBd;`|FVF>_0CjcBJ%A_iD7e^-}1`_Z2J6=bXE?_}%$k2`evL(oX+! z#cxgV&f4E)capuruB5zt-~7~emF!!=-1Yz4v(Bn{ZD{F}Ty5_^!7f58Aml;zjjoFd zGoiMsIGuIMD(ibQVeM+ygqZ=+jsB!v?CTz1UVtdvTTc8#H;wFrK?1{ z)gn$F(|S?bn82tI@mMY5-r}=cw{BgSDs|qi-|+YEU=?ktTk*dA{}g#zAhOKw*PrO>KITC3AuPfGUvQ(q_~D)Y+y z(cI1d1>dEM>X_zMnC4r#i{AQm_m?iHWDF{9|91JG)|!xn3g=7>wO9SqcuvabUuCKV z6&zYIS4EzDWevKODZ%hp?CQFT=ErKqe*a7^OL*P0i16BcLTXLA@BEYV?x@Yd56S!PFXS!uyGfe7Ll6`Hy`ljPq5i5OB ziN&fBPG_5M9hVl3X>Cbbc-}E?_o61(!cTRJA1!wj{<~@BniN*cxK*sbGM0G@m>gKL zF7T?;i`^w>S3T&h`Rs6^xNBP4y%)c|)}Jt`h7^HsHeTHyY@YvX?yvjToE041i~QBD zIj--H0K4B;^U~Ma)WyBumrUk*cX86IivA6+&(#_kUajL-ao0J>#Ne<&U`>E;$1F!B zYoF|vmmzLR{jF{juWwB9O+PnhW=P@eto`hh4!@pl8O2}Dz|hp1;A?pBl5j{CTi|}- zyHi*9w_Clc{_C-bcN^D)l`l$Ns)U=aUwKh4DhgKHdhyPkH+9pwctmAhOuG~~t@G8;$345DPlrKY9R-}F7@4mZ#woXZ^yzd!t`D14DzSdc@tkcf(?0a?;Pw+sZAj7g1SRdBZzs?^i9Ct^cmA zjWWF^VEdg;=m=jK=@_siS&X&H82>o@DF_w@93oMBLy1-V*m*Ir8dHQBl#G2M#!7RM&>_?1^$b*;Kdq+28xm=ccdO;r4Hy!u_}E z*D5(U`@V(#(v}VJ7IE3ow5)qRJHK2+US8gn(ys3>FE3xab*t$XpW|07IjT?>1jLyx)J%>qGT(D-EygnbrDr_hMb{Sz;4^|JZMT>sLi#e`)QJ-}4z68aM@X z>`zVDdyCO?%61>tIrC4Q@(N!(!DB`nO-C_ehDa z{}8UYN=hz}|KIn0uWqW@K0o65!jf>u*ucPtb?dKrGW|I_Wh0Ar#;zYb ztG}=NZ8vwddaGBx|BWxR|D4?{RIhv4bV>2|tPNAbRviplo4h6}tUu!VOmXL&C1*wS%FJ!r$9*Ud+4Z+#VfU(d$Cpcb$p#G*Kfhgsb^iZS zDD2;3C-nC`1H%Cpu4&gz79H{_->)@AIk30I<*;yLMblF2cNuf1h3;0oGUwq{gB1ZG z!V^8V%-#eH0h%@ZTFBcRC%GduFt500ubnCT)jLU{SY5Pxju4r>+ZFskD>)db#wOjg| zjJLk~mYtOqliPmoX1uhroL!AXsL~hNxXq_4xToz4Z%x+%J4!j?<2h$jjkx(b>(gAG zgA(}?Z-Ef)#jjPOgcoM*{NpeAYpMI$)UL^woHI**e|szVcmAW;bVpY0sarf$A{-yd z`EGaw2{n#sM&)-O{^r)=oEERK#jpIzETPgly*a14bYk}W-J9lg)#%4;72&tf^P9eu z&%0J-%I&H4r=tJ=>mC23m~=nST02Qpr*=A5y=i*oiZJ~Z36)!otF$iH`|y-|2&C;8=;{K%lD}9cC%-Zl}wn+Z}s#^CH-rjSe_n&?}`Y9_) z)oG%?@Uh+Jnz+KWGADX$XgXs1>6gbBdu9d(VTFjSZH$CYnVK@N^Z>Z-1E4yImC@` z%B-#g&9r+49IF_w7)}<{`70-SkF*ODPFz#+F{@?~@3mF0eVr5nuWqz?`MJBjeBMPisoo>fd@5n`Ybvfs z8Z}MLiBb_-qfppiR;%(Wo*7&SHhgq=Bye*(KLZ29L8c0}D?AcwuL*-W3=Gf;mH}Lo zB3HJ^Y^0G7+@m0%(G^I=i=FkpW`1hwQeh?4YuoSFWj8lBhXn;ax>aGj#fS6y<;%j`>My(vTDoxI z!B3w*&s=t)D!L(vce- zbngA!+uIZ)UOJVPZM%B)>d`ebCpoaLJlJ)I?|^^({Rz1-C8jD7a!*zHbFZ$czdLoU z_Le)vTd&;~{%dt9*lPDR@mpW_urJJ9P~UNY>A;kA2d#>pbiBR2UEgGX+1seyRbRDC zBVM)%EncxgV^zY{>(_Umms=G(!#Mq1M>5M@z60lfJ}%Ead`LU7$<*e{5i`9#S-Z`} zcAozj@OE1K83u-ByAm?zT5WT`7F4;`gClI#!fi1(*U#d(dNbCaWz{!N&ZXyGS5{WO zdwJmR@9*uAn^$S>W$E26>!9*>?cQx^?^I9kj}TXj_`dq~oj?B3>ux_&-MOu@a9y@r zkIUAmTkm!+t@PWnZS9`4@;p1G4GacLSzljU8@*1t-+aoX3uW%hy)U zX+|n%|8LlKpljWg-TSljax&k^DMlRUySuHpKIHaWY5v&ahqo%HuUXyP_?ID}h%@ZT zlCXstr`N~qOxj)ke%t-}|FuUpmc6-=sO~q%VFQEF%wN@S^**oM`T2&`?Zd3Aw=B4L zHhk*#9Y0q^>*noya;tgAaUI>7UGiHa7z`p=xCL|?0-xSEcstN|vGM-U)>$0+PwYik zovP=aX0_pW=BoEwg7=3-CEvX~D~NN(w%}Ybh6527F5P*&OP6J$c4_g0h0-kC2{Dxc zw-Zy3`sM{0FECond^<1V@%|;AvbVRdJ+*zU_PU+>!tI}k+_<%K`kK94&+ppJ_U6O6 zpw$|+FJ_5dZO^{GYq`JRD*kJ`eokMzeYScyBZGiW1CRQq&VVg;uQoDA&+lv8n(W&c zdcW=#Jlu)tx=ZPF)J%%YGKKWv*pw+5S~i8<-drB0yzKLjofMC>Mj+ z9AY36)W&6CKw>u}FghrlT5o>)9k1(SyT5y0OC4kf6?79;U!1af{~o(`7I3)-;%bA+ zwu4L#>)ayOfl4nHZibywsXLuEFepUI+1KUN|NFW8@5kfvoXbByKOY?*FYoBQfx*Zd zq}F5Fq)C$;ik|wGmX>n%Tbh`pxcAF#t^EA#=9!tsZ`h0UF z@B8&iTRmLPf1b@o*KVLOS#J{XDj5)22HmzrJK{_xY_8 zz3t4}+q+7$SE#L7w(MBg+Nh_~@^5ZB8WkOV_tURmRnZ#~8fC3YPNbcmm+L)Uuk?1_ z{e5>q1JtKap5)Bc2GyHS@~^Fl+?IY`?)Cfk?i(1?CQUWg_ctS5;NzoSS1gZT|fCE$?n@OwP0K zoWt_ETYuk%MT?ZK$LIY2_t)=-N|sgIEbaQAPsPh?)`lCW6&7x^?z{FffQcGlW#PL!JFnfi@q)$s(i8iA z|7(hhi(_-AeZT$pc%bj~S65dH>M*cyA7pCyBBaB4A>(R7?2dwiZ^b+3rQO+EU0yNo zkAA0?zP`L-MAS3;e_OM!=iJ_wyYO+f@1%QA?u&!Qlmv7bJh%@AeU9B?7tt-QU$*J; zg$n{|2_IR!pFdlFFvxf6uY}B>yGmalnzs66!1HN62`e)L{%$`e1RA|#VqnP*nWyyU z=kxiwe}8@b_Ti!P^?t9~d3%;~s3yG1sr&!0Hak1Jc++F?1-;VdyJo58M|WO6JKH?= zzvkEeOW)$|uWV{!x?cY3$H&LpYJPqSkYBT)>FV9PZ)b_^{TJ1Bv{P6eGzc9LV-hhMRtzqZW%=DvYJK!=5!;ga7529Wm|6cz^x&pS4UODP=GH{BZC z02*duU;tB~4A;ckkf0a=6@XHB#Z414uH4k$|K}3#^!I^?T7Q?g?XUI^--S!89X5cn z;R%U@m%8PPi;CtbR5mRY_c%A-{yrBs_g!x#ei@5|>Tho(H|Ae>%W%+X0|SG?Vixbi zzuw>5dwcJJi^4j46^b4nYF(H+YxeBB-s;MnyJQtWNs1w*C*fu9Z6OuY*FRZTuUT{E zYF6c!@86@t!lv=^@U*;@N3uF-^1YqK&+nw~Pk4Fu;p^+``E$)JEM6R0xqP{L&i@6s zmwGunH$Q#;+}QV$W-M#>mc*n}J)Wr?3K5Ub?XCVE^StEi;x3Uj5vIXHD-=v4Cf;T= zjkuD)$l&0{ajoC}--{HDBCFb8TdrQe9$i*emT`O8GPT*p=_vHd%HP@okI*%PmsvAwmQ?i4qSTC<)#uLnZI6+C z{QTTp=~?|-Wf?$9B=sY}<)Q+JYGOsi8(08bih|8Ticjq7o4)ew`T1-%r#d)0F*t0P zv|!h+TfS9yd*Z?$pRGP^mUF}53nMr>1lEL9Jnl7Lvv{#`PGohpwP^$-iExCi+Vl6@ z?Xri5S~sN5s((JWyu%I>Gfh*u!q>%YoE}$oa+&Y!w9n7ZZhm=r`EBj>dy*-#;Jn_3eX85ANGAANRqcI@*qm^a-xdz-)B zDL%iG(Y-R14{Dt$*N^y#!j_Cs?o=gE;k>*2{jR>ZqN1XCa&TKSb8@!y+yA=}SO2%v z+~jcf`n_rI_kN#u_3Bl@T1Yx)(H7mbX;aSYYirF+OrAXZTK@an+ix$I&lf_-$JKm1 zD!BgG%U7>9iN{qmzJNJ(<%fgp@;5q#)elXRwXeHlD$N9Q50iP`or1sXz+w6P{C0o4 zpGSCa2E@hrA!6v|ix(R}^H`0{>~HSuELNVy!w3uIrfJi}zHfTIXwjkze|jX1=aj(x z$rNAvb!zU74T>SzOP6!(|NpOgwrRH5MRrgL3z{->^ymKexQ$7z(c4o`i)H8M_gD2S zxXlQ*{=g3IX}_X#Z*M#M@7wnMH)rSXdpYgxot>B8-PviZc7J)f{JELN$M?S8uz&yk zZ}0EFZ)+DgeE4vl&bmW~oL;|uTYCEYo14auBpkOhgMHY*DX3%0?N#CB?frJ=^LfRm zL%L1Fly}{;4u+v;!N<}D<6)m%2j zRlQXG{?73s=d`vQiT>prUu}1nz1@_2yl>~vO`D8B)$rPI-sy2}wgv_Q+u~t`T!ItJ z>%ZUcZ{M7LzKwI*JztA!@0CLKYkFRMbhO*~u*;MwQ*QkF`r7$64ANhXeIclT6Y-di2;UTI2#XNbxAr^&s){6P(nvNtyb zx2JhAi7sK&F0x+0)-9#Oz%WDLpitJT;QiXRt`*PD%rva^^$QN392yqZ_U!7**!8aj zzkdBXZSGvzZEJtEy9&Wduo(gegZ8UlRjORHwfueDcbB;M`1>Qg@imN9;OZEgOR_{edwZBTfM{aeRU;l4s z_07%u+cLIX^!Qj+^>KFozQXsmS1e-WOifKeGvyb4gx!;foV0&u@$Q z`Srh}S6s__er|5r^K-I`_@QO^(xzVtXJ;B8_wx3R4PIzb{%%g~pO4284rbk}=B{5Z zHZS4j(ewIyJ}@D2?n8Ley4ESIzTzMgIKew?2zvVL?CfvHr1NiV$-F!#AvHC1XQeJX ztmtyRqOzhcyq!;WlX3bvgAW?e^2bzag?w0SZ0rhqNJ9=ZV_fw9p6%}^ll|Z9|Mz|Lgbf-2eanZYzBqwmq++;>NS{^YdFib6iZcJOvfb+b`FXb0M?gb6;55td zSSv#KrppWW$N4MSyrxW@8tLcfmoYbM2dGE$y5+8a=QbtaXu7Cze;xD`nay>ia=g*%$lS@!byK2{S=jK|^eNprK?e@G`*5&Jb zXPf2v><@pOw{qtCMT?XY&rV^{^56}7Qs%%bW*Wi3V4&EvboqyWAN%WfoO|}Fy!68Z z$M2t>n`U3@xmms{dDlFKE0Le_@G#m$>+;CUZZ=DohU)AmFeBzg@N zHhrDG|Ibk`Z|}R$x8JY3t);E~_TpmqcYj-w53Y^g9#b6mWJ#KRU~q74CKK^JIdUUTuu z{{O%CuU)_Xyxp%C%8PiwsjMNPm+k$&-|N;!Z$CG$`kke9#fO9|@J67@1#9-{y3x;A zybl|@%!cO~Mi(wf(mN={eC6ifcXxN^UAWlQ#bvc0)BrmuvfyiAzi8~r?eoj0-OB%c zntA=_;NY8C;E|BZ={e_@C1tNkpX1`Nf$8Fn8yWKTe>U#@_v`hyhwbvWV9mhlQv#sk zBB990=FgGX>904h-?87lY&vVy^X2QyFI+pjKj(JX)9Avy=G>@~tNY^Txfd`V3csM;)WDz%TD}v(dq2kzHasA``6Cwd~t2H zS@!#9Nw;@=c(p(8$V)dSjxZ;?9}k$V3m>`M*!1{#|L!zriP}eBt1rkt?SI{^^ZfSd zZ%KV3X&hhq33Y zXHC4jKCk%mQr6zQeXrslJ$;@QI5}F6@p9~wjn3Qe*1WxI*3^~2XtOz?w4C?G!?{bt z0)Jh&E0DD}ym@KV*Q=ZLqi#QrYvSS%^XcPR{~+jZaNsAF)gM+SXiolYY+;eJ+gz-b z>nkt!d^7WFiV+-Q2Q)asvc1>WZdbYfN#90xm3!@mZEN>D`&F~5^TW5^b`}u^-f02x>)5x-Ub}K3vtDjp!EMc87SPDoC6^6sY;12%OjLfi z`BxmGp8N7r(*I!Bo93z2-|p9LkSjTA)3)l7YiHgB0hrL#^DozrMVDSBz5s z9rNFCC%C11-7Y)6S02CaUb4BpQSE+d&-d@0ACA2Gw6gkL=Dg6&`h72!yXFXjT9*k2 zt6nahzGm;;{G z7X)#*#|CIMT6EZ?=G)D5f9?-$Y~S;cx)*=fheR*EwHh>t^8MA^@_QTa?k*RGmuI1~ zX3t)`^=oGErBi8Tx^=b#d)~zd7p3IAi*;}>s?#^QMoY>ORt!pDT9!fhmCo_6mPNB1hi}DL_ zRnQRQ+Y?iG*V&Ex+OxB>ot1a?i-V>Ygw_3SEOPB$vuKghmKw}zc=0Jvb!4>v%p2jx z1jeGNa!}jz_y65y`~6NaxG^_7f1jjTZ>8goqSP4)SFc^$HSwwKmy*YCZfI{i`=A>7x6ogfyM1T$jeol+M7;DpJ2&k2%iluZk2SgX-o3be zWlrh(-b>Ql-*U9J9sA|SWX}1t>$RLw)P^II)&1YRySsZ`^6nP*&yRxy+&IEKJv-ON z@3%8qZ@5#%&(_v9@i*&Ty-<@$wRLs>R`{#;iTQXu`+m61I8pLm#Gh>?vo3{hSXOoC zu`j5r`_rrPq;s_C>!!Cc;Tb!hXRY0ye&MP^^=;d_KR13=vFG0Xb9!5D=swZsW;d3( zhQIy&)L(wr&hqzhZpRCap6JJX|GAEbk>#|MwDjA@{q|++k6paLvwrWlS$n_Vs}2hf zpKfLv0UgLGOrJTkR%yjSFaNgoc{h%=hUb1iru5zN8SlBjeB%C`Gc3M(FP;7V)r;jW z4|cK7uxU~?yt%7%H7_sk&dR@c_toyM{q=JBW4#Dymuc4Z%WcKadj7EU?vgE{Oogg=FOh|oO6Im!nS43Y@LDe6 z634WAjyLYg-s4}idiCkJiifR*;ySjnE6%;nT6N`eC5{e|P6X&6>9pR{tn!O$fZ;BeImWSI;l>sczoB zS7F_=^>=<#$l2Yu%`SR=?a`|xnRok4S+}J|&ineEH&ChIF0+r^!Jy~CUw6+k%bg`1 z{c5tmU7@qtl`=qVg zzeSc`Z;-tgnI*cEf9=1x>J{s!rFh?7JFoWQExGTLRu#> z_4Bpp{GI2ej@n*hNvSw8cL(!z+v~Op5uO*WT@(8yoy`RHSL5q>ujK@E6b>sNR(|JD zces?_ps-1FedYu;CnWhbA|2OFJcJb`E?v4b=DTLxcj+)$FRgDU zmkByVaf$i1h{_S(j&dV#?G-dw$_eWlSd3m|))fLU^Pb$B-m$0+5 z->qVKeRJLKY3^?uljrA1F)mq~V0b};)wWRmU2yEWx|`7n&d!Ig-MjZLPVD~u`|r;! zU$f?n=rdbe+l%M7@42)0F4IA;zq|h5ju+ecnM>+-%4H4(UDobKH{c9U#qx_B| z%TLbggfN!*%ZWS7TZeY;Tv=e|+GqPShMo2Adb%vg++g{^G!Vp<)wYTv$n8;ZlERu#*GtqEdOD0HKf0K*U72ZFGkJ1^ZNDcSRZa~?%3P~NmY-IaEfP_ zt_s_HrJ0>ShIiVwt4~Bftnv(G&sq2T3X68eo5#8A1}j-kJD=qf*N@v0xjF47Xe8Hr zy53f4^E`o{no$?r%Zk>oT2(Z27T08tDH~t*fmYb*F@O2Rx3qd{t<|x=@Bf$IoC3Dq ze6D4nK-bRt9@X{#XXojdsx;(T{k`Dw%9wVHMx?iM}CnSz>|qitjsv zVwJUCgsyhFGr4=WdB}l~zTYVmqCZI|@f+whEq!(Ke*OQu%lzlR`<1lPKWvK{_Y5n^ zxcvP6uT$3U-w$*+rAU|bVTkT6U*s}o5jo0D)!6la=4>j;gX%?ujv1VaoL81moE>x2v2w@ zSpLZGO{eWfb{1}Mk!QV8{o4^ahJ#ArqUlK8n&kBh4NW$@uJC_l@BU_a-5bV(OkC0| z-8<4_-b_!+pS^+U-)a5*D&HgpsvR~o9AZ1D^iERrccYFW8ssbjZMzy=jXRWhJ&{S+q2oTXM=XWXy#8p*);W}q+H?h37~KV zMTmQ3bAPSzb^cF@L+-P z@_F;-P1)u>_3Ui(+x7pR*V}z|X%n~md;b5Q^DB-_-LX9VPN(h0^H*-T`)N5d9GoQr zYNv#3^PakIpWXHCuOros_WZY(wX3NJN%FdL+5Fv+c{kFt-YBbo6=q}6Ub|xb`t5Jt zytz;l96b5#Ok?$@Z-W-@-hErnzRpHVSn}TGmk$m$FBS`aG;d#_`nMx?!O8FEmo)Qn zgxykn9sd05o;^0@;v4G!*WKQpAD^+;YCHQ)z0h5|cAfa(W_ft=f|GN02v;Y~U%BzS z+SX+ZO;fjBxpL*ksj1q|kE2V=%G$D~J%h|r#cJ79eme5jzs-D?q#Ubn+R?c;gn#?= zg62hU*`}~^Tx(I@`Rc_Bg~QTMdHS2wK7*2Mt=h4;BGah9^^6B+1^G^rVw}g5Ut(;- zHS0_dC=JgP`@LI*>9j$iD`w@{IX+FDot>SUqC11`$2x2{&@Q)7 zwK*XvDJjV-^-_RcLxLlV)Sq4+h@z>U&a8}0tb!}n)+oi#K5*p7ks~IR>Tc=o;5})e zaT)NE0|o{L0r37b@Mt5H4eE%2Mj%0J8CbZTG8XKbU-#?evokZ3H>aQ9mV0|!WO4E4 z=;^a(gSV80g?&47KR6`hN#D}_i+x>PTdlwS{QSJrb|e4ecXxNc`_m_DEf%%xdQj%f zN48QjRwXB7{ogmvUUOY(BfGfX&*$xLe|&sAHgSK#L8kB@!6$^P zS-PF(-C$OTn4kixVVtdMeiUTfoT?puXVdHJ>)W|1Q<)6;f7jozNO_1m{^8=U?5GS9115Z>xH#RYOa!+ghEJfM=8|i6pghfAD`LF%`?RNg% zo%#3o-Q8+kOFo||yon_u6y z{_ofD>3z4}zq-15omt7T9?5N0U$ef~?NYe!|7Lj_s0`tJcBqwGIm>Ly%NKt;e!WgD zd3|kd@og>TODa=3YyN({zOCq~*Yt%ezomYDc2-Y0Xl;+tQseY(;G+TPrq%D@w1O z&_C6$F7M8chugy6galN#mhbuU;ZpGHlH3I5uVO+_(S4 zL`06*$X|WOk?J#R{i;=5bGzT^w7!$rTl_J7P2AZF^Xva*F880$XDzq!{GJ=ttut)Cup^zXcnAYe+cA^4Qe#=j?fpL_e|f$#A5m?f>)1`$|u6dC{-iH*ZRo z>F6haQoFj$Wsw@=+ThL8{__Q&Wu7>5-T#@;-z5ZiT^(y_vgj!cl8Jn`Hz%Fj;$^XNPDnwRZ*(YsgOsapYFxZeaAF4Gb8A1 zXZiQ<4-PVK?>9Pmdb)nQk=oslp!I*DGheT}*dPA-;oZ4aXEUZwo!ZDZcLtxWhH5T$wS760-t(=*=O z-EE#%#iIM9xyF9u{8^wX`ceaEi3n4mujjqVpgO61rr#c?xbmt~J|PLK1;P)$de6RO zw_~c$tAMpy#r4NZUSHGwZn=peFEg{SR({IKS9#&SQLj8!`Do5`io0D=-n00lh}_2c zdp7!qoX~z3XFq4My8kYxu)o=l{-%k(`?Y4)u8O}6NlPco*Dl`{&Zxif+IMfMM@!u= zIN6=}F8q6?WVOQv1>S(-Nk*MBjnj9X@nYTdOR1xxbK?1r%N}2D1}T9Q$Iv3UNwZ^K%;g2szrVXHeYv(n|D$SbhyF)a7H&0ODFJ`|IA77; z(8U*La&vP(&U;?J#_EOL#tRK|tF}j~E#dz7bl3A;>iZfJ4yrgmKA_=z$zf`;?~@&- z=bPdT)@+=A>EqsJ;i-B@roW!|dfpGFCf3ZRcQ?MURoJpV<26`WUJRN6=Y6;QdtqgU zf&*{X%7b6ca&J9x6Y4+n;F0X%{jnEnTjD0Hapc^~$Yq+f>4JBnsnC}YfAL4BOV5}3 z*DxMz@@)BTXRx>1yFzl3oASPjkBe$SGah>b7B0H(sqr}Q+0xx-RK2I|5bRx?nsu>n zqK0zMw*F&Lmt>b3#pbSldhf)^s^Y!hf+rse@k2KB$YS^Y7`H_}C*v(0G<@28!+KezMu`@Tdm;Dw$|hU4O_>e_wv|Mx{N_ggV*{hBp0mwPU(Hr!G6cGl@X zCNFEgE~{SnY&K}+q}OufXnFMTaJ$~*oyE`n4mB-Xy7XwOm8GTSx>q*V*0;rUqn;Qo z*?5NI>c^0|0bk30ou00L``_Q+&b6w`vO?=pb_v9p!+>`nESntADUpAiMXr0A(B{1~;-r%+udn0aGw;kIz^VCbHnw{@A0xXRZ0?M0tjJg&zDHJPkN-DGn zI0-RHdK?lk5^!RBcm4jMyYJum@$a^tyJYgdb*n;O-V1)e@B6u^@b#Jh<(U~67#g;G zs^?&2U|?WqVg+#%Kx~BwkU#?xn?npF0uhI>!O9ts*vQI}*$^eTwH8W9NGNbHJU;W_ zfr29g155U*qDMzKPoF%wky~6(fM>&b`~P>Q>BV{}1SLE_H}_rr%WG?+Ik(^4UB2FT zzTMrtJ3Aa7FeD_gyuPr|S?@B}q&`_|w=c;bZl=$_*(Iv&rek0IZOz#khKKdy_xVg< zI4Grl(5m9Yg0u5%Z_k=NTm4PFJj14#4Ov-PZ>GoBaeDuHs;=1)6Bi!t{^eu}8$$*e5gVBv#O`UgK5?aIEs?q>P@+UH!omzVpuU%S7v z_;}r)kM5_>o-KX7@6RXi@YMew9v)tC{NlG&iqRVq8h^jJx;lJ!viqfb_wu5*<#6V1 zFM8^wt);c;;lqc5$FFR=y)AdMW%08ew|4ybQ?tA7@2`&Jtoy;s{ce7GdirkJ=Vxa( zzrDSEcQMzexuVNYEV~lAI;{0u@a9$1Lc_wA{n@*F_wL-|eXH=i$5H z_rF*0`#<^4S>?BA`EvC)vuc08-M-E~z~rFR+pja7w6C7ysKaC`4#-Pcw27Rj91242z0-b#3dmZM*jIZ%#W~H1p!c#qPP6 zm-*)XE`5D%Cy(AI3$21FotnXSc9pLF?YbiERQ30Ft=p~^md06a>-+tB{r+8lxBP#1 zcelGt@XYn+ULR;=-d6b7?e~|<{;_H=-+x(Ee9lmk?+p#5rx>;w2%! z>;M1#{_S@D{?>KvcJask!`3y)>EEjr%8#{L=N-`2)^^9vs_jVV_o?4+cIC#$$6tE> z<;BIt7xu0^bie*=$^0Lz*;}rsZ;I~^>0A4B(#H99zfRWuc*y>}e)0dev(595iLOaW z5`D7I&(F`DXV%(Gd6{i}Rp7_P-yv*zD#d#$47<1M z&AqNFc<*Z<<16>AGEwW8>~9tat!>{Hswn?<)=wlK&C2}GZ|dp$+yBrMg5IN5XIBa3^zu&jHnj*@Y#sie#5PvK|7N=r*uEK>}#=S@8^uctEfPkjB~ zt-qJvxq8*~QO(}?UH6`={yMjkBW%L^y*W3H%HL!>msrB)eYS6v?+0;@INk2P)yr0= zcs#54m?V}TYqj26NhJPg;B)!N%}YOD_&C{C{cifLu(K@_UCadgzWws~_Il!}jbH8M zJ9lws%oYEf(KOX(P18Mb4l#x%Q?(}1)tg`5-CZ7QJkLnewEM?z4G}RhHJiR!C$_{$ zu4(^OqM;ltywK>pcKEuU6Mux}&fe}fbDfdbU#GD6o{SeZTXR$7r$*ej6g}wmW$#sU z*XKJbK0capU2|SSX8qjoJuA(x{E?WF(l7ob%4MDR_tMVx?~$Fq&Z-pq-P^X&YSV96 zAeP8Q|6Q@=ob*c>&4`mnv|iLUCNL^QJl2ZHVww_?`Tu_X|GQdRT6aPOUbP!Z9Te*A z?OpfMaeu|uxYnswyMNXHJ!WlQy5+jn$(dGtueVw~a&vZC@-^$-OpSw+9I9%Ag9LT1 zUdgOCy}3$1X3LZPa-AOEDprcTc)3r{abN$etj812SguqHU4MN|DFzrT7s z-?;bZpFKaHDY0tLj9}fXFQCJ~k{!e9Eqin8y0vR{b9P?;pJ>wbbm2bPNoH@~U;R+= z*Y?re*(pA+uh{$CeqFkz=i`}~#(8`H`Atb!sp)*YH&l9(#|9h6?oj4wIw$4yr!v{z zy{;-(HN|Vf#Q2kQf)_W<@6)~q;r=|1~u=~c419ow$|cix&NtQz5TyyxnCbq{$RQ4OsRrn#y+1ZfonUiryI;HzEry`SKg*VAbi86La^_j-njTHVP*Z)Yb(QaW+kXf zuU_z-wTZPMp?7vdrSt6Bvt~J+HksesX88Meu!^?St$5%5f0{fkZJF+`IbNG;SGcbacE? zlc;48vUvH$sFM@Ud<@dPaJe$JsZPH4+Ly)4a&@l<{7X51(t6pfql;sW;Q<9o)$jkW zlX@bQB9dsdk*g~H$nX2?3@qAfo1S*|^evoNKifRNY=6L1PFFw22|XDe0aG4k)oG{B z6Vf=F`Z#sX#F-niYNt%hvey0l?9|8Z`9_hskH5~mxb2mW_QcCSf4MuUYFS+AKVqH! zU*O$Eu4%K(_RKP$yO=AtHosQwl{=k(XV!~`X&LNUX(A&0)!n--rEhvxl zx#3Un0T*FVVfbZV$9HgH7{z*evLf&7FtwGl)c@YPtl{u>ap&J4LEeS&GqhIhk(@L2 z;>zMx^(G6;ea`kS{yWuE`*W}9&A@QbX@irg zVisHH8-uly%YtWi+KSC`jXT~owNKvOZsjAhtNZv>+OL}%$2MDo6)&5SkjXN2mgAN8 zF8fbiJ?<>~b#I-@MYU+w6JcL0lx#TW}KPxccZgs)idYJ7#NQ2EM^WY`tvg4l^S0|VL0X1<}1}|T;WQoes zugSe~(Z_=1_p-7ej9%M{{8k)D|gwWBb?U7&wB3esWi^nJFl|*<0IGb z4lkost5@e16cn7|xOR7U`P&~KAD6wqw|9lmiQTUI{+Wh?W zqN1WVr)q~U>q#&*H^05J_<2y={I#qZR;<}3-ybxy^UrDUs#8r14GmrRbh>`L+Xe=P zgg>m_tykyQ|C0%DiqbG&L$^?h<*>Aydf z-=nTC-n`lP+4Ez&&hL?UwKwbZm%WR1xvO-QzJIK*+w%3}Be~cAI=)!Jvi9Yq$EBmv7h3QPsGY&d1Nc`|Yk> zyJ8X_iHdFf)@`%zT;TJCpMyT%+?afPk=P2WY3CwYr%%fA{$na_RklZJ)rqf;tlmwF zKVL8V#rJPUX0+&{taF#ltoDUZa9h3bL;d>-n2)sPga&{bkMCEPPGYDxPSrWcRTX=w zl>gP8y;3@{+E)`+UJESjabNTMO!vY^tBNmwg!-scMCbo6g~I-_`Xj&RGcq)A3h1OB zo4A!->rO~QRmNPS+V|m`xkUW?k~pUsRf(?o_juJ$H&baXmynDV&kjx&7UfgASNHF6 zb?fAEo`rTn6I*A@>QqYgSijY0zUj24r}pM+!;QnYod2$}c-=a^g$b&^>^kjk`|tUD z!Squ4&-I(vP2~Dl(Ion1*OK3Id+Pq~x*fMQ>X!{?+M2qi&UeP|tzTG7GOkr+o&&09LoYeknU&a2u(1sV{<%^_r{yzFQHk*Vog|Dj!+2FMjv@a-MJH*vMm{`0k{)S!gSsuUl)PcQH{O`ke z?VsknRruFYnYCi4^&{do$ESSiTgc>a{AyVo%pGHPjL^IC4P}xmFS@o zaj$M-Yxnh!*Rs_@bepf+y!gK-;`h(l3V-J=-x_z;X%eS>)~rh(OJeGI8>dyC4Liv- z&CdJ&|9^jfFHFq}51un%izQd3Bh}?^iY^S^giV38)LLiMa0iK6J9k>ijDi?;Shms;|si^f_xo z$$OV;38+E4<+t+1|56MLJ`)l=1x!Ajklrg2$t_}eGI>qn|9?*5$0xRA%>1=<#mi&& z1+TAe?fA2&;`h&f{f&XbQ@B)2&5x~8{n)oWIkR5W?%%V?AuQgli_CeOW^F1tlfvSC z-<@^iw{V}meNW@|e66$!*FSghk<{DYD%uer&pG@0?^6FF`O8MNKK*BeZ_CDY-Qkag zvo~EUx!XK%%F)-&qVMgz-8M|xE7r-P?Qv)EUHQ&`*BKZRnpn6K)=aecVZDx-0aTeS zc9Gq__hbqq1A~ALXg~r~!J@JcG9kplY=;dX0R|+tfKG$XBd5aEYiE?+>XX|c78MqJ zGf{e<-qx$1xpLnh^S*Xj^zXrwy5_sywEy8c{rl0HzYzr&-`#zuynum$L(HM<^NRWt z*Yxzbgx7qVCilDQTjuSbcU^Y}T*-PpO~ksgE2SXe#x*^yO=nl1Uh^lXd+qN{H_V<- zooTDK4y;|Q_|=Ef=*=%;W+cqDzxw2!xp~>n@6Y@07QEkW_51L*+!Z@tPmAAq;o&`T z+5Io?-Oqcix&f@O?9$br7sAeJZ@FZAHnFL6=c2oNryHzndwt>F>UXu5zy41A9j~+V z>9qSf6`S^~T61>q`v2a07#J81GM(_^d$%Xae$C1a?|%PHY%;a5$hmzjY)7hB9B+7W zOTtvqZ8n1X{u@rs=LpNan%l(9(2&5GBL8ZRo@CaZvh!8Dez}(v$;;K{Y@fAj?cS}& z|J{gxeXaantwb5m`r>o)?tliM%|K~3IYq8o53<)^__XB#P`li*pF7sXOwRZb+LC4c&2d%2Vt$F(7 zNz2lQ41-pn^&lMvZiYx~@1Mf}uh@9zgaoyB-p(P5?p>x@f z4-Z#}*B@+R4U3D*FDbb($Fex+9v>(srS>Ms+E!ip_U>+W_VsmJSFO@w z(GCureDBgy@7!ZOlHaa|$4A!woxIQB>eZ{$rcW2Y_3q+g_jiYQd3ajh%9mI(fX3Fo zG;PhfX|#In+O3zD``@0X8!fQL$Msuuc=+=c5AoOC`ujE{c$<-dA)wiGm(&_&cD@_u=2|+0%y zB_UO6mxQROXdvtArAv?Q{g#oRzkO%%^F9l=3vU@17zEZ_VfB7}Wuxt;X{WMXoi-Tp zY<+sF?yAd*bMK@CSKLyM)hLbA*VHUr%v}EVmT219Rm;BUW$c0IyvTiRs&;scxm>=M z>cY2nzuy?|uKupqG&OTYZIo}#t0(Kq?j1XJ?1I(aYexBXtLM$z|6Hr;!vS8wulJ7M z0tb4RZp1{-wN4kO&9^Q;w=MT}+Wx=aZg(W--r91qPsXw-f$@NFmR{M7ZKk4+=Y7ky z_5Z+_;Ka%;pwpnK9{#_gQcs+LVbY^K_xWq1gJe9`)#>cWVD4|@kZNL`5L?umzz8bT zPK3^S%5{*5!C?c#gw-aeMVnYbSx_N7bDB1&d^^bGu|^0h z2%3CmkKs$7k58bQ1#}?F89)@ML(dH^8dWj~wu)_9@$t5#{L+pXffy{mNf*RNl1-q~5acFUG4oOc&G zx8JD~vgEwBe12V)sHo_={WsRd?w<3(^GXSiY52cCpU=Ph5w$+;47a%6j>j2u`&vN* zJ{)2UDN_G(S@zRYQ$a&ptqF_{X`ItoG-6F7mix~y`|Y~uV$bbu zx!mU`|DUvC)~s2AO-ob%J)Uo0f6pxEhJe++>nbl*|L=oob>o;e>;0my2ctHnbWWao z?bwV<`M-7}3n+p?ad%qdQ0?z; zk#%+Z?(VC-{dIBBeD!>hg)BaE&*tCTlllGq{qjwZ#TRVNzP@XgYJPO*<)^2o$Nty+ z+JEU=-2IiCHW^(nfA!(vVNiM1`YVA|bPYSd+>T|g>-SGfDtvN6kcAu6XJ%0N%yQbE zf12A*P*&TuYnRjOt4Ed#)=9nHo_>Cw0plc-%=yCVemlOuGSRo3ZJ699tn4{4Ab9b& z%SE0u!;`1=Byg_3KXr-!?aX?Zfsa|ZA*p|pl*}kYD!#m!`1Hw>8wU zAJd3cSA*`anKVhr+^XREy4Y>S&(B@h_UevY3e-Oi8)`l$n3|d0>Jrs<`W*fB%aR2Lj-GBEFE1}YJniLQ>HIy8Ul_q@L|{#bMftlqw%_j*o8{gznQdRculC2o_HT!{ z^&>nzIT7Z%`nD|ho4bjboo~mj)$IIo0+o=MW#I-laZd;wT(x?2v2XMHz2E2U{rzrt zA}1tq3ak;S_>pNv(8ch~f zZkSi~O4IzIM*k^Bs0S}K{1>#Gh%mhJ&yS6<`|IwO=B!`4w)8zCEQ}^@+h$h%|L^y= zPp8M11sm`Aa>@JKwdnlF;$mZjrxexIk6&9KpYQDK{BG|*a4G!jh4LbP4l!`uw)D{E z^LEycE?Vr}yZ74}fJr ze&6uCtE=n6Z%N}ciak|Nn2hZp@AgcK?1PSARSz z4jLPCk%xuh)N|+j%)1KS-`krflIZV$enwqfX68!WxIH)0&dz$8*89DFo}AI%nx946 z*DY9ZVArl)i{zAHg^0nsrltSFq|I_R)c<`Q|LxW4^}AA|x8-cizP_&aYj3|B6Z7=x({CRhI&ZJ}{q3!CpCGINnIUj6X!C-W<*Qbm z0wsyr@v}3Mg*~vM z>Oc#}wc_)(&*#}{*c`kxh4-;xSHS$urLV)ROI}Q(u=Z{mu}s9^{aEDTKcJwgO6@a@VGfKq>Z5|b-I3h*?GAun>kb?ghcmV|FqHV z?{YpFi-g%`xn0r5s*PMh&7wPH1DaiV#TXcTIubZdudcj5)lE>&zOKece)8pe_wq_h zOBa5B^<|y=*N$n^#7>_*%X>TQ?_niQB*(72KPhXX&Ba?AliQ^yUcZ0eUTuE)-(RKb zA*-B1&t5**%nq7W%$w`RzUuR?XU~G(PIHrZcW0;Zmi1QK*>CbeVqYy}gNl}X-H(OU zYoiwW+xmw*4OPxuDVnUItbcr+EH*c6PRSm3+1}s15?n zMw@g6OfKi+ObYm~eKl<5 zw^eJ_ocX%9>T$1m&h2fvh=eJ6w&mT|=1U>$t*xytau5d}WCB|XsX0Mq5;R9LeX#%k z**@8-*cy_{QsyRP9`ZlCj1QJ|W?is}s5kQTUKq7nH+tKRt=ZQRd7A50vuXLenANLR75TP4dUA5|w|~Fi3nPk)FEeCp??hIB z>Q(#CXN(a(Y2ALm?zZ0?3qiFA_dc10Y}`=KcuhS$UH`WB`aMaPm-!YqO`SaX@x5$I zxO*0$YvT z@FcxUPZr=MzltiSbFR!+>u*kqnd}3P0)jvKge0y*2ZQm*>&kJuMwPr#LYxbg9 z9Hy!*`-S&rEee^fI&0RfJ4cqwy{fTKKQ~A4I0vkp=vkfMn6C!OhC9kd+j4F`a(UjZzpo(k-kwUc+*?}=|Hho%y)1Hn60X)P&sf=`tyz;yxE_6cd>l~>gsyvbety2FsOZA)#%X6Z zynC02)Cl?V@^bFkS*GjyCkLp1dB6Yvy|nZ5d=X{k1&u=|IIX_MAr-Fm|31%8JkKVQ zes0dj@_Uu-FJL)t<$|3{=GFhJG{5=cP%HP_$Nl!(#N%r&>c#AEKp1#2Is40nr+cfv z-#R&2eP%Ehv`9iJUzg1TO<@_&)PNP3e*a$Y|9AS=@856te!r)D3RZwvff|2rXXo$R zxO`sKsc&y?3Y$9qdb#Ivy6E$$ocq(XewT*(-qdLkA;xlev3yCOB4!@H8 z=4M5v%fow@ulg4V>M$_O$T)b(n0>l#^fMOk%f>F=6XM$1<##t(*ngk%yE-AdG~@2t zWqII1&absgLq)dUy5;J+t*mgOt(@G=p52+DD|654Z|_#!?v(l9q5va!YHbngY37Mi z?*EFGPLq!Ho2A71`p!n_ZD|)RcVGVZWTI>RznJISUhcEsl&1B*dvn>B1E!BU6BrpB zmT^tf{w{C7?e+EbyFJ~rv$J3RvGWspAil;!Fj)BEtk&l_85)10Y~Dzh{00r>bzW-| zeg5{=Q)?EHgG>w!K0=@d3#?_jt^9uN^|-2+s@1R8Zoi}9JVWB3mfg)K*QU?UmE7pp zRGRTV)cR+2bL`%d+os~H&WGiHS8nP8JAxz3&#!N7{Qi4wZS%f7ym-G?+WeNge67nD zb%zaETGly7-(3Fox<8yrcKND3XJxyiz+)~(9veVaarK7>jyE>lyBAmeY-W1LKMU@# z;KQ}irr&#Bzpyj0kSW~{8ZZ7l-6}h~?vushQ=hlr*%&gLl|!sye#PQxkJo-)T({W% zN%#&uPJ6MKE!Eq9bLc2UI95ELTmI(6MCHWOeDZd0X7MKeVey`O+jLjK)jdw;T^oKm z?e;!(M(zvWjeq-%4&GXId)?*T+iw0kJ2|lBRrA-gO`E@cIH=(0x`Dyzi1b#O{JHZF zHYS=cs{H)Q=z416-RVcSS*}0xRhZRbgHXZCORCr3XWiP8xh>%!)9(k({BJ;go>{Y` z7TNbTsjln_%gC;Lez*PG-FV69moL@-K9X8rdTZK#7VoXG(VtGeO{-OBblt#ksM9#h z@|~4DuW9++U)thUcYZH=Y<~Cm?cBXb#0AzUl$4j>1}y>m{_bwsrza-`ecQmbU+{DG z*bAkrRImS<&HMfC?^T=BYwceD7t#l{Jq|i;U^wXIxZxC6^qpU7{u}#nq@4xU$&af2uHIIbrzaQM?DzD?PLCDC!Ac37v zreOWm?^(zDWI-cAuirm^co3AYCge6fmEZctO;As-NSR$O5^1ijt1;NSc zpww%A>@Bu>u2Z3AB40oqAD$B$fw}h?^yScOYIcTb1=irse z5OW#|1=fhi*A(7S7tPJjFJCMczAh&7`np)|=<63QB%GeEzddquTBM_6<7_7-DaY;3 z>p*4OkBP@uq&5_auPJ?ftu?JkUVq=OSK8J^PdY$7oviF^=hN-&?YXE!>boPKf@+_l z)&#|fh8V*v$pj~s*Pu!RRLsRyJ{7J0dNus;r5WNa+F>o6VZp(ZXGh+1UM&6m%uM5? z{R?gfUQmuWB0E9bO_$lHBVpxA-7u;AgR9o9+qP%Vo(sR-`{g42{Q9cn7R^Uj+IhTR z{`S|`*JF>DarWQq_jZ&}jF>ug>a_Xu<*U|P?o{!st*uS`&3aca)MRpPX6DNk!OO(H zy!??jb54h~=IzT9n^T3A!e?KXdA{$zHfY@B^sQUB-u(T3zr6q0#Vb7ed%sND`}JD% zwL5p_7@9^vN5lgsJMoGYvS+Q6*vey|*raM0xxa2NFE8)T@4t3~7CF9H+O1ALJwWJq8d)z&{6EaH{Sgl{ZG6+0so@!nGj%RK7^KS}} z5VUn>UGQmJt?lnExj&cP>GC(bd3fK%t>>DV4{s|AoR}LIoAxw4ItN;OyfOSZJE!Pq zEq|nL#QQy;`(_&*Jpb@;d+g?i72MN)m)^edVp=tHEN9Yz%FoYQ?;XF@*EFwb-i~y& z!_NJ4EpnryAI2SDwD8%w?&njvW#83a{5bpF-?!W1yjb2`6KD1?)JIc#6wea z-_`z&f5dv{JHuqR4KC&7+h<3{3YX1;j1NqBC|Lf;E=q6u_T3gMU#@=?)BSt(vqQUO zAO7@>OzghB?xgUVPwGvf(WSF}T7Szad}h_Y{H#amu<~K$cfqqy%v$kF+kY05_WAo< zxBa$8tz%og&p2m4Th@jh?-`9^H{{*fk+^>Ew^`L|Bkv@uDjZgRcf>Zf!nb9**L;r9 zyZ4)xsyW&t&xq}Ke3z{8ru7|5%k^H-Dy?5^4PoLLK^HOFGKd-%I-MPBz3)Tt0 zw}~bUU*(3fy7G(fwp`Yq@>?!p5=YpcWsb8rPJZaHE@XdK{jSqKxp%*O`}w$4P4PxgmtMLQq#m(% z@7_D#HSc`CI(;2`-(K~kTi?#iG!Bc8_xI-Z@jG~HS84Vk7LhMU=I-!M+j(pI*FC>M z%b#|#->NoMnyw#T_UOxphlgi8*I~4%`?F)}lqm)Gmsi|Z7p^`U{iyWYo0}^>u^MEu zc>6Z^+yC8C`|IWMZCO{fqPOMD)Q#G5LQF44!pp(Y|4!%clxf;W|2n?+=nOKR%Jui* z!-q4T-@SJ2nahJ~YoqUc*Sz=L+4*o|a{c#rvEuI+EmE>Bdo#m()kmfoB~4c^Tu8{i zwq|2^T;_x~c6-h3lmq?co>vr`?+3v*$hc zCw`W`y|Yrb`hDMf?e+Ru+%MZ%C;M%%X=`hXss8@v=H|Dp;&B_6dQZQ#)O&izACa>k z>i$2Sqirx{qO4`nk-xgy+TB(EUj1K?>o?Cv@|AVrqa&P;<~iM||GTo_)Nxzkr&^o7 z1=QAv{H`d{R@riE-L`Gh{;2tyZtqOGf91-PYvm;+JHEet`}W=6v$M@LeG-berpcGO z-Pu{Z-1hgI&EKBQ&KLTtIpg8q$`_vVMM|H2<@yuBy7wLX+Ux869)6ws;{AK|cb>=o z{+PH4uPc0;7j4>f>FT^AuNNP!o&RIs|D;3eOffPe?f@_*d_|2O{k)9LXY|3uDw*pql!?ju)~=!;V#r%#{GEhxBfZm#w7 ztY9HgzazCNQ5MyYr}S5=otk>-?Ki*cXO=`c9u3{vq^ql|ms#>)v3q~agVY%2faT5U_S_R`%ApvpBZ;$H&XJa{AaE462`SzwY;0yFVYCuZw%v zZW8+H-Eea5L)Wrxec>0lQ%nB+Y}oUv`jOuq_2!t$!v3D+)3?O@T<|MuW&ElYt5+Al zHjx+pdG>|7pqg;?-tW&2OiJ*b2FjTR({v(}&f9*U1DaEd=X@2in#a|A%XEd^+*PLi z8C&|Tey?f^mYmnNc6C_m4&m=7g{sdUb*VEp+?c=XqMswfP4x(yH#3{;0v*>Mx*K2p z=&#V(FY(`w%)Q|*ebBSc_}|9)|LQ+$awz;}@m|a>ta@T!)4luZhhFErUGEuq{Jzh7 zVaGe2wPxoW-QF-7xol|Q(T{SJzp3uDRsB`Ps1DVidr~S)Cp!^qOsu$z@-lnO&8`)X71=g&2A?$c(^KSV7 zHPH`8?5vacImA+SCZu}L=Xf-4@81TawGHauZVFaAY*1sZ3OVuV>FL~SYa+t}0uo|l zV;A4zJ9uiJo!}8$>)(v2NsRt)HY zo{*XjGI;LahA%b8J3T&fRV2-q-N??O{WvoVW1+yoQ|IgikIZ$FJE-)HLrfvUZq@45 zy88P1U;bTO>^^PsDtmhisqwPZD?eXfGH#Z!4cDwUoz@%GzulCo)?aDLDzK(!>Bfy0 zK`Rz!-CwnQxq8TE6X>kc(nF7r_uu`OQt|Ta2aSwP+V76cyOEy##@gE2IB$ZeLWFSN zlU2KS&*srTD=Ek7`|T*$4?TOIXvO}mXFND7$am5##(6yYdqJ{g5Fd8`{rmfSZbnAO zA(4Yj_P>^2us2tO$8#<=afrDrcy(vvG;N_y7bV}b zOY&4th&HhXKJm(ZmLjAg)al~oy6#H3xPZ=wg^F8J1i&JynOgD=8x)v)|GBX_DoylQ z5;AES7ZVG&Qb6=i7dx{?7o~|Flg$mStwHU6(83(hA}BB$vNa3Ws$Yc&0Vm-`w4OUDp46seGbxw#uHDxPVcKX2-^X?+?`_I{R>k}C3_8h&;{pZlB5 z#@{-*D(5c0R{Qa&_`5sid3RpO&60j^-7T!{wGmE>LX`!$cZg}N{UaJw{6( zAMf9tyDjIY(5V?-US2srKRwkm&dSZ@wU&QtUHhvfdTZ8H>t#k4_4og|#Kz9<{Crc@ z*DTOF?9)@e&Yak~$H-@IUPi`-+2;AXuJ8Z%OMBz_OE=WDo~UlF+M9k}PFqKZ$1{J= z`#V>zi0m@cdJ}rWP5Vi5thzm@*?n8POl!s7L)Q1cept8s+RJ+v3ctoRefa%;|L*Jd zf4>ATIIsRK*!WvR!aW}-BEW!bwsFYmoR`S#SEFTY-0U7dILU^Bb( z%$5JDSbv^_>;C4c#-Kx8Sr)GTFw{M?aiQcbN%`e>-t;Oq)y}HWt z_v3N-vNtz2Zg?#C`%U-W@DuLd6VHYSMPD^r5vFpl{Mz@+*`7-#D7b(f{Qq#}`T6$p zyUMJ}qN8W8e%VoOt2Dbt^!#FJU%CDm&Lyoj)sB_57;JkWaHFJ&Nr=;q<@qa@UPX^Sr=cudc`FEDe3yUSiQqn)_dl#`$z-s5!>`|rFRw2!QY&2%Hg%_c@~)z%UDdLY4EOg| zU;kPgptd@Gch;pK_n=g-lOmsP9s7NBMqgmXk-AUE>;e_n@2LJ;&?jg6iYxN#`p)lj zLwCI1n)T|@SLUwLxqn_5Z{5pP(Ye(w{*u7^Di+-*%{6u#=g$IF#6}FJ>Y9^hm}XBq zy(UCqwSH4a_=#%C6;_K@UEX3Ow0@`e%&Be$Mb*w$( z$@D06rF!s*)%GptJdb}cvP+sjccXvEiPdWFcfa4q-TURz3VmL+4_3DBzt1`O#@@<1 zIZ5@M#l}a1udOOG0-CMDUjOp$2tEDcs@}0(C?UlpVLat$-n~6D9R#Ww7+AOywq#Un zxh^;@zUPP>1H(Zk59U?3!l&-BTAlXjg<}#wTH$<9#6|hK$;+p`(&ooXtr_Hj^*s@mvuc`b@9!ar%#_2ZvV``ns1lCj!EM3dAZYguebgvx?g->INo7H z!lZ?j2~!j^7oFOuR&;OH#Rcp<+3%M7)VzD(5-a}bbnW?C{~Az~I_|&mg{7jG>9g95 zE1P$U>BYQI`+oWJ4jU7}1!`NbJgK^0_j~PZPaC7=?sA_0Wsctks~k3|seVz@xU%M? z6MySfp9{f%cL~IU`iYOYImCRF_B?NV85wiv^aK;>k28(a-+-nlUbk|I+WI+3_8aN{ zJ@x0)Y5luB$1WOe%{cBcMbPcGd$I0I@ufzwxvQVvJ9DzCXz#b+$%jJr=^dH=d*1JP zV2^iLm%rQ5<1%y7{skZ9A{WLNRjtpee!p;a+|`}m3oifq^=rks56(P>thwe>3r({?>}~3xZ8|$Ca0s?kufhn|E*ZDciVZ zVy`XB9KQ!nZv1YLSpR9B=(2X%|G!?Z5B`PX%P-nC8IFsys`u`z{JboBx!;Pa`0#M^ zWs(cSlMDX+shs{(^JUG~CDjX`&AwmvJJ%~7DabvKyuH0WR;~E$t*tGrXYcMVk6ku- z`t;|k&J`CI=YD*2RL@!JbWeb+|5eUV|K*^q%WrRO)xHv*v?}bWdmOSkEml*rQqF#S zd|X(}#OeIJ=zTRiPtUlvE>?P#pZw{bfE6ztWJAB+u}i#Sc$UhRLprpD&fRwoW<*Y;URJ zzJ>(HV}`ff+k9B0Sf7NxECw5Ry%iKmpymZ=G!nGT2EMfjv|NV)G8qY4=g0s{>JV`x n<)E=#1{AHh+b1BKB#-`QcJtouakt8S5{U2V>gTe~DWM4fuyQUg diff --git a/benchmark/clang_e_heavy_payload.png b/benchmark/clang_e_heavy_payload.png new file mode 100644 index 0000000000000000000000000000000000000000..d2022ffd3c890dbfd002ef3336cabb12266c9436 GIT binary patch literal 11877 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 QFfcH9y85}Sb4q9e040MUH~;_u diff --git a/benchmark/clang_e_heavy_payload_50.png b/benchmark/clang_e_heavy_payload_50.png deleted file mode 100644 index 339b115b1515592cfb9ffe792155670f817ae86c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16027 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 diff --git a/benchmark/clang_e_heavy_payload_98.png b/benchmark/clang_e_heavy_payload_98.png deleted file mode 100644 index eab2e1be2b2884cc8b548b3ae3f4564d45f831fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16655 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 S>%P^2?DKT>b6Mw<&;$UEzkW~v diff --git a/benchmark/clang_e_int.png b/benchmark/clang_e_int.png new file mode 100644 index 0000000000000000000000000000000000000000..71dd85727aec0a529bf4a9354f0f481d2fe432bd GIT binary patch literal 11581 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 literal 0 HcmV?d00001 diff --git a/benchmark/clang_e_system_error.png b/benchmark/clang_e_system_error.png new file mode 100644 index 0000000000000000000000000000000000000000..fa7598eac972d7018d978147d609ef1fc85f7813 GIT binary patch literal 12383 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 RGB7YOc)I$ztaD0e0svx3yO{t0 literal 0 HcmV?d00001 diff --git a/benchmark/clang_e_system_error_2.png b/benchmark/clang_e_system_error_2.png deleted file mode 100644 index 209248deedb027973f6cfbffac51a679d6e4c167..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16242 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 diff --git a/benchmark/clang_e_system_error_50.png b/benchmark/clang_e_system_error_50.png deleted file mode 100644 index 0a29ae5b031744bc089d97dafa6c15b8ecc21ee7..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15819 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

52u_jgqN%e>Zuoos=UBT&}?AJPR zHK+%AOVeQkIJ~fU7Dq7-G-zSi_5OGAQU1Oo#{7}u36S9WBcoTNH!`gHN1@1C!X z+S>Jkxv4dQkwGEi<%d(+>m%IVk58z4`}XaX1V)(nr(dtv-#$56z5UGP@8wDNvv0YW&g z=A-NDw{KN1L49`3V`JIdsOvjr84fyaU|NHiRa+0eB9MCUxW=3~d) zW}9YDySuCOw47~KignqW4PReh-<{gr+-z3Zz6j8D+!YFg*6T~?>hp6%7i&db|2(>NVf z>*|#&Pu{ElUt9h2>GZo7c=Y#vnY8!owdk<;czZSVh=70xSqoe$D|hO~@3YzDV;TdR z35FT*dprV$wNLoUo;QrV0$H#iVU38c4{dLmwQBhIRnzd`s*6Qo(Zk?(f?l$fF z_wTzOzkc^lZd2@yua{iU&Tw^g^${*P6>{*=Ed#^U<4cTK1azvu-Ar%aE46&}>eKTo zpUn*Xd-vM4ub4pHKS?7l>|nH13NgbS-;0 z3$_FtFR^7@v7EEn#KdHWl$V{$01sXXc}MXMR6u z=D#z6S5#DV@u%vnrYkq1-TUQaxB2+9uL|>?`&Kov>QKS&Z*M0)eRW4J%@&f*B*G60 z$;!%3JooH)zr6gl6pKkQyUWg+K6mxc`X;<}>(*^4Cnufw5jJ=3+`N5#ncv>rocR9Z zHD*wynsA5JySe67>UnYfxSpE%X1TK_>oGu6=%ojr&)aVgT^;6{wf0KO_rKro-|mq# z?yysc0CfzSrt(!q8B|p;*UGN#;vi;G_TeilDm%L>nczw5q;EQ~vJCc6ld+y&OCFId0+{I_>^r3KgK-rjce z+S=%~+qX}D0WVx8%$}VsU-x6-?>UnvC(p0>)LDIVvmGS8r7h2T)*|GQkzu!oH+NGLYv5W)E2 z+wJ_@8aa>#I+`i%<6Vz3gp1!)e`r9e(^*5$y2G2?GoojWq_IeH6c`m+9ugbS( zU)Qs)`l7+y&jc;nl^cI0UcG+Z{Z}$0EGE>p=iS}JZ};QCzt{W!osO$`$ol>JVSf9P zO{~x$36t9M{a*F9oSR11eKbOvr%s>lu3iqwf-Ksx^XmWoOg!5J%4I*;;MONxT;y8z z8J`R${|yxXdSXa3!_Sm}$=`G0@9W@P@&IvLx<%@Jnw>({TG z_xJX`+kEWMt!=rpbMNlDT2)=$3C_Vj0c`B@yGwQ&J@5IwyWG2SMXKYg?AvSCEYURb zJhtUubM;*o34t{!Po6#7HSxBqpI=|?r<3YtxwlNdOM=pULer-kYaWK}w*41BQ%WhY zbK23{cjaHNi!QnM$vj4JTSG#tBXifb?b~_8PC%s?J6?Py$T&^vD0mUHb3H8nB){_(i~?w(`E+(6|&#H9)meXt(Wg9FJ-TpVE% zSN?l#4PCWYOHZ$?cD>1u7t?g3A?1=n#I-v&o?g?|S)n?kAz`Ugaq;G@+qUgGkCFur z7RlTR&Gb&6x2exeu8xU?8{{E|Ah9*=v9;UMgCm!$5B)BG|8tsnTb3J(!-jtkRxY3C zWd%+qDbo|S!h0-L-~Yb3csp+)UG?Vmq=DhO|5$j+;LCi(i!o09qS>waZQOGs>JYh$ba{dPMf_%+prp4sjH_v>|7XlUy9_xH=+tFwU8vctMdQ?)PIrff}!-BECG z?~BN-VLyNV{B|pQz2(JU-)`qaOjQWaJT3ZCZd23-7jN%w+o~@oYW4K>w=Y_xRQ>0N z;YDyO=ZRMCPNlofVcgT6WSyI1S@!YK(G%Y@FE5L9cV|aaaqap1`n=U)Yl{w>a+DVR z|M&ZS?y(+8m-;Cy*Jf>%pDuoTlV$6+(zB}BSubR^odc!v)}L1=?Pd`;$aEqDYRNpM zH}Brb8TsEgm3QmEH?J<*@cWkBh^Un5=S*+S`kDUrcm6s4==J-y-GvP(tTU)DSU+1q zDS|;#H+)I;iL8UaZr}fx*4o8X2_&*ujIKD)d8eUzhP<7bH=_}fcMy%&F*eZS^&udG$ciD&2M z=Yxi$exkOxzK4JYJlk{S%l7&#Tm5t_sQGKNmi6xF>X=yZsQ1xjh*}S*)z9&=H}+N z&&)J#&lNA*>*Ma*e6VNLvtP|Eum5j(w`px`#W^qpb@b-ZGf@ zZgX;wBvYhL#MiH1AKT5yxFMy(88Sm^&5N%_Guxuy>J@)7jgVUR@U}h6s<)2)wr^f- zww--SsdnwI|3BuL@4oQ$I@7x+j2_@%`~Ua;|F>CA_p0CT?Ge=3yG~tQUHwz6zx26T zrhnv3-c-%(`<0LzQFL(HUq$~cr9E{|{TF8CzTEg;Y~JQYlfS|kK1)A8Pxhx=zAXcn zl)~M~?--ByZm>yK3}O&55itQ-taVW6)tkD{&wQ^xSthmg{@#@Qy^DCc8F5-t+uYQ-gX)53QJ)irkKNd}BX6N6P z<}6`*?DN_02zk>}F*}Qne%(FGD7EYCTXr^Jg2ioKz0y5Q7HRV_WCHP_>+&#qd%`mO;ls6{;c`i&be?)h@0 zR2-SRqhH1TiRjH|Q&r1;{+WB?%J&R~w_ibdZ)4Naf8ndv2E7dh4Ixy2Jtm!h16=<} z$`z`=Q$F=+yV2i`+LgvI?s+AzlEixHeT7b3U`@Pwj_jxhTfcG zS^Q@2_j{Ym@7I=}V1c+>ELGK4FYjd5@zsG7pU?oOdR=|}^XKMRCOcG?Ca}#d!Fz?9HX|?JSz9H{G%!6 zuczcj#U*WD{l8|%vaL&x?~ATD*X4IjJqF}wVYdx&^?yr2orgD5!{auF$JdrZy~F%+ zUI{-(nADXkSB}hW;OXBXTn^4*2fZdA@0Y)QcD8x!@o%S2d3~1!M>6{*+m~_zYfLh; zvNnCcUw?nEl)JO>o-dcYzg>&YkF2e=y{LXz`P~s&Xr@Yhb!FwYy1!M@5P_csMo^Mv(dJzjv-8ofSl^jON1vUWn=N1Sp;3C%LQtjxn_-s}5|g)0 zceP&M&n?xTSwBf%vORDEOa6kGslF;^ZS1z=vd#0R*j0U5@%P{F_wTMI?63D4`E1!B5=I^|pclPYrZ@2UJTW0PmeLW2{uE_^l zHsK*vd%fzF*~0xtj~-p}TixUP>S^!1JoBQXqt|ZOaA9rvw>Od3EZbVP83m>h|M;BhANx8u`rqmN?J`x{Ue@kIeeH%T zvX9=~-Cg$PhGBT{q>O-6me(gQ?R^r~GBsL1iIxYp*EhM9zukD@#lKTenu7iP`3wCG-@V_zv*6NkTj8f#QF)==iz4JK z3J!?A=ycdH&*tuYt1`5gj9XdJt;ndi5 zWq)Nt4$QGGKNos)b(CG$)V&jUG>k)@Jy*Ba&@JSb|8A_l-sjhj^i?r`tB-#?vGMEo z@4IISbFOJy{POKv*A2&3JTselXVv_$fDK>F1Z(#fKj&-Z^wBx!b;ZO(_~DbYACB}& zo8Jju3|dz5`|9fO$JZvTShjS{nw}l@iFdB@XKVtw{gwRx{E60jqA#k>uVV3D(eJ;( zz#8Q_`yq6`z&P>oH)gp zd(+a}p3heb`MT$qhypD;c5{}lgaNsrpm+<-7Sx@yDHIi}8e{CPx@fGH0zg0OKd_uUoAxA*Rl+o_*m&@N?E}tJ2 z7dKBgYRieD;^N$UdnzY#s>QdNKc2kxNUhAHeUE0>T(W7k*~or^?O;&wkyW9q!R4Z6 z@Uk20_y2n}OA}HOCi%bVv{i`k?>HtGDBmw>oOXj-e@{Yu{ok#zJBwORK#G{mr1c98 zzx?Vq3J5Qw@Jf*gil_i^lTTEvIsDfVRH}}=CTNf>? zrK;Wa?|cysNVOMS{if6UZ-bHRx=o=QHu-{#Wzw%+cB*bu*iGT@Z{D#_@hqC!+cdSe zh@0b@z?Uxxn>bf&n%@!n?TBslZ^qPFF^b!7DsFE`a1`SXGYbW2dBZ-Xv#9k>TKgTQ zCe}!;h?`-l{&zNSmJe9--KOv86pwWiZoioj?XW?Cn^jwS^_$M$=^SEBuHbkS&{+j` zjmDEs+a^{Hv4GV17el`tnd>BXQ0W_o7-#@MQm%0M1odx6R>}0+S(HY%c0R2>E!F%s~flH z#xno;d7zo4Z{NPDNAVwY+R$O$YO_)O8$+aS1ZrOd)B;-@y?xnUxu(_x!E&xjkd>R_ zHoSWEO2^#X{L|i@J8!0)n=|uU706?EG@pRnccSW`mcIUWaL>WM>dT2`esi;GYil#t zwkIe?9GUAh?}l)7!y555mo5cG?<`7vQe9uaUwHYucki}b^Pavn`}(c=f6wdfKDxA- zm;5>%|IbLNQ1#tRNsuo#n|`}E`ILae1~nJnX)IcEzg}9pef#yVZ>uhK^1T1Q%(nVl zkB3iZ^|NDhZwUX+>8<^;r0!5dLaGQaFYmO;lZAiQeSa4_+cZ1u*6XE*54ZEbJ=n~y zY&7xVU(2_5b`~E=^15Se{_e=U8|m3^nkVO7U_5xrBIWO^J$3*7RF;cxNIuSYdtYsJ z%1*28?UDMiyLRn5@xjgF@Ztq0=Yis4{@RV-Cr1S{96S|~m7Se?a+2!Ak87>0t(8r^ zH>aQPtLfh!X9XHI&-HIJ-y|u=>RWac>dNfw>|?emtQ^;NDDQmr;)TLt>4!Z1O=`bE z(OqkHEUw5j=x;sa!C4``lcX5u@#Lo%+i=Z#(__6+{o75k-`lpCNlQp9FmT~z|o z&=#}u>>Qt_&d$zGP1&76_hTJ4C^X0|RBcX3N=i!dO1~6f*O1^SBK4=22cl@Mr!y;K z6Kmj#wKX>Jvkx3Oa^#3fp}JeTJ9sA%19;yLX!sdCZ^HndBVvHDL32T%(Mixc6c%o! zj0L;q*Zn$~c6L^(ar(I}ywYY7#l@SW%ii6w1g#92I(@qR$M-RNDlWeDu6Lhx>Xg^^ z_rmIa0@X?OEwjz@cRjW)c;JvSFV1^uW!HC)4cXWAw%hMz&s((2HHp6=;ULH6w6jvb z-)ugg^Zni3vJVd&!*86QZGK+#pU9^pat9YpQ2)ljA-2RLH+Svn3E$q_6rNfB?2M%O z`%h0#Pjrf#IfLt;W%08cOTDKny$%ZrxnX|4CON+D=Tgv`mZ<3HyMH!qG6HqlX78{2 zTa}%kFCTQ`{_gVgpgCC3dYE_b-YFgzxf8}D6uVei^5RC&YLu?7t~Sw6|0>wn*zQC> z4K-f!SMc|np4v@LamQDtf`*8!zx7I+@0$Kh%__a{%?-nH-;z4*@O3@WCywv-ll%Mc z-{0SN|B0^GjoxN)(67Yy&(}Xsr^nwZy;7EbeqQO;g_oE4ZqDET_uAh1dS~7X|2`>M z?XV$Xj%DSiCmUw*rdn0mFZ%bZC+}#NXkKip%d8foiTe9~9Ga#R`N+uR>b^CxyRW6X zteP6QtmMm!!0qQiTa_d)|NQ(s_v53Zdd68fIWk2yx4wa94fgD@+3ugZh+AB5%fEmB zPHfbP-gd@suGLec)W2yZitBlT=VxbSz4`X`_PfvP_y6;Hv)Sa^Nv_J1YwX_N*?F0Z zn_KzP>=$!hzj~!~-K}*m*UgC5nmw;Yo}8MhomYF*k9Dj59^qL2dfTl&na;njmUAA; z-~acS-T&YB|MPwQeWb4Fn4Ex)L^_|W)e|F@yO~FocFoKJZ4}#m@6Nh2zVp||?|(P# z?d|RQlV-kJuYaIl-afDT`@7y0A4^Niclm{dg?AnYzU>P*w&eZQt5+u`U!1%2g6v}Z zX$i+(Ww(L0Em;>mIWYkgE!}(dpCtQUJR2euebsD5n94=V*MGi53TdivY~=b`ab5FA z(LHW)J(qQJzumoZlo=m2an;FH_XAw6zapm(5~dWPJC* zMi%3+)GNClhq$e^cB{Q+lQe(s#_z3rW@UtUFYYe+a~@i<#%ieyDd=sF*#nO=*W?%luoQZHa;o7&YmKX&i8E`PTpcZ%mcyIQMB zhA;cxzh1w;EcDr~Y@SEiwtw!f%y(P8Y86-PiEdfzvK>6Z<&&fOZ=~nHnQR*Tb5`4> zOF`<*UA~)~?j7H`Z=YSFuGgN|OPcO3&R#09+J4Tu{VvJ3x8-uKcfa9e2T!sJ%n^I5 zwrUGpo$_RU%53ZMb*D>&L_h7i9Gtd@DY|tB*R=$Dg}c03$wBQ|p)=Wymt|jHxAXi( z)&g(u?$^H;_=J`3&bk!j9+c{}Qsh(A@%x5-M}jMk)IB<87pb^@$L~4|R#w(^6GH#b za(TYyQ0)BB;OQ&m1NOWYaoNA}Yv=**HD7;EYIC`+oTDfYkG~0wD=a-{9{KX}a%|dC zrpQ`BmqkwZ(ignySmk&5lt)eRbR%us#>G)QqTh0Ja}OJ-{p~Z_^1{wah@tdI*fSNz zkD;$tihO#-zcBfdUClA~H=B(?`Qhr5+V6MEC#vuLa%H-l+K0LGlILy?2%df|dP73v zZT~$LM|S(k*z1yksp+{R?!(4c8*U$QW-fbmH|=IYY={2Kc_scej0c-I z+m1B`wk>JYa-aR8Fnb=$-h_x``_xC(?8jg45{SQK`*Pk7rY2U&rgt~KuvOTyK4YJ8 zW%tf!XJyJtAJimio=r`E1G^@Tm|GpD~Z z64#4);bzh|b>-1p?wfiHu9-aZe|=V!yIigHWDT-Uj{N=oJ=SfJ zk7mS$AK_sy{QT~R=Dv^L^=kFGzo&gyuU?&;mbLNQL>=Xxt-bY*Ym96+=HIvbzIXff z>w6FT&;R;w1FC5)_2o162YY|vvkKk(y12S}cl5II2QPQ8x+9#L_3>V^c$u`RioTDXk4G~{aa`zeaQ#JPXhX1tk=8U)Am_x~|Ul=lp4 z+gb85XdU-Q)w{*99r_9p6Cz)9O4;tSxwz_Z>Gze#*IdnS20K4S9OV2I8UJ6WCVX`8 zXZ)#Ei=+#bc9B-3f@fgBQ!xw-$ZUubyo*_(%0ZKEIJHg){8Qil`s^OwS+5>|Z1!~Z Kb6Mw<&;$VVry<$^ diff --git a/benchmark/clang_e_system_error_98.png b/benchmark/clang_e_system_error_98.png deleted file mode 100644 index 68257e47b1abcd0f648f239eafa5b65d28d10271..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16432 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1U@YcfV_;x-^t5~n1B3l{PZ!6Kid%2z{wx={ zy6gM>|1bZs$JOuHH7E98!PhmfD`n5Ee(yN__;m|~#VwTq9St1~O*}@G0d9`ZG!>cK z1Qb*hCol@NO=vuG^7Fj+-`?%JI#+JhY@WGao^K9YTM`}`9&R6c^LOz1ds|=EOENGp zF!X5r?-l?t6e2(*hZu-#Vg->%?1ltJkO){D!iFeEW+N$QKw?9bFyPcWp=IAbyCwz$ z&lm6Ct8*}Li1nBs@0Z`cXOGS9ijPVM8BRED%f0>VpL_oOeRGTM#_le=xqN!Eiup&M=n-^Tu4K80??A}?&WcTxlaP+pEn;U+npP#pNW$^M_Pft(hyrgkNJVA#w z`~AJWX0^XcvNJLs%wc!fFsbvOzxBM`?=yaLtwba1-ruwR z{c`zy9eexxy3sod7J9EOFE2lSx9?hbTh6&TmhX0luZeiLP1d`(cysQZ9fq6kg~!*X zK0iNy`@w?;6K`MHHQPLYo1}5tj+{HErfR=E)+>E@+sgCvY$`8J(~Es|ZMJFlwA`DU zj=l|^aes})QM09b@%wB(S(>iSimR-wJhp%L-o1CX<=vI~sk=ISec683*7r@U+(B~Z z7cNxXzTSJ9PT}vh?{DucUS3*OmR3@?#EQ?l>`lS`^=sDT+(>_ZcJ_0lC9$!w3%5$-}`~BTt+1J(-vIf2>6Vr`)!X+&l zH`^??C_Hafi@Z&RKxFvst96;TZ>`g^tM!{7-YU1-S9H>?^|saDZnW`Azj@qmU)CDA zp?K9d*V9}6U5~GS`)l#b&%g5it~++@*p&S{w`{o*dg|7{J3EW-zV7Pk3TP62R{s6V zmmQ^l?EZZ^t-meru2ndrhTKXP@BM*Hi_h18zgxbo{{O!dA1{2*{{2$mnZ=bWS9W~2 z|MTJShVxnfetmuIoUa{PbNOd&+=db!)s|L5Xg`&TtPN?(Ts9rRKUV`gT~yT8@v z`GRwm`{)0Pzt-x$s#uPp$YDcB;IX*7+RBS{Tyt}CuhgV&`7(3CgCB2KObR~u*s}0Z z%k26eA0D2tnJ;=VH0^`eh42&n@^(G9mT8?=IMtQ0Z=ILz^K)~HKX1u*RN>IN6LOG_Pp#O$Tom2JsRl*#n{Jm7unE>_OrJa+HargaOcB^kzK@zun zyydZF&!)1jT(hRf#8UN@|H7ur;dksr|394`zf1epwr$%If4^Su@%Q`EUuS1>gw43W zx8h^c_O}(kCDfXiKGTo=dYr52iR10R&t~UevNAs;#~!M%@o?~pnaUcmiQA{@?0flV zUxIL=fGqp`z>cHoN==bRF`Zm`@8}}6Y~9x{UU+CkygcId|NO80ym1vj&P@9j`MW8B zQ6YlUy7k`v`unCoR~Q7gO1<$ecy?yyl-q%+%YJHc*uJV>$mD+3Q|rmPn4LyzCU|Yl zubau`E}F4xQt157iVXX$c{%ZuT=rWEAN2aV`)a$(?-k2dxg6J=neg)St@SC+`73@J z${vzq*YEzfeZ`{7`GLV1yKZ}l+%Kt*S2`Fpf6k51x>wUDO?+3^YMGuqz4yyc>zUu` zRkp9K3yFI6enFq;nv$fa-?ekD>P*tA{db^|dEMg8ZA}697akYX2@DT^ zK8vFy_0{jQD}u8=Xqn#Jw{r2`X)Be&j~DI@Yrk3H(Xl1wtovith)KNn+f{@Q1}*cO zA3k~Qtmlt>4?Y&0W^mk5L(WS4%96*kbM#_&O}V)3(NXie_szqaroO97Rnkzd{pYvr zul&i}--S$nEy^}FP4!#zXV)vK22j{#a!<3`lznrqb@`%azw5aAl_TUrZ%i_)y_a55 zv%e?h_p+|&(^u?$UcW9~#PsIN%gcE?|Mg8zSb5U%cIf3awWg=6x`AwO3O&nYj%-Xm zuCzaPYL`)Hr=0Pmtmu!AX1{wct$om|e7}+4l!X-lZKiRf7K=o9@Qeo}6zhB-F z>;O3-@I~>fet~ZP)9FePUTa@ZG~QQSvZr=u+1sc~xn5ycQY7CrKh0m+SFXMF{qlu8 zrz<$8ooCYA{rGpo66FXd*8MH6hZSw~Udpg9^n3LyFLlMA*s7U%+JT^Kk*pf=@?E%E zlhLK;?^AC7_t_@9o`2e}@XVQ;l0LF%-;G$gGeBHwqwLpEJI!dZH;cQ#uK5u?;q~j+ zi?s~yhKjxUK4D$PkKLD&tfgO;K8s&2QcwWxpxzJJYLlQ}o%=*14Qgxz;y4D;60?6*hG`Djj5EVBtPED?y`r>9a2PemU2(-weNbF^hU{#~}ae7V8_7pMMZmxRS?f|EZ8hJ&>UPnkAN z?ECJJ4XYc%pGTIK^}pRbQTNW?>g%RUpFV${ZZbjBVcWvK_pi8@9>00PhJ#S^5Y+5M zYE7cHEK^ylB;IA%ag=V^R{!@`sdeS2C8DCDsatBcTzp)#>Fv(ugUN=sj>|GIBpl+r zw%EP@&7-5;Wq*DYT9>|>61%s`^i|@rx}92qy8DZsdL3$?>*sQCSN;Eevesp1T=d8Ly~BUx83U#?!nH_xv2R^HuRqFZCm$NqWTZ-3{zM~Sw! z_S*gX?Kkb&w(XkkWQOw6Qr}lh3ip08GB8A{MKm`zulp3XP`C2Mn>SlNKR>^_r+0$K z%f`J?>%2DX-D|t)Uy9(Gwl+5F@^>-EP8V-wlJz_|N#dos_mVBLoNxD5e^)x~?d?6c zA#7^K|)g}u3EXWP;^$nHMgmA zUCu1_(wSJmq8*hRJaxe{P3?tm`FMGEzB#j=?}k%4Wjl@3tJc2fKju^T<^J-gx8yq; zzO7%g=FG2Ozm#6T-kS7abCXciU$?#db@T6^cPZ@sYn!;w+GEjQ0U^oSu;cN^9U~VR zG>LxOQSrt0*7Jn2fWqtL)mzr?E`RTK@BW_3%Us;tce7I^{{CE&8@r?6;NEK=Gjel% zf9&l%XDsi$H+-AVe(QUCHXK*_W_<8{|8|?mJHm72PyS11U`UW*(eB_%3GJJte&1zr z<-uhVfw8e~H*v0H@t!(wR_T<|4>R>SyNrZa8SLG%b?erhr;db+b=ryVu1&qB!ZL}) zbiS-@l}TRfs@#>ALXR%>yg4Z$&H1+9w1r)J zg>!?Sx7O|d?|Z9!{=rKdgV?+ykGn*M`7io>=6FEi)qR=2KR#=<727z!Q*_OPPX>kk z<#j5*=QA=i6pHAC_WfHG!CI;m!nwl8Hze^_R~YMFt!oKkPM4OQY10x6l{#fpVfpd? z%s0gc-~K*zGXHS;?Idl()E7yq9_vm0@0-qQ61}rMAgST;)Pa8BFy@}f~^yS=-r>A~9Fg^$~!<0Exz=d&1p zJEY*T>GPTYY`N-TZB3sK$#p+Sf5aJ9P&s4A@pv=*vfAbwlWI1jA`>3CjBwr}QDub=_)-wdx z>TNULy6)TSSFd7PSJ(2TCAa)~dt@?4ZF_#1WcI;J-&cJ)@4ONg?VEKP&5wSk z{5;d~O|u8=z90L7f61QO^P;-u+S&B3rrQ^OE?(nnaQX34_eIMrURJz_h}~V58}Wa6 z%JayGgQuQEED>5`P}r{?0ZZN9t-G~0CA3Fyh6QMB@d>{&E2wl%Z|54g;kfWZ(`)r+%Y^Yn+S}v!lAsadarcTz% z5dF34!XJ_K4E=9=);_b(4W2r07He~@=a)Fq=6ty?D!*fL`i&KwUZRs`NeicX{`s~=x7My~!4)4C zZ^O@r6*QPv>$NdEFO|K&C;Mu1`1&~44ab_B+4*lR zbZ&nn_s6pMSwv>$%F^=k+kLXuIj5)TO0H)YSh79+K-hVEc~$paPHQyw3ePOdUsG^e z{?1#jy}S$!Clw<2&d6XO$@==lMCEPS z*Y%?JR&5Op2~mi+*){8nm~K=`@N&Pcs@~Hge0_Uo$45qHva+)NpRD`hZ7KV@_3QOt zeNMd2{9()1vfG~`)7Shcadxs?wQ9%fX)p7a-DY5z(bKfG;$zb4RjW1yFZa87tXEoa zO^)lg=-Ak|EgtNzyY=^N`1h|)TVKCCcaPlJ%Z;yJb>*$&+#R>f#MCshu+Z=_%ls?# z3pQ`QEPHwH?R7W$SD#w*H__jvFYo@ox7V_Bb4y?U+47A)dh>=0Z0v1sZf(uZ%x&)M z>^$ke%2{nu0_*bB)6-n1t-k89)+Nec>Fdq(`L3^SSIm#yUuWAiRrksB=h4p2&WFxS zVbSto(=M}RxLC3Itf*b-b@>SQX#YEJg1v*6&#r&w5qk{m70ETAk(_P0x0T+9uZc)} zety1s^VHlI2~(y{Ju159*fF>7w=UnglVhBIPA2YVYYe}G%$-Wzyu^~6c;67mZ%=zJ z>se2IX~w{yHaj76rq#CNX)9~Ag_@?OuFwttwpz`pwCuWU<0-qB4l6%b1qM#sZC&vD z+uOivYfP5fFF1LPnWJd;zPnobX1iCuiCL`Oab@CPzvTAldslBh{}uN3W{l+5o$mi< z{r`N7>$&?Z*?(f6`|Jz-xVmR4xeNXwn8@lH2-9k$iUas1IdtYos#?j?c zL3zv!35z(w-Yf}QSn>J%THCe03?+WT`$^<~y3eg;s#JX~2b zyuPwfjU8N2IIMFES_jg`!p*Q#DsiXN1_qFcPqJE`avfv>6(SQ>3r^Dp6%GfP9M-u- zU@C6l^qrx8zW>-1ACR2KbasBZ8~OYHrm^$Mcv#N0sk~HGRmCCI#0u&Ks4U*I$7V{* z&y@=oDn2!1XJgBGe{U}+=gl_Do%Q#_Vg76P?#X4uwWhZsXsYXT!fljxJ@ z^Xs>Tt`57oxBB~<&6_WOdvi1S^fcYg2M;>3aDyD|u;G&Ens@K=et)^_KR2ebt*tHR z-=CjlZ*Q5dUcY{O<>zOv(>#}{gg*Lw-X1jUY%XhCb>-~kbTR$7H`CTeZ`Yf|xq9{L z&HDTQTsj-SyKL>&ZQFMJ?CtF}D}NVrdu#Uevoj12gN7=v-QAGbT>I^2dRRb!KxFux zJ(ZVF-v9FQa_;GAy4P;s?gn-9Im8%JrYBszawVd!?%#%=lcp=X_o;~L2%bsM{H^+N z<%$&rj~4sfSmrx>&Fa;s)6UJwJbLt~-wV(fx1IXL$qBW8J{}JX3w!pfJNN#+yPWe~ zd~XL7Kh@v==h3$HPqU8gsrb0)cHgwjXlUR#gmF$w@sL~?q2m5(`qaLJsne$2GQVFV z9I2+bYTdfB&r>@;t$0~@ZB1m^^K-K55tEiZ_}2V8I3nW3rpSNW*|#tDxgH*0+lp|v zXM>wobLp!qn%{Rul$bw$c6RpS(@*L>uUuUn-p)Dg8SD1?hlg0B_t({?{NCqz$^YPa zr3eNNu_jiANX3Y(ecjjDvkx}0`jyR^HER)z&dh|&`%RKMsjIHAdw<^l@7L=UKeLRk z>|3fFktG%Kf9*wTCtrIRh|J{enck8Un-}MM7 zcuuw}{_~^od)(Y-s_DVY{YsNmG=;LVt~@u14|-;t_L5`ThrjDoYNPz;yKi6+&|%?b z*yOi?0c1FX!ty}jdB^5(DThBlKfnB@rUOU;xDE!Z11kdMGNQ$$%uQasQJ-J)sO|Lk zE7z{wy0p|g_tuuocaHrB75_B1#PUPTEpprN<-zf$CMI={xD8(zPC~1}YL6$-TJW%) zbeXNg29Vt+G!I_d@Nc$xei?tkm!_rcF6U;O>u>V&_U^8Jk)o4$otcIEAQMBw96=r1 z!swbGW&|2o;p$W_wQf7 zIlFf4T4X0*w$~>!D{IrEM@h>#tx{Jf6z0sBQIs4c%fxYQM)BuozSk{d|E@@4)ecPa zViHwr7Tqm3;h<78D+7b2Vuby_AB!h1yz%nI#l_cd+{pO(^XJ6U*|TToK0EVJH2B6> zhJ&DDNy_xIi1mU~+)GJNjs!)w^V$&!I1EJ0??u3c8q z+j1gPYF794@tMcVK2AS7OSE!+hAp_@EQ%vBx*%l^sC0xx11JrEf|%vCVa3m<(}VpW zS)w6fsbg;L+Sy-rNZPJDw*UL*u(eUHUl_rz7g*y{@p9?(HGB8kX2nHEOH1lNVu?jN zIIi|)&p@-eIQ@0U8}?n#%e7+}zFS^D2)m^O>2nIsN>$@AvEP&#QiC zsja1@^b0he!@$51wroY`hbJc|Z%aQfH+^r_mluK)*}*Xe&S^{x4LX8rUcJh?Zt~-t z_4^yQ^Y_b|GQuoiT)+R{F6m{CwHvRz*RntepSSYyPiP)%Z#l96#D@6L{gR@=fuLwA0Mg;DB> zxz^=x?v~%*Djr{Rk@xI}L)`i|r1SSA^78V!$U_78RLh<{HqqPj=JN9J?D+m`cj95T z-w&Gkk;2B`{_mF!?vG2#%5DYw+ad?^>$Th8e0X>`@H3yR)stDgj4&e`yr=8!tP2lb z=CjeV_}Pu>_j{kWmhB@CZ_Sk#}(2x^*imtIo%^ zKtnLB?a$Zs^;?b8&$*nnuKl%T_ih15Di>J8bK!B}yxMP(zmMDhODukVZY#h2p9}Nq z|5fg;_^5>B)U8{u-gVuPeO<3yJkj0#_=>vt!orPb=iA?3<~#eDTQ7gzd^w}NB`<@v z=e)hO_1d*-V&&5COm8Tz^L2aF{<^(?-{#kEo*rL!^X%;%g^OeN*VTsX^FMDl$Fg`? z^|i$O{PmzpiI-oIjh+2&M9k8qORwF%`}SG>%}uE{%nq%CX1T{o5m{nWK7@pX+z|G+ zdH77T+cZjfr+vkT1FKf8QhL8WW@nOi*qVa%uV25;y|<@wVydpLu37T2p2XW6yX7Eh zv8Ox1_VXFzcQ>04aZhW@k?7vd@zr*=S?;E0cK%)8r%s&;u7KC^OqX-Jd;Plj*PR<) zGlJU+2X=5=o1MQe^LW2}zmSgY?1C-xU02ivPg=yvE#}hJsiCjGeX4f2+qIYP-GPW5`0awtTU{rr^r{f(n-cR-VB;Kk~*^0`;)v(C@6 z{r30!ef6_Go(m48Y)HD!Y!s2Qfq@|*hQ)iuO25DBO2i*-Og`@R)zI?n*|TA>v9gux z{oYrF^k?McZ29x&&x+Ek_Bzv$Ts!TTu4eZW*X-BV*1qf8GjHC!z@Pi1&GRf4262VX zT)wyZ`>kE2ukRS$m0fY}wbX3yo4R)scjVsQb|U@iPTMn8kmO^qu1Php^8erOce7Jl z?S8#b{=VUPLR-d?iyj|$RfA@0%g@_hv51)mF9x;k-KIUszqTfF;`h#L%%GAX;SQ^J zxnR}=Kh86k{q5hr)3~zaCn7;>uiukoYHFINQf{l}zT)S*qvG)@i1fVT|I|&Pr{bng znX+SF`1-xyX64@7GxG&AI6f32W-gj|q1Il5x3u8d8A&C6aH$Mx3xZY)fEqEZ44?sD zsA9z*>;L~+A1J$17Lxpn{5F_8Snd|g4$XGiEf*{zs!n`9t-s$UhY2dE&775;EetPo zQys#?r>~9QfA8P7?fYFfg-M&|ZFzlty>Kl|x$qVC>}O|Yh6M&boW*stQ&=5T`lurO z^TN=wYRBdeO-tGB?Y~|LMk<8N@7G-Jled>sjcDhWS8Ha4dM5SM)6>)6E}b5?Ni%qv z#lcgjPZz&8m52C1U=2^;(x&Ht6`t8r>RiFD?`~UCvxjBfk`2C*GeQP5&9x@f?O5HF`Ki*Hh9Okd! zd9~keCZ27Qm6gr=!3HmP6FxpV`tA4o{qAS2tG=u_JKugjB5pq1%3gnSvcH|=*9qx+ z>;L_HUircpk^`Hja-Nj?cE))=w7${-Rd=9)22g5&H)vS2Eo*CQL3PddsN}@lySuJ# z%ek3kYio-XXqBIz?VNbqwXSYo?U#%0W~Hw}zDvQw=0d}w+}vEf>aSle`|oyiH#NMV z0kdCm{hm)TF;Ut5&0&7~lFzed&3c0;=}Fa;e13KoVKZo!0@S-*|NHmvw`XP= zyU0O{e$ccD1H-XMP@UB|MHte{P>9I<@ZsU%DVH-A?u+9V)7fy|{{NkQKc7kOuK!<` zGIL(-j*^!_pnl5Q*xlFeK9uN(XW|*0*D4lTi=>~MlWCrRZ_B-Vakux??p_-SySuw*s=Yuh?cNDmN}K1EEc$#@Jbp(eXh0L7Jzq7Bc*_eF1k2iYRZsw_1K}|a$wU@WI}4QGRe&!NaEN3!68E?VA05YIt1XqOVuO;|1a6M6k)ET~=M(sgp{?k6gGQ zfT(MyuD-cBJvuTn^2y&TD}&eW-8&a4N4;D=|JJI|)iLtw3;kZ)ul+vPcfK8x{DR#a z$?Pw#RG)q$FBC)y{gx`i(rLhYSXbvRo`x=-%VJIyW)54UwhGc zdimR1sp@`n5_~kFr2)8G49c^hhUtu&rmGh&97tFMFMB@8|Nkg|?egX1_j^9`1+u}K zY)#kW>+kOS_ba>lQKx#&^K)|x;qA9e4(DZJ_Ec;X*5N%bkdG*P1zSST%r)_Viv!>7m@gTn|r*8`MsRY^5N4W4~nP1UB0#cM)U62!tEQ2 z4=+u8UgaLme~^`hTP?n^{A<71?GK?F*UqRtX0~2ybK5R6rtSnr7efn+C+AL2{rUXP zecRdE%BO$*X3PD$=kvG2T|(Nnw==TE#BTAks-_jXz4%#IxiL2?GOJ$XZl6!>US<{v z0i78!toPpjD*IjZOY`=>*qu}7<`>P6wEe$_m)EFFvWZn7;l=sxZ43YFl{Y>0eS7tH z-o2^ay6^t}Ox}Ly_wI75_FOmd8uxE8>hl^B4nEQQa87n_=IUp2H&>snH+%f=pZC`2 z^?wyLt68`eKK^&vuqRN=>vP^!yOQ_XUhj5%H~p{G-c(Zlb@$KvdRj$`w$|Nb-Cg%n zj**o`n+IO{*RJ1|cQ-3~Th7LLa$0Y4bUq}t`ueu4el~A&Bco9ShnT~TPs^V8ES??y z{`Bli_NQmB>e_vn<@JMg*=3I$*2eBGxo#@HD%&Z&THleCMO*aqv$LB)y_>z~&Y$1j zZ};oOGQYX6;+(&URycC`U)f!HWeEp|n8S@v&yo@^&lfK-T^lG~vh}3i3#O++kva|= zoIac}J|7VsJ^OTA=7m6Bqg9@t6|1@TtbVGyE$5f!?eCXGn>rI1mxSIsQs${)^Y4DF zP@a3aXGY$e4fpHUZnNfa_Rlky*De0-@L%De%Lax^TKRW;O+TOCEuE=1FTbdE&6PjP^Vs{Xe!qF% zE2>w$Zr|L~>2o*w#{aJrU-&Db*7o_DQu|lxD;g4(I{jTgWo^*6RZEr}`MS62?bho# zpsLKCo7<)|?|N*9)|V3T#HUBo%vGf>fh**s)6#-6VrjRx*SqA+$=rKC_r9LamPf(7 z?`rRU4ZHnA|KKIpyT_U?c}$aKILPJb?cKd~+rOXwm+#-tPd_(D@l#~f1J6~DLf_5e z2X!q|CPD{*7@AC*Lc+sA%OT&+Ex)&M`~5oWEJRk1tN&XXy{~5HT!i4*S}?^5-icH`mU_S}DeeujmHiq5pRu*fKWc4p(HOF^&Sz1t>hUA80eX)>ag z>rUAF>(%OSM}+-vcXetZhDOJp_ix{B-LuE$`<^2T(5{fd?qBZR)p;)?{CAtjD*TwRyGgaJ zt?kXRUg>qoyIb7fA77%>Be>?%r=sYcMX68r9(yv$qO{bNf01O_UZ0B|-;N$Vy4Xtg zUbK-O>plL}eZ9Z(rQd5tvu1BPZhL0Q|Jc+ye~(Vk>nk}Z67&4l*6eE+FADyw51GzT zyKK#x9tpnqYeT_D-8WU%qnvZr=2BGXMCc%51sz+|l_Uutvx3 z|LOO)reF5o>AqfM-iqz-);$z=HU0lL=Gw5F%&6ef!s{m3cpt{&sE~7Hw-u8Hr6-KcBn( z>}u+}Ql(k5t=QkP9x=yl|-_1v)7 z%Jci8iw@c@F7DvD)}ozl@m_H`>+4HPz1Q8pIz==1&W)h=d%w?<-t_R*)zvQZnfMPn zZE)*3z4WY}pZyw*jhl*l->sj;{eJtA_w8RlFFT!AyEeG`EhFnm79EI5-dnbB-#ziF zX~OePVf8jsNhVggrq%>oJyF&2m^oLDdtHh7xp{r)&(_<8*WbUDEI8Y=+bm|2=;m_~ z>DBtIr&z%5QD^NoT&(dyK!+t;=c8}St9aE_|D!kj)94agbE}^7#>~T|ej8j~-gMg@ z_jkV?|D5j(k-8C}7HD`}<Qn#i+)*yW^xW3rTIvQlyBdj~von~u zY##aDai4UpI(A#~-TBE0wfpy|T-v_sYu)zR-5V}+`Tw>2H?OVW!{db9*y4*)`JW8R z&s8^YDn&Rny5H%vF1S~GkGaY8kV>}HlFkWC{X2xqAMAO)hn+>6d6FsbB^M7QRjeWv zA{9quHS#UqGaifIkfF2$pR$-)`sczd6%5{msGVAN&*c6+Uj0wJtlew*1|l zot(j9X^$)S7kpc`B}v|gNyeh!fR>il3XgmTjky_*SlNpdF_tR`!+tzdvT-s z*YDqVi&(hT)+DUt{BTlz{+53Ge>XsrAKl{m+bTalyLo44v9hqwy{>;37rTdrhdN9`uh6%+Y=L&uU)+O@Z0N8PfxF7>hE2B?)|S{Rj=Q^Eq$-8t$nvDHa2$7cgZ>5 zm2%!FKR5SoA%7-tm5U^>>nHQ(Jm>YgNX6TwQr8J@DLo`~H|zh44dt2`2<@4)qf$F|R_MF^%nD@`?zI8lBbgzq7_~fNam#&L% zG15Afq`K>s`n%4@`;tGuU-eIqxb}Ii)yD7QCFSq$xo$`(;=Hyt8azms_oHq9|G)3Qy3gM+ zKPuj@a^}8Ja(rGM8ah>2XQ9t&m(E(VdEZYz%jcD?u2&SaUMVkgphZ~c>&{#I>-X>d z|L^xY{b|2aRJ~^(ezI$kPw2(hT0v8H|N8H7;OfoT?dyM^YTwcCcc*ohV5#f+e-T-m zuKyBV*q>r{>|g(-*Xx?M{@S;4(sfto$IxQ{XCPjem6(5@y5DKHJz*TR08gsFRXJq zShyjm_omC6$@4$IJYrW-=q{}26LIiS;`xv-AGLnn(Du^hPup!UF z^+#MA-S4b?(rLSq-C;umxWvM(uJf-_tqA7o%^bAsUaIo*F3 z{rUPh>|p(;lj=w8*pv7l3aq)ady&e!owHp}Zi5+ms)~)BJ@?!k%dn`Zth;ybZc9GScY9N+ z_p#TC5j!hgJ?|86o^<{gLiH=?uQs|#O2=iZ{MQg;^uw*`ZaY+9LSIHfkNe4l`P#ilp`7vST*z^BfIy$ zfB$Y>`0CZGQyF`GA~&b?{=L2b@9kuNk&26#>;FBk@AHW1tS&n?_lEHAnBLkqORQJ~ z)^JWdILRS(Q{1vIU%u?v7u#=ZMhSl zzPclqw%6z7n>R}iNIzui?@}v&Pi(I#Q;k zL8h+u`bbDg70q9MK>8*~*LJ9`eOtGhzRugk#FBkyV$9a<+k+qU7BsrMPOdIg|8~Sq zJXwFI)XIPR8xnk1sd@G?_&1twVwDs1&4YNc`|sg){@jFwhEpO3n-qR6zhHknMd!n{ zwZES45Uto5bMZ+PC^?^BdgJw@IlEZ}bvhhh-nlqUTTM+(ZP`i7mC>9>FPhJ#HKCO@QEp^7HAaWS!QCj~_R ztgtg{?Ck99%zWh6bFPo%4QVbH97^r~ewloBj^*XFGcyujUthm{+BC84Yc_1S0Gh$v zwCU5v{ma*^Ig{&M?>=kQDy{8rC#(AlRVT?G?Ugpa^H0{M!obMCf9WNgqtz-mwq{Si zJ#QYfdEj~1B>skkgB+jFn%}>nKEEbuclrBmpr+@kx_5VWuKTonlKM9ev8gtooUP#d z>eZ{5Mo{8$e+KF&o&Ei|-(G3z9xlVsKcG3gZgG9LYkRA{uF{R%bj0repWKldjig-4u_ndHAjNa2xNtg*#8yZMLZUv%^~LSFLvV zI-iJ>>Q;Vowg3P9{eAbF==!s>&8-jmmD&9H_~+~O_`8Kyo}Zg<|9;a#(2}L~`+l9W zov(N1yYTOmlGP3y66RQzzPhsEOdFT1t$bj8t>gEv*W-7Wh6-c~X}Q?_eq$WHEoY|o zg(EWoqEUk~cRDx1T%KE3M2L92huJH+I(*Q8!;--@xCC&)5BWxqMsA&!X+V zqKml2^|t)`_wU5MH4z&R`OUX`%avN2o};>+DR_N$cJ|wAYop(N-B({Tl_w{O3hi>|)_0#3J=82`=)9?K1nyZx+U#V^__pc&r z<~iQn@b{`5?0hl>>;L~eU*GntF3H|9nV&tc&fe|vXVTGQw2_3#Jkeseb1R)2HhTK4Bp&G+p~mZ&`Zr?Fc(#NcJEudi=P zd`YTi$B7RVO+% z39O&wUoxkO|M}j6hfYs!WZo`+cc*Y>U&?XiZ70Kp)_$+8t$nvwt1MOjaE<-O`Exe1 zvv41iyssjfQ{@$Q^8JmC%0V;!embpR$n6(<@@2leyZe=GH3y%lrv@hlPHvdCGE%#u zb>*|h8&2js^baH#a>FF45lS z+AX$o%FcCC%|F((@3;DTHsk8ms|&R&H`e|x3r~2J74%y0_nqF_RcTuDGd1+}%Z*mt zShDI#?Hp+-sYz*pLbB?iZ{%dPk4F4`Sn@|zDtddKZ>1*Tz7Cjbmxxeyj=t1u_U;j>OOF6EbqbmRGcjwWR@e#uUuaFW?I&Oxx$WeDo-pW3y|eqwMO^KdMJg8U1>bwCJ(mwn_Y-{~oC;IwmKe(-7#~ z`kvqZkAp&oEdxUn>xUgLzGd7OoTlxT1YS7S!{GH+TXp@pRW~cXD{N$kEja@(9(CA| zAhgK(y2*>DXJ?zce>FZb{YOzuhyF*hxVCme0elyyH(VIy6XK32J^_`}wSSp327? zOnNuXnqIg5?YY1_$y8&Z{DOeRYTULWVaksF-yS>FSiZM>->I(UEQ}tqYT#SNhj5 z9&F-lS$F7gn2Fcz*I(C0Z@*(y>U8z@t5>fAbvbH}Jvh|Lz3#*1C4a9@e%CrH|J(cf z_AC3jKR(^_e2@CRhJ=GGkKWzgy>7zJy1!MYx}N>}`+MC5O%08Lm7o9oshMqGzfXID z+h&E3i%S^4J%N{9q354sy!{N~2SDWbg>Ha`dLdFEPn zb#=J=rI(8%1-MLQS1evNuX;JtMf->w`OeArQ3LegkFVF`)!*oz)H2xr=aY9I*o8X; z;vF_9?7kptx~sNw(bB`EUsv8 #include +#include #include #include #include #include +#include +#include +#include namespace boost { @@ -37,63 +49,47 @@ namespace boost namespace leaf = boost::leaf; -#ifdef _MSC_VER -# define NOINLINE __declspec(noinline) -#else -# define NOINLINE __attribute__((noinline)) -#endif +#define USING_RESULT_TYPE "leaf::result" ////////////////////////////////////// -enum class e_error_code +struct e_int { - ec1=1, - ec2 + int value; }; -namespace boost { namespace leaf { - - template <> struct is_e_type: std::true_type { }; - -} } - struct e_system_error { - e_error_code value; + e_int value; std::string what; }; -// Note: in LEAF, handling of error objects is O(1) no matter how many stack frames. struct e_heavy_payload { - char value[4096]; - - e_heavy_payload() noexcept - { - std::memset(value, std::rand(), sizeof(value)); - } + std::array value; }; template E make_error() noexcept; template <> -inline e_error_code make_error() noexcept +NOINLINE e_int make_error() noexcept { - return (std::rand()%2) ? e_error_code::ec1 : e_error_code::ec2; + return { std::rand() }; } template <> -inline e_system_error make_error() noexcept +NOINLINE e_system_error make_error() noexcept { - e_error_code ec = make_error(); - return { ec, std::string(ec==e_error_code::ec1 ? "ec1" : "ec2") }; + return { make_error(), std::string(std::rand()%32, ' ') }; } template <> -inline e_heavy_payload make_error() noexcept +NOINLINE e_heavy_payload make_error() noexcept { - return e_heavy_payload(); + e_heavy_payload e; + std::fill(e.value.begin(), e.value.end(), std::rand()); + return e; } inline bool should_fail( int failure_rate ) noexcept @@ -103,151 +99,88 @@ inline bool should_fail( int failure_rate ) noexcept return (std::rand()%100) < failure_rate; } +inline int handle_error(e_int e ) noexcept +{ + return e.value; +} + +inline int handle_error( e_system_error const & e ) noexcept +{ + return handle_error(e.value) + e.what.size(); +} + +inline int handle_error( e_heavy_payload const & e ) noexcept +{ + return std::accumulate(e.value.begin(), e.value.end(), 0); +} + ////////////////////////////////////// -template -struct benchmark_check_error_noinline +// This is used to change the "success" type at each level. +// Generally, functions return values of different types. +template +struct select_result_type; + +template +struct select_result_type { - NOINLINE static leaf::result f( int failure_rate ) noexcept + using type = leaf::result; // Does not depend on E +}; + +template +struct select_result_type +{ + using type = leaf::result; // Does not depend on E +}; + +template +using select_result_t = typename select_result_type::type; + +////////////////////////////////////// + +template +struct benchmark +{ + using e_type = E; + + NOINLINE static select_result_t f( int failure_rate ) noexcept { - LEAF_AUTO(x, (benchmark_check_error_noinline::f(failure_rate))); + LEAF_AUTO(x, (benchmark::f(failure_rate))); return x+1; } }; -template -struct benchmark_check_error_noinline<1, T, E> +template +struct benchmark<1, E> { - NOINLINE static leaf::result f( int failure_rate ) noexcept + using e_type = E; + + NOINLINE static select_result_t<1, E> f( int failure_rate ) noexcept { if( should_fail(failure_rate) ) return leaf::new_error(make_error()); else - return T{ }; - } -}; - -////////////////////////////////////// - -template -struct benchmark_check_error_inline -{ - static leaf::result f( int failure_rate ) noexcept - { - LEAF_AUTO(x, (benchmark_check_error_inline::f(failure_rate))); - return x+1; - } -}; - -template -struct benchmark_check_error_inline<1, T, E> -{ - static leaf::result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return leaf::new_error(make_error()); - else - return T{ }; - } -}; - -////////////////////////////////////// - -template -struct benchmark_handle_some_noinline -{ - NOINLINE static leaf::result f( int failure_rate ) noexcept - { - if( N%4 ) - { - LEAF_AUTO(x, (benchmark_handle_some_noinline::f(failure_rate))); - return x+1; - } - else - return leaf::try_handle_some( - [=]() -> leaf::result - { - LEAF_AUTO(x, (benchmark_handle_some_noinline::f(failure_rate))); - return x+1; - }, - []( leaf::match ) - { - return 2; - } ); - } -}; - -template -struct benchmark_handle_some_noinline<1, T, E> -{ - NOINLINE static leaf::result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return leaf::new_error(make_error()); - else - return T{ }; - } -}; - -////////////////////////////////////// - -template -struct benchmark_handle_some_inline -{ - static leaf::result f( int failure_rate ) noexcept - { - if( N%4 ) - { - LEAF_AUTO(x, (benchmark_handle_some_inline::f(failure_rate))); - return x+1; - } - else - return leaf::try_handle_some( - [=]() -> leaf::result - { - LEAF_AUTO(x, (benchmark_handle_some_inline::f(failure_rate))); - return x+1; - }, - []( leaf::match ) - { - return 2; - } ); - } -}; - -template -struct benchmark_handle_some_inline<1, T, E> -{ - static leaf::result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return leaf::new_error(make_error()); - else - return T{ }; + return std::rand(); } }; ////////////////////////////////////// template -int runner( int failure_rate ) noexcept +NOINLINE int runner( int failure_rate ) noexcept { return leaf::try_handle_all( [=] { return Benchmark::f(failure_rate); }, - []( e_error_code const & ) + []( typename Benchmark::e_type const & e ) { - return -1; - }, - []( e_heavy_payload const & ) - { - return -2; + return handle_error(e); }, [] { - return -3; + return -1; } ); } @@ -263,7 +196,7 @@ std::fstream append_csv() else { std::fstream fs("benchmark.csv", std::fstream::out | std::fstream::app); - fs << ",\"Check, noinline\",\"Check, inline\",\"Handle some, noinline\", \"Handle some, inline\",\"Error rate\"\n"; + fs << "\"Result Type\",2%,98%\n"; return fs; } } @@ -277,7 +210,7 @@ int print_elapsed_time( int iteration_count, F && f ) val += std::forward(f)(); auto stop = std::chrono::steady_clock::now(); int elapsed = std::chrono::duration_cast(stop-start).count(); - std::cout << std::right << std::setw(8) << elapsed; + std::cout << std::right << std::setw(9) << elapsed; append_csv() << ',' << elapsed; return val; } @@ -287,43 +220,34 @@ int print_elapsed_time( int iteration_count, F && f ) template int benchmark_type( char const * type_name, int iteration_count ) { - int const test_rates[ ] = { 2, 50, 98 }; int x=0; - std::cout << "----------------|--------------------|----------|-------|--------"; - for( auto fr : test_rates ) - { - append_csv() << "LEAF"; - std::cout << '\n' << std::left << std::setw(16) << type_name << "| LEAF_AUTO | Disabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - std::cout << '\n' << std::left << std::setw(16) << type_name << "| LEAF_AUTO | Enabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - std::cout << '\n' << std::left << std::setw(16) << type_name << "| try_handle_some | Disabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - std::cout << '\n' << std::left << std::setw(16) << type_name << "| try_handle_some | Enabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - append_csv() << ',' << fr << '\n'; - }; - std::cout << '\n'; + append_csv() << "\"" USING_RESULT_TYPE "\""; + std::cout << '\n' << std::left << std::setw(16) << type_name << '|'; + std::srand(0); + x += print_elapsed_time( iteration_count, [] { return runner>(2); } ); + std::cout << " |"; + std::srand(0); + x += print_elapsed_time( iteration_count, [] { return runner>(98); } ); + append_csv() << '\n'; return x; } ////////////////////////////////////// -int main( int argc, char const * argv[] ) +int main() { - int const depth = 32; + int const depth = 10; int const iteration_count = 10000; std::cout << iteration_count << " iterations, call depth " << depth << ", sizeof(e_heavy_payload) = " << sizeof(e_heavy_payload) << "\n" - "LEAF\n" - " | | Function | Error | Elapsed\n" - "Error type | At each level | inlining | rate | (μs)\n"; - return - benchmark_type("e_error_code", iteration_count) + - benchmark_type("e_system_error", iteration_count) + - benchmark_type("e_heavy_payload", iteration_count); + USING_RESULT_TYPE "\n" + "Error type | 2% (μs) | 98% (μs)\n" + "----------------|----------|---------"; + int r = 0; + r += benchmark_type("e_int", iteration_count); + r += benchmark_type("e_system_error", iteration_count); + r += benchmark_type("e_heavy_payload", iteration_count); + std::cout << '\n'; + // std::cout << std::rand() << '\n'; + return r; } diff --git a/benchmark/deep_stack_other.cpp b/benchmark/deep_stack_other.cpp new file mode 100644 index 0000000..1a6e6a3 --- /dev/null +++ b/benchmark/deep_stack_other.cpp @@ -0,0 +1,281 @@ +// Copyright (c) 2018-2019 Emil Dotchevski and Reverge Studios, Inc. + +// Distributed under the Boost Software License, Version 1.0. (See accompanying +// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) + +// See benchmark.md + +#ifndef BENCHMARK_WHAT +# define BENCHMARK_WHAT 0 +#endif + +#if BENCHMARK_WHAT == 0 + +# ifndef TL_EXPECTED_HPP +# include "tl/expected.hpp" +# endif +# define ERROR(e) tl::unexpected(e) +# define BENCHMARK_TRY(v,r)\ + auto && _r_##v = r;\ + if( !_r_##v )\ + return ERROR(_r_##v.error());\ + auto && v = _r_##v.value() + +#else + +# include +# include +# define ERROR(e) e +# define BENCHMARK_TRY BOOST_OUTCOME_TRY +# ifndef BOOST_NO_EXCEPTIONS +# error Please disable exception handling. +# endif + +#endif + +#ifdef _MSC_VER +# define NOINLINE __declspec(noinline) +# define ALWAYS_INLINE __forceinline +#else +# define NOINLINE __attribute__((noinline)) +# define ALWAYS_INLINE __attribute__((always_inline)) inline +#endif + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +namespace boost +{ + void throw_exception( std::exception const & e ) + { + std::cerr << "Terminating due to a C++ exception under BOOST_NO_EXCEPTIONS: " << e.what(); + std::terminate(); + } +} + +////////////////////////////////////// + +#if BENCHMARK_WHAT == 0 // tl::expected + +# define USING_RESULT_TYPE "tl::expected" + + template + using result = tl::expected; + +#elif BENCHMARK_WHAT == 1 // outcome::result + +# define USING_RESULT_TYPE "outcome::result" + + template + using result = boost::outcome_v2::std_result; + +#elif BENCHMARK_WHAT == 2 // outcome::outcome + +# define USING_RESULT_TYPE "outcome::outcome" + + template + using result = boost::outcome_v2::std_outcome; + +#else +# error Benchmark what? +#endif + +////////////////////////////////////// + +struct e_int +{ + int value; +}; + +struct e_system_error +{ + e_int value; + std::string what; +}; + +struct e_heavy_payload +{ + std::array value; +}; + +template +E make_error() noexcept; + +template <> +NOINLINE e_int make_error() noexcept +{ + return { std::rand() }; +} + +template <> +NOINLINE e_system_error make_error() noexcept +{ + return { make_error(), std::string(std::rand()%32, ' ') }; +} + +template <> +NOINLINE e_heavy_payload make_error() noexcept +{ + e_heavy_payload e; + std::fill(e.value.begin(), e.value.end(), std::rand()); + return e; +} + +inline bool should_fail( int failure_rate ) noexcept +{ + assert(failure_rate>=0); + assert(failure_rate<=100); + return (std::rand()%100) < failure_rate; +} + +inline int handle_error(e_int e ) noexcept +{ + return e.value; +} + +inline int handle_error( e_system_error const & e ) noexcept +{ + return handle_error(e.value) + e.what.size(); +} + +inline int handle_error( e_heavy_payload const & e ) noexcept +{ + return std::accumulate(e.value.begin(), e.value.end(), 0); +} + +////////////////////////////////////// + +// This is used to change the "success" type at each level. +// Generally, functions return values of different types. +template +struct select_result_type; + +template +struct select_result_type +{ + using type = result; +}; + +template +struct select_result_type +{ + using type = result; +}; + +template +using select_result_t = typename select_result_type::type; + +////////////////////////////////////// + +template +struct benchmark +{ + using e_type = E; + + NOINLINE static select_result_t f( int failure_rate ) noexcept + { + BENCHMARK_TRY(x, (benchmark::f(failure_rate))); + return x+1; + } +}; + +template +struct benchmark<1, E> +{ + using e_type = E; + + NOINLINE static select_result_t<1, E> f( int failure_rate ) noexcept + { + if( should_fail(failure_rate) ) + return ERROR(make_error()); + else + return std::rand(); + } +}; + +////////////////////////////////////// + +template +NOINLINE int runner( int failure_rate ) noexcept +{ + if( auto r = Benchmark::f(failure_rate) ) + return r.value(); + else + return handle_error(r.error()); +} + +////////////////////////////////////// + +std::fstream append_csv() +{ + if( FILE * f = fopen("benchmark.csv","rb") ) + { + fclose(f); + return std::fstream("benchmark.csv", std::fstream::out | std::fstream::app); + } + else + { + std::fstream fs("benchmark.csv", std::fstream::out | std::fstream::app); + fs << "\"Result Type\",2%,98%\n"; + return fs; + } +} + +template +int print_elapsed_time( int iteration_count, F && f ) +{ + auto start = std::chrono::steady_clock::now(); + int val = 0; + for( int i = 0; i!=iteration_count; ++i ) + val += std::forward(f)(); + auto stop = std::chrono::steady_clock::now(); + int elapsed = std::chrono::duration_cast(stop-start).count(); + std::cout << std::right << std::setw(9) << elapsed; + append_csv() << ',' << elapsed; + return val; +} + +////////////////////////////////////// + +template +int benchmark_type( char const * type_name, int iteration_count ) +{ + int x=0; + append_csv() << "\"" USING_RESULT_TYPE "\""; + std::cout << '\n' << std::left << std::setw(16) << type_name << '|'; + std::srand(0); + x += print_elapsed_time( iteration_count, [] { return runner>(2); } ); + std::cout << " |"; + std::srand(0); + x += print_elapsed_time( iteration_count, [] { return runner>(98); } ); + append_csv() << '\n'; + return x; +} + +////////////////////////////////////// + +int main() +{ + int const depth = 10; + int const iteration_count = 10000; + std::cout << + iteration_count << " iterations, call depth " << depth << ", sizeof(e_heavy_payload) = " << sizeof(e_heavy_payload) << "\n" + USING_RESULT_TYPE "\n" + "Error type | 2% (μs) | 98% (μs)\n" + "----------------|----------|---------"; + int r = 0; + r += benchmark_type("e_int", iteration_count); + r += benchmark_type("e_system_error", iteration_count); + r += benchmark_type("e_heavy_payload", iteration_count); + std::cout << '\n'; + // std::cout << std::rand() << '\n'; + return r; +} diff --git a/benchmark/deep_stack_outcome.cpp b/benchmark/deep_stack_outcome.cpp deleted file mode 100644 index 9d499b0..0000000 --- a/benchmark/deep_stack_outcome.cpp +++ /dev/null @@ -1,312 +0,0 @@ -// Copyright (c) 2018-2019 Emil Dotchevski and Reverge Studios, Inc. - -// Distributed under the Boost Software License, Version 1.0. (See accompanying -// file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt) - -// See benchmark.md - -#include -#include - -#ifndef BOOST_NO_EXCEPTIONS -# error Please disable exception handling. -#endif - -#include -#include -#include -#include -#include -#include - -namespace boost -{ - void throw_exception( std::exception const & e ) - { - std::cerr << "Terminating due to a C++ exception under BOOST_NO_EXCEPTIONS: " << e.what(); - std::terminate(); - } -} - -////////////////////////////////////// - -namespace outcome = boost::outcome_v2; - -template -using result = outcome::std_outcome; - -#ifdef _MSC_VER -# define NOINLINE __declspec(noinline) -#else -# define NOINLINE __attribute__((noinline)) -#endif - -////////////////////////////////////// - -enum class e_error_code -{ - ec1=1, - ec2 -}; - -struct e_system_error -{ - e_error_code value; - std::string what; -}; - -struct e_heavy_payload -{ - char value[4096]; - - e_heavy_payload() noexcept - { - std::memset(value, std::rand(), sizeof(value)); - } -}; - -template -E make_error() noexcept; - -template <> -inline e_error_code make_error() noexcept -{ - return (std::rand()%2) ? e_error_code::ec1 : e_error_code::ec2; -} - -template <> -inline e_system_error make_error() noexcept -{ - e_error_code ec = make_error(); - return { ec, std::string(ec==e_error_code::ec1 ? "ec1" : "ec2") }; -} - -template <> -inline e_heavy_payload make_error() noexcept -{ - return e_heavy_payload(); -} - -inline bool should_fail( int failure_rate ) noexcept -{ - assert(failure_rate>=0); - assert(failure_rate<=100); - return (std::rand()%100) < failure_rate; -} - -bool check_handle_some_value( e_error_code e ) noexcept -{ - return e==e_error_code::ec2; -} - -bool check_handle_some_value( e_system_error const & e ) noexcept -{ - return check_handle_some_value(e.value); -} - -bool check_handle_some_value( e_heavy_payload const & ) noexcept -{ - return false; -} - -////////////////////////////////////// - -template -struct benchmark_check_error_noinline -{ - NOINLINE static result f( int failure_rate ) noexcept - { - BOOST_OUTCOME_TRY(x, (benchmark_check_error_noinline::f(failure_rate))); - return x+1; - } -}; - -template -struct benchmark_check_error_noinline<1, T, E> -{ - static result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return make_error(); - else - return T{ }; - } -}; - -////////////////////////////////////// - -template -struct benchmark_check_error_inline -{ - static result f( int failure_rate ) noexcept - { - BOOST_OUTCOME_TRY(x, (benchmark_check_error_inline::f(failure_rate))); - return x+1; - } -}; - -template -struct benchmark_check_error_inline<1, T, E> -{ - static result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return make_error(); - else - return T{ }; - } -}; - -////////////////////////////////////// - -template -struct benchmark_handle_some_noinline -{ - NOINLINE static result f( int failure_rate ) noexcept - { - if( N%4 ) - { - BOOST_OUTCOME_TRY(x, (benchmark_handle_some_noinline::f(failure_rate))); - return x+1; - } - else if( auto r = benchmark_handle_some_noinline::f(failure_rate) ) - return r.value()+1; - else if( check_handle_some_value(r.error()) ) - return 1; - else - return r.as_failure(); - } -}; - -template -struct benchmark_handle_some_noinline<1, T, E> -{ - static result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return make_error(); - else - return T{ }; - } -}; - -////////////////////////////////////// - -template -struct benchmark_handle_some_inline -{ - static result f( int failure_rate ) noexcept - { - if( N%4 ) - { - BOOST_OUTCOME_TRY(x, (benchmark_handle_some_inline::f(failure_rate))); - return x+1; - } - else if( auto r = benchmark_handle_some_inline::f(failure_rate) ) - return r.value()+1; - else if( check_handle_some_value(r.error()) ) - return 1; - else - return r.as_failure(); - } -}; - -template -struct benchmark_handle_some_inline<1, T, E> -{ - static result f( int failure_rate ) noexcept - { - if( should_fail(failure_rate) ) - return make_error(); - else - return T{ }; - } -}; - -////////////////////////////////////// - -template -int runner( int failure_rate ) noexcept -{ - if( auto r = Benchmark::f(failure_rate) ) - return r.value(); - else - return -1; -} - -////////////////////////////////////// - -std::fstream append_csv() -{ - if( FILE * f = fopen("benchmark.csv","rb") ) - { - fclose(f); - return std::fstream("benchmark.csv", std::fstream::out | std::fstream::app); - } - else - { - std::fstream fs("benchmark.csv", std::fstream::out | std::fstream::app); - fs << ",\"Check, noinline\",\"Check, inline\",\"Handle some, noinline\", \"Handle some, inline\",\"Error rate\"\n"; - return fs; - } -} - -template -int print_elapsed_time( int iteration_count, F && f ) -{ - auto start = std::chrono::system_clock::now(); - int val = 0; - for( int i = 0; i!=iteration_count; ++i ) - val += std::forward(f)(); - auto stop = std::chrono::system_clock::now(); - int elapsed = std::chrono::duration_cast(stop-start).count(); - std::cout << std::right << std::setw(8) << elapsed; - append_csv() << ',' << elapsed; - return val; -} - -////////////////////////////////////// - -template -int benchmark_type( char const * type_name, int iteration_count ) -{ - int const test_rates[ ] = { 2, 50, 98 }; - int x=0; - std::cout << "----------------|--------------------|----------|-------|--------"; - for( auto fr : test_rates ) - { - append_csv() << "Outcome"; - std::cout << '\n' << std::left << std::setw(16) << type_name << "| OUTCOME_TRY | Disabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - std::cout << '\n' << std::left << std::setw(16) << type_name << "| OUTCOME_TRY | Enabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - std::cout << '\n' << std::left << std::setw(16) << type_name << "| Handle some errors | Disabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - std::cout << '\n' << std::left << std::setw(16) << type_name << "| Handle some errors | Enabled | " << std::right << std::setw(4) << fr << "% |"; - std::srand(0); - x += print_elapsed_time( iteration_count, [=] { return runner>(fr); } ); - append_csv() << ',' << fr << '\n'; - }; - std::cout << '\n'; - return x; -} - -////////////////////////////////////// - -int main() -{ - int const depth = 32; - int const iteration_count = 10000; - std::cout << - iteration_count << " iterations, call depth " << depth << ", sizeof(e_heavy_payload) = " << sizeof(e_heavy_payload) << "\n" - "Outcome\n" - " | | Function | Error | Elapsed\n" - "Error type | At each level | inlining | rate | (μs)\n"; - return - benchmark_type("e_error_code", iteration_count) + - benchmark_type("e_system_error", iteration_count) + - benchmark_type("e_heavy_payload", iteration_count); -} diff --git a/benchmark/gcc_e_error_code_2.png b/benchmark/gcc_e_error_code_2.png deleted file mode 100644 index da1d0e98085bac365b1563f236987533eb41ef2b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15493 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 diff --git a/benchmark/gcc_e_error_code_98.png b/benchmark/gcc_e_error_code_98.png deleted file mode 100644 index 6b56173293c778789e43d8bd99babc05c0e13998..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16172 zcmeAS@N?(olHy`uVBq!ia0y~yV2WU1U@YcfV_;x-^t5~n1B2aXPZ!6Kid%2zzAP3w zzH9mO`!hR!8VITF+QFH z9d75pePd(t+dn@)s|YDX)T%^8Z_C-pDXbO|8yma-?|Wv4dED2Ic8kA#KEJ*%qU5Q% zW=C9naIo{M;FC;EQ@=JH{cp$cWp~2Sq&qtb%`z{k1kLgi6VPGl{$I<$vU)ws>D4dv z;`imm*Zql%jAZtDA*fF>0y;Y?ZyDL9GyLoZ3``eqF)9?1J%)P!QGFe#NuVif@x47Px?Ca}F zt(SefyT5+_*_p=2bHhVIQb1zQMV^>z&t0@T==u5i^7s7ju8Il|44nAwecg`_3)e<( z*ZUK_@7F8s@6jPE&(APa&a7*5QY>G$IsJUu^R@49Z%Az3x^3ICP`f5M{Xk34u(qmM z`YRXA7O4CE);!#A@BPJwHW&A+zp(6_Hf>smP4u3Mjne!g-W#fB+3%buzfx}Zu3fj5 z<|Za4-ueGlzV64tTb8WHN+ArInwlFYtNZUdFC`^)=SKU- z$H#Y{%6NWm?zW<*UfcgpQuU5u6|a?Hl?hE+C9?nTx9D=$6?vzszrSnUezmYP&T3oV z@6-DGcl_N_9~l|BJ$coqtChL;_S_6x6Op*st+#0ElKKm)&$-Ue{H?$L&!t}X%m04m z{ayF#*RLh}ckbD9r%%@US)YCBtB~)zHf=JRkih!$?%TI-^Q7O))c<;^9=$DRCby1P ze@fHR`x=^8|J|?o+?#uMm+2h&Uv;wfp*y*%_P9J%xtKol#PkIvWo5f+OL#h0pPKsp zuGj5t+qO+P|MKKy^@p2QK6roLc&hOJgs&#`MYi^rEVo_rK34bVqx6CpchfmA12H0mky->yaC*-{6TDeO;bSEyX8W3_JAx*)}=k5#=kyUb5Dil4ObOQ_YWKZ~QcmB?Aut$MzsXj$%6 zUkTq5@kIa6>eoLj&rN<^Zzshoejz<>7R-$f8yE!E#0jpcX!e~wYgUZ;JT1-A?jOfB zWUNXwUKU<)UG{ZVg00CiXVICvI6^Dqb`&g(emeclojvD6UanenMRe1#q$5txSLQB0 zzT(L5voATqHr-#lQPb-9%gf7;pIz?KwDfOjT<5ZT0pF7Yf^6d^?CJQYbNS~aj`zDK z_0INuI%iMrW8ReS++h&+O+J3jLaX-K-Ip@D5i6I3UMOlzU{r{x)rxqJL$Fvn|*Otce?|O9gIaip}n^*gP`Ih8KWvoB1k}hSj?z&WmG&ko& zyYO=Vdd_Jqm!xM;>PuL;)bID|(_zUElXU<6@o-yp+*^G?x>bDBAGy-2YD!a!gS=P8 z=|^qRSP4z0MwL1FcJ}%Ec4i#(QeE3Ljhls=;oz&_gO?o2YRg_;Vl)q z2`eYP`gn=+#msZlU0wugIllYj^>ogpt*3s#64c4$YA4b4tlCqza7F0}=rFLX_Gk6} zojJ$ZB(AvLs%hzhrS9imteac$yy)enr7g#&tXXmTl0Dn$-J#akbZ_1J!M}CZ*XaqI zvc~r+<|!m^5D5_ZV4CZy=JB-RCCe9|=iWwFbeH5kf5CWDOFv8W<1wCPMSfc8x4vCm z?9R!mEeuW4$-M_J{m`mi7Pc{>X=+v!tFAbQ7(>(5^rokGZ`FK$cJ_nS+4RM?XZ(Gv z86?X4cKtf{{~~No+cS?#al9_ou6PmI5cOXE#H+i4OFkymmFzCxV?E;$E8kr!x!13D zEN|MHeSO`G@+FnJO($8r%T=;=FZG`8c1C>JfrVnWch^qkS}CJ{w_)DN8qQzUCEJ(D zm*!^g&3o$qbMaX>;1x7kq<6d2)&>4cYDG2kPTP1KHR$JrHts7ue-lSPmw#x;(b^4mj7?< z2+f3w;7ko)6FFVcAj`O2jJA`1PU2w=FJ-MvZk$p+i_Kxb>ssx5Pj;-FGui&UN&6&o z{%N0dcEO_i+{UX;>-Jm>(fL=o;ZN{^BdA4)8|&%Gig(S{dIjnF@49t4w&9k$@b9I{ zQcmGBxI*snoLlw6#Nukb`NDFav%QP|hI+34)N4L@_bz!=N3M=ZMrW_BNj@^$)#_e; z*!JdKnk8{u5;KK#7QSF1%Lgj}1%+w5r@6_;R_Y@ZU`{SEaB*Jt4&6 zYp~L2RTxL@^iyk?^1n=GZ<-gp#^!U{{qQ>1=aG=Cdo?+`X1U(IFVUDSQEtLVHc+pYJFS31-q7#KLjnnd$B z1I<0YG-RGNn0wCW&BqHmpRB_6q@JH=YdJNK`R#Xytcqk~`2|&alY$W9j%uyS@Ot^cm z=0H}y?Eg1KLf)Mnf**Izt1SQaCQ{r*RWdX*^xDOXh6yaISFSwy?aj^P@9*w*YZ{)kJ8vSc zAGf8etE;25onO9el4$_z>gA~)UR_=N&X}_xI{J3QI))fK&%9R>+3tJkeN*C%5+>D%+4QVzzN5w@Dm{c^TN zOjZDr`AQ&Y9YxLRXgAKqE~Tm0lZR#5h`72%` zE*qMjc`rM)AWCBIrzOdAEea3q4XeAezux}c_hZ`WaZ<1LMxFk$J9#blEb)uKf9$uv z_Pq0wZQM_fFZRp~41X0OvQz^;e7bz$LP9&AEZ6?<>pkmci1u7ySuxS*+OK!pRYNv z)OD@uziGU()`8riU!FU%dN(cpe7)=!??02v+qf3JI(Ny;YM;1A^45SK_2rB13qRTY z_lPw=YdY(zSFf_ZSAU(Ua^SwNq(9VK=k8`742oOH>b$uAikdL%tOY^Mi)|5Ja zR;rqxaqv^UoXXwgsr@ehjTsm&@HZ_zWwGn4!$Duh%g*yxUi!XnmS}*DWtV!ysu!XW ze~*WL?~O7OaS<`O^6A0J&ZcIME%X2Xh%5Nir)c7)W!15AwnkLjm#EiYV)trB{42iv z{MECruYc#IT)A>ZMRZNde)XH>zdcLjPAS(;x1T@No$F60i+0AolwCY=yUWhzt`F0# zozG%?&*EUp(=)$$t^Bs|{JhS3mixcmMwZk6D<_on>&c(|m(IYjK%T{0bk`Hd@B^z> zgx=Jikoob#4e|G{A{br5@0^UbK9!Un%9w z`WevO`t5tvfj=3yUtAMhSb9%l{yia`t!I9+9(cVgD11e{+#*kvh?8~xo8Et${Kn?X z?Rc3 z+^6@aKm${CPoeg!WtT(OYZa_NdU&_j_w7Y1N}a;bY>e9Yr|D_wZ&&?$h9V3lF}crK z52XBdmYY?9B9!0S``mOuU#&9UX&>up}48@|N;`pYk8!?8YidsM)|Pi&>XFNZu|lD9FX zY3iHrOOzry&mDff?eq3OD?(LgCa|8Jeov#>D!g{Ox!CE~MN>Ik@B7YJF^5%jP01&v znF*|(-(P&1_@U`g|N5#r&o;phwZ}6<@=6Q=Rn_hhH>AFE^ZadrL)uArGU)hvgpLZ$R zX^zi^M^C%&tya~%cVor8X^x$9)mOe+^f_unNZF$34MI~lFKC+T7pEe;M&YI0>Kc{b z@yrYjbwWCvP48?zy^HJ0W9^#v#PDA3|9=ZsKlX6i;`cb{O6gQgyu+xPi**KerVqj#v{=cBDZj?7+T8k~Az@+OyL zkSjx2w6E^*P>XQ9WE=L=X5e$2Kj~uiwkY!+CILP!uQEJCqUo~!6O$Mp4 zFl#S}IC4#f#70(*%!VjI()vYotEiaPukO}k|AId~?f#$rZ9}KY>GFeCH9t0piio)A zoS$b~JU@1C)zxQbW+p#A-oJgR_w=aZ;^H&OEO+@B7!<@gb7#o;tos-7=E{1`{^b^{ zE2`h$+dJd+;_1Q5{akal7d&(Vbc{QrNchTrdt2`2x3{++Kl4X3cv(bcy(zZw&0o^*VroK^mAJ_ zCLh1`=H}+Nr>1J>)rN*nojPSo%l7I|PdZQUSnfaH?TvhiH3I_!%j)M%rrFnYR9y|7cVw+b#Yxk{(52QsU6$4ZR_~koHt#MmzTHf z(-TiI5STVa{OE)j5uN`=c;XNPptC$sVBbore|D+4rBGo~|5m)2Xm<hh9gTb?ZZV)!Nc~f5LQib@To%cJIHVyXfBUirb6~3fR@_ z(KP$ojcaS8cgto!JvDV(@^L=!aM-8l4d4N^hTGS5P5ypOXxf^xf2&)?_T`5~U(DTp z;rmgW-`t>V)sVMkdsN1&2ObA^1*R@6tlxIw(!?}(v&a=cLbvzYR*UU?zjbr0(bwZb zQI@N`H@v%}5X;CQpwsY2bxZEY;>Ie~pbcefOJ1+}7Sl@qqp5y;yF3z&ySDWvaV`X z|M-x&;PXuT`hB6Hp^6aX?>gw`DIm%ly3FnLZ)>+3B6Czkoo&zr6n zyJ@z0{;e&Umk-VNT&5BV8et3z2zUS*!rWbYEB)G<$akAlPfu%&K9rT6{T4Kg@_M>n zY}WVp_sd_ue*HT4)s>ao3Lm@8wkTY5c8=xc+}%k>xqiRde16T6B`SN??l#+3clYG| z7EWPMLGta%NnsXlh1EMg{^@%CB|rA`!`|4UrHrpir{8(-?ZOks*vFgua(*2z+hx7s z>%7*m-hame6+P_|6&Ej$)~~#|vpC)9pwK@tovn4AHCo!* zbAPN*eRDg1|JH5W%(QiMwoF#{w_136Tkh=J{z~cxrA)J?%(bh%)hiyozizLvUFWR6 zh3`(yulsdUHh%tU>Cb0o8o#sn<#XI=1H-1NFZ7&z&kAJMX`c)W-rJhSV|qLO*4DT0 zLSyI0TDe&FL{D4vpq9S=_M_e6?e>!eu3ova<7-yur-19pfq@h6 z?kYXaIc>?w`kMbgWvt82Y)z}&f45#{YsuN!=KP=>)9^+}hcjSV)CN8oiwEDj-O7#E zMQ&D0nyd2a(b4X^EZ(pG9Jeog)S?@|&!(nkz4xW)Kfjegy`~AGO-tYHj!52+c4o%I zl;sN-Dmony;+%Hw?ER*t)3kaIUiziK|Bq49-d#MUc`G@l?P4>nTW#(L8eJDy({sml zN9JX<=p6+M@9r!<-n;nH4E6VVPMkB?X5ZgYcv#M+;z7!BeTVqkuT!%lKW&?8G1tES zUhn)%KQwaR_s+E{eKkeedTZ_Pve~xPWfeSO0SBwTyqNep>dUcgP2I9LHyT0xJcnOk|5LxfxuQ+1pnj-Axa2f#khuq$9M&1> zgoA3|Cf0_S)QEMUB8`QcVdtq0F^ZtxbJ+Zak?HRJa&MQN{=TE?>#DOejgKGemwzw! z<;DC%_x&%tW!QO&ZKu-)1_psOc8>gYI+~h=O;0$d$thT-o)Xd4*DvSq)X~=7yfyoJ z*=_R|WfSJN9Qzl%U#Ig4*Fh!*hYi12d|&TRJ1g~_!QFqumxdFWmzT9}-&y;6TlI?+ z6UXh$EZm^Z;vPXA+rsFkC3&{{6GB5ncZTWqtNYK3aCB_6t^H+^^nbx^#-`Q;Mh1s_ z9Mg7v`S$kq^SIxv-u`^?I|>pjcK7x1sr%*T<_i91zpEE3B_;Ld$;rt&mb+3`CrmWg z(fPSiqm7~I>hqZWb$5CFu3N0iIM{XFNVSpcQj_Rj*$Yjs++qw2Pg)adzuztQYg;t^ z?(XvF+SNUUS%nBtI6i4jaDAMAFlhC(V`;MXb$9N{?x_1) zrLC*Wo4@+tTgPn>A2G0;Hs=q^&0TwTuC=+%{!nl4?&$T6A6;EtAAbM1jTuzcD7k1+zbc70j$FS4h_&W4k+)Si-R;_7q2>SVWIP6J$hF&})?ouU>a}ItcqEhfDrWGxC5lIGsq|MS`G zC3Y|wK2YU4J-+T{8^3(sWHsMS6P4X>tzN$`>v+Gs`d3DX+t-u?ia-4K_jm5+XJ^-a zeRXlM`w|y=2 zggHnf<@&nVV&>bcSFgTX4GCk14VRu=TO0lDVY~dT*X#GcTb5SwcI)*wbIb2-+_lRp zNM1k(oPE67o0^zFvlyjiWxKxr0vG)+7WX5CCL6ERmA4ly)~;Rq?UJ|t#9uI{S?&3L zuX8iD!+8gmGGrZqycyJ6TJ2bL{{5 zOnSCKBGXEK4l!_{u(bJ|SWb3!cf|7VcU(DOf+uh1@6T=LlkJKq|M0-Eyj&3$ikS1{l=ioe$K`KdSsDCxvcKKNgU#%>XBwv?ydV4S{{Hvxl(T)ew`!_uWo!}q^` za&od+?XMDP`?@`|P4E4$tvc~#j%D$kbnoeUTc169HUp8BzU)lM+;jEQ)6;L?*Z<$m zD{FOSZS>x%t+D%Rc82fsKX0d_qf>I;s^-&^&b9IT@A>j8&auH{df;WlevWCoSXFJNPM!Mg5V!u0(yXJe*3P{1{_gJdt5>f+{4TB+vw@XcY{zx; z{CitK#gP5(+TYuJ=U8mKZP=8@4h|89ze*AM`~PgJ{Uvx}EKSRh5!9Sg&0cVae$Za5(=HtkP@h%>{% zO`o5i-<{6?DzZgLr?cx`c5VLRkHNFe^S4da4p+;8x7afdE@I_oVEE;_p=H-AlXqU_ zg70o_ULGz#`SOh$8K$PD55G%&S?B(>&=W z=J9WW7KUF|CwPXq^~t=9TOIo1vcG*PfAzQR0;y7GMb_^YKi(_-d|vg6${jXY+1a`8 z?(BT{bL}3>O)B-srQm}5tls5C4VN5~H*j%tuidoi zQmJTH?eA|l+vV##Ucp@Ua>4N@FCLydB&=imPUjcyXM%>nOozuC zUcGvC=aQ%qh3JUD3cMH1$gb{GEYXA93mautUdsCxs7Gf+#Y0W_xvs)U=S&RFh0 z{}yQUH~Vbs*1Wq`(Ywpmg6ax*A!_9_+wAPwJ9=H+-ES}Z+i%^Ne0Z~y)M{qF0&K0fP`7Xq5FLYR>OG*$3d2UKf0 zU4qw9A{8GVI9^)1{X)cgN#nE|I|?7?e0+5D+LbFJ|9sBd%`r~z>y@{^H%%}0)w_Zo z*9&hU(ZAq4%j*3XWV>2hTg(3bDy@c=lhbsgpV?J^do$B_rqR(;r%%8A`1p8OSlBZ) z+g>$zVYR&JYJ6${Tk1^yPm5aM z0v)`t59SVcbZo4i(?1_l`Z~rHe_wXM}|>zNlmKJ&+%yY{nTCO1czK#BOh%J+gJWmP37G;FZw(AgLbZ8{q@zI zI3W>%H41yaT=Kql>C&UP{XZUcU%PqpCCjtB<@euCeSi7mbe+hg>Thp43mdl<51%eb6`3cR6hUO+3MBVJ=Z?(f2FtO_STR6AKQCa^FA`2 zC_nh?b^QOVsZ*!E`zoEkC(+c@blv>8^XhMS^-*6*YwjN6W%T zE!7t`N3AU}zrP{z@SKdZv(5X#g<(^pMnrvy;H^&G*!QdX%J$lCv;6i?dRcVFpZRCy zOeW1}NLbpG7IfXA@Oyn&=+#p7X>1-$pvEMR&B03w-!1c_GOq2PE&KPN)93r!E*$xv zTK0ch$|wCS9g`Zl;Gs#2-E73G(IM# z8};Ov#ZK z`_S z9+CpByU<}^kf>-14G%w_vItaEPT-$&H*;a@`|m%&9mMuO!fW>bd8&Wy-n~5enh%UC zc|h%(6QReRb`|kgYDVPm{W`7o=hNw+meP$jUg;!A=ix-?t|Hf+?R!LYY>Nx7t%>y8 zU}EdM22xJ#^a@|6@qNPdrl*Y_;NDo#RcWwdF&*&It$seY{0_8T3$s;h4W8Dv!@5h;v`^VS z*_yyBWpYB!wn}8% z_V)bv?Rw4(OuUV35E~dcOjx8A+zEciD4@f@#LMthj^Q8^l5R8q`F2~+&NknDU8)+T zW^!1dc!A;Rydr*%FmUArZa0aGi{D;8zb*?jxV)YbZuCK~W>Al7*6i7_ucxZXUR7Bf zwMDMM!Fd7WDch%V0&7eppiLv+%O6gv&)-qX%gg)jW(xz06cca2JI(K)D(+bP%B@~& z!U~#4Xd}n2*lR^^bEd2O-PjV=_eyBFwfUvnd>keYJD1;KPU%n3johSSGr2n6u=-oh z?TyLpzVq$wu3EkN@ay@u)oH=Yd^UdiR8;-v$Hu8sr|yh=x|nlU?70trzPF_Po87wa zr-kut!3?NbU)Cq={di0ooDU`_I_JE&uu#xD-?;qU9gc&$DnBoq9eK~W+}sb;OQ>_) zep*uNd+AoMxwmJ}d<&1OU*Q|BToucInSF58s#TjNO`7!KH+1l#I&RVY1-GC29Q^?< z;*+l3oH!9lU*v{6_Gz%rsj5xYeQ_7=Fjv=B-IyH)f8vUZJm=iHbxY|R_paDo8EU^L ztNVZZwdlBTW$n`E>DGAGYYu2sP%Z}Qh65trMVbS)}ovY9BUe-1FcRr0@%6OA(fhs>Z z;>9?o9Z9*lDHT-j+TzuWq@SZhB|Q_-X+(-9q!#bm%8;xJY1HuqvE3yYEC%Z z&VTpJt63Y0@9(RT#bl6MdqzhBu$7A+ThV)MPOyuWr6^U}`U9EWF0zS24z9B20W$+_n-+TVSr zpTGI`_V(DHSDh!6HeY>rcX#gfb+P9+n~4B!#ot5y~LX9tZ1KCl1(uXg*tQ&Y9y{r&m* z`Q6{&zLgn?7kO`Zp>)Q7r_+XCb{E#je!8#oC8n>5O=_Xox>Ki4HBL3We!lc%(ASU8 zMK8R4(p36wXHDPl=g))8I)5p*M{lq(Sy-B!yf}O6rK8SYT3cPb`ZKll^|$x+@m)W( zntMWe&)()3VI4K8vrr4B@cn-O?Z>^j2O8b}&lb{OuN@exwmt9ZzaNVOZf?1exqa!9 z-^arJqcaY5$1>lwHVO_mH8I&S&2j0FnC82s6BqtvC|U(}RWQU=sri5U4>YRH+O^9{J%xFp=xce=fDrLS z_|$``sdLYl(oIvCwI4k9~L9?gyIxUHd(1`JI9~G@Py8m;@ z-B_29@bGrmmD{#mTbdah9K597e!5ou>Z#Xfl|DZwo5cBKT0-sbx7$6%B`O;4?Vhch zQQj%{XDwIYTD|mha}@7hmTCU_;@#QmI@@$+fsy{hF1h=UPv-dg z_MTSXs&ed<@~PTSMgI?5|9^9C^}c=gmM%ONwo+&H@6dAYRZGJj3x;lAkyG7#=dW%= zmhTzXovbX{Or?zbemv?n%eta5+rEC^*;%Him-)_43tsNWt8egu#k+hn>s!5x)u9!u zc)otWvNCu{wbaXhkALeg6Un%;YSFZ{&FuVTxB062-US8Qc@!+3SdjToHJ@jK3eQ2W z{rh&7e|54r`}gwX3h|O%4Z-GXqWJcPY3Ki$&C=b?b;9#tP-EPdjETIE;efpTe?E0< zzcJXLZFBdm*p}TcE0n&ta3A#A&-&W)_2DT@y}MjhBIadeGP%95%-R_m>32nH^`~{+ z0$Ww)S(l&7ozGpGYaG3r;}l^~REyLFToG>;FBkzjfaJzt1cF4_x{l<(y5f3nV#Q&aZ!>8zq0&b~U$e z>BCh^wWse&)BMg5sS>d&Vq4zbEM@n;lH`phYTA+BY){HspWk(zkpK9TL#ys`@o?|xUcaGL)4l#uYmMV~02~50qH~+nEd;5Oo z{M=NzgG?;l4(IRYu*_l<&Ui8J?f!Q+|M~pR(E;n=5G&s-n8D_=U}5#Qgt%q3YdX7s zCwYcE6V!3oAfU6$o5O@z?ZO3HYbnq)!9k{7-fU^*oQ-PrtljS-PuVuHa)>p#mUA|; z9b8mBtqA0}tL85h4V%Q+j{6#Q>Z{swZY-8@_Lmfp=s(!4G18yF6LD#Tp0G5vhg)bn>$S)`h5GW~BUM>Hh-T!Gel15G`x zefueL!>65xl<#tWT4I|Ca^Ta&ixwRc(~FU)yMOWG!y_x#uGL-p_EPG}NvhwL+y7m8 zoLe;R$tU^$ALS)I!!OxdU!J=~{q1Mdw~NJ(3OH;iTEyzjH1%BB%S-p}y*pO+wPfL; z-^V{4=C@B#@%8-v#<%>^ye;RiZ|RRS@ski(vu4r0efPS$yAQvYmX=<-VS~Zjx0fDX zTj;N?;>;2=m_0}F-xNySl`CR&&MdcdR_FsZ}>HYov^GnSm8Jn)Y_gE)q zSL4w-{UN9kQvcHL*5q$LXMCHq+NbwFD@(RRsb>~jh1Q-kVHGU1{`i1BxqVChhX;+N zWo1G>f;t}-*K_?X<~hRk{==a~b*n#ovb^x5de`J{OKRW}k`tf<7)xz^-t;^1EadE9#wQAMz`^CS$WR~mvJ!^9H z>eY8Qet&b?a8wIg{(-IXz0c`%+w<2Ze;BsQb@*BlcwP z=a+BZl=x2#KRuz({nqpJTk71Oto&=uDnF%^ztav|Q^0@L_si^~_x4uD&U^74)Q`!V z&_CT@?$^Jy(c5=D*4}$%h8-pFcmJx8GfJrOv%yu5|6f%>3CnC1A}*Ylu_#y&eY#Cc)>b~Ses9;i)B5{MZm&|hq!iLw1KO}w{w^kb;mWU| zyths%XmyX)QrqfpJ95L;$H}gn(I;=8SN!Zu;nYB9XXhh7GwvHEAG`7A=jXeIp`CUA zem=i;@uHyJbXIP$8wZ=&W0$UZ-^2H5mBH6vudc2xdwh)d`>*Nob&794o4lROT6uC! zT>gy>2l-^JM5f(y+5hv|+1U^G1a1hQ&@1}n@zcrki=Us{`F3g<*Oj;repBS*>RuU7 z<&_P8ugbCi->=oxe;@bTv;9JN>&=agheJ7bUFvczF%QkmTv@$def#R7%dfqs>+L+h zE$61tI-jrCxgY%g_IC5x+2-xq%N{*S`VML>6rOiqYwaXD`Ck0aBGnqbU7JL9C4D(} zG=5{1t}|#=&)a)@tshk^sr|QfulSQ>-HUfagrc{atq4`Qn1Aj4o4pZ$*SD}6mJ`=!Se`HQjpCS~lc|Mg{M_4)(ruANr6?|+N`%ocVQ?q8DY zy-(f$Iz{8e^r=%@wKvbN`=yz7bfvcC-`vd1PK#;bhLzn>!HWW?H`oPlpZ1?C_%8Fs zsq6m7{1IKPl@(jKYSA^(#c|oPne*pozGtm0y|`kkOZSn>+@G?hUU+|TXP=bmskQo= znw~#qUp@86e|5#larHw{JAn$t1|5LVzKqwnt^pL>_6Y{`+aWj^?X4g(WUhh z-mAZ5PrJq3#QL}A`lAJ>4mkThU8NGTQibc&z0kSqm_jo%0#A3AfBpXZ{r=sxA)az} zH5M_3FT3)eote4rWK4K(-JUT1_ph$Jc3Zu2C8x}jqrbksj%{7J+B4Vv*7N*Z>aUl5 zijvaO(wf7gl{<;GQh)C2SFeP&Ejn^qowbbr>C{URj~`C?FVtK5`kLyQ{soS9C%#Yq z#%%nS@nDnAgVpQz6)^_JdfuCx6THl)aH`)Th4tFDp=w+=xE^t>`B&($ODg2(62_}p zM&HAI#Pwnd)-Pr*2o9bs{d<8|SorQ&mo7O3g?g=Ismy&GYnb*(&*qX{`DMGv3E{h{ z9~YFpyYsSX&9Un$zs_>Kt6Dp4mkTJsCd=0@-xl65J>vCmRo>1|${7>*KmA?u_kd5e z!v+QJfbvONogYCP1HBj{lLcKCDZCF|Al0$T@$xE{oSui zXIbtocpkAoa>Z)z+h=DO9+p*)t2%O8o&WBY1&vov)pKr)lH7akXvI%KlN0Rl?9H&Z zP3wN>>ad9dOKd?CauaUOAe{c2g3Hz4l|8)8_XVQbk^LRd-m8oEcB^;Q*FifsXM5W0YVt1O`CsPvU9iew zlbY%mHH|B4PCD_oUiG=aY#Z+pf6Dghyf3UQ+(jJkD-){3rhm{DL0C=^;%5mNb5>+|RH_T|P>$5&lRl2wj$mB^MqyLE}SSLm)=VXybjoc#4k)!XHI zt&MZ^m*_v8SLFYTsfpF{$lcxLv961}PReKOaSwap<@f$-&U@REtJzlH2$`q z$nI%bcc__7%JlZ@uf5XdchaR=R(&@$HQgH}Sf$IR?l-4k>U^=e>*tl|U#Z<(`uZBG z-Xn9Z%VSiFe|~zpq;c8Gl_x{3R8>{iz1*{7$BkwF^WSMLxwnSH^g~E6u-mg|y!y;{Bg(Ak%JBL%riWiuA6 znpeG?>tgkW4dpy%YmFy-ZvC?KPVhU=c!v!N$AA2MKEL?ew3N^p@iiY=e>(jNdUsO% zlDL4*3B3~c-n{s8Tb~ug*1j^!?!B!5j^Ce7ps0v+_m`KvB>zHBVZG=48pT@8?@zcv zsSVVsKuyFXZ5zVS3SL(O$~tgkAW9$&l@!tc@*1WWD&7Bl^at7O>FVdQ&MBb@0Jrz@ A9{>OV diff --git a/benchmark/gcc_e_heavy_payload.png b/benchmark/gcc_e_heavy_payload.png new file mode 100644 index 0000000000000000000000000000000000000000..59cb68c686b4ad48ae2321b5ab4b53d6950f3fd9 GIT binary patch literal 11898 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 R5Ca1PgQu&X%Q~loCIIr&PwxN# literal 0 HcmV?d00001 diff --git a/benchmark/gcc_e_heavy_payload_2.png b/benchmark/gcc_e_heavy_payload_2.png deleted file mode 100644 index 4ed68cf091d169281397325dfe724fe69403a20b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16645 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�dwnHb=3eiY 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 diff --git a/benchmark/gcc_e_heavy_payload_50.png b/benchmark/gcc_e_heavy_payload_50.png deleted file mode 100644 index c97ac2ad094c1c0c5ec5a0874c537abcba252f1c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16135 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 WFT&Y-L)#TVmV3JTxvX8DQBd|v&2PvyCj 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 diff --git a/benchmark/gcc_e_int.png b/benchmark/gcc_e_int.png new file mode 100644 index 0000000000000000000000000000000000000000..a4e66d8b88cd80a4040146953adab8ea155e0879 GIT binary patch literal 11372 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 Wxv6$GCm9$R7(8A5T-G@yGywo#Ei@+p literal 0 HcmV?d00001 diff --git a/benchmark/gcc_e_system_error.png b/benchmark/gcc_e_system_error.png new file mode 100644 index 0000000000000000000000000000000000000000..7f70a1a1cf517d32e50f2f861a3b4717ac087cd6 GIT binary patch literal 11946 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 literal 0 HcmV?d00001 diff --git a/benchmark/gcc_e_system_error_2.png b/benchmark/gcc_e_system_error_2.png deleted file mode 100644 index 96268c221abfd43921bfaa8ddaf5964892d33f23..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15605 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 diff --git a/benchmark/gcc_e_system_error_98.png b/benchmark/gcc_e_system_error_98.png deleted file mode 100644 index a11b4381594f45f5e1941f710bb1e31c0833d3c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16377 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