Skip to content

Improve error messages#522

Merged
AlexInLog merged 19 commits into
v2from
improve_error_messages
Feb 15, 2024
Merged

Improve error messages#522
AlexInLog merged 19 commits into
v2from
improve_error_messages

Conversation

@AlexInLog

Copy link
Copy Markdown
Owner

No description provided.

Comment thread src/rpp/rpp/operators/distinct.hpp Outdated
@AlexInLog AlexInLog force-pushed the improve_error_messages branch from 683663d to e2dbfce Compare February 13, 2024 21:03
@AlexInLog

Copy link
Copy Markdown
Owner Author

@AlexInLog AlexInLog force-pushed the improve_error_messages branch from e2dbfce to acc44b6 Compare February 14, 2024 15:24
@AlexInLog AlexInLog force-pushed the improve_error_messages branch from 0102235 to 377444d Compare February 15, 2024 07:13
@github-actions

github-actions Bot commented Feb 15, 2024

Copy link
Copy Markdown
Contributor

BENCHMARK RESULTS (AUTOGENERATED)

ci-ubuntu-gcc

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 307.90 ns 2.16 ns 2.16 ns 1.00
Subscribe empty callbacks to empty observable via pipe operator 308.78 ns 2.16 ns 2.16 ns 1.00

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 697.74 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 1019.57 ns 4.63 ns 5.25 ns 0.88
concat_as_source of just(1 immediate) create + subscribe 2219.06 ns 121.92 ns 109.20 ns 1.12
defer from array of 1 - defer + create + subscribe + immediate 734.31 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 2097.02 ns 58.00 ns 58.00 ns 1.00
interval - interval + take(3) + subscribe + current_thread 3022.31 ns 32.11 ns 32.14 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1125.19 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 874.41 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1067.48 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 895.37 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1271.68 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 950.10 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 1128.75 ns 18.52 ns 18.53 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 263.27 ns 2.16 ns 2.16 ns 1.00
current_thread scheduler create worker + schedule 365.13 ns 6.48 ns 7.11 ns 0.91
current_thread scheduler create worker + schedule + recursive schedule 807.58 ns 64.45 ns 64.14 ns 1.00

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 880.77 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 888.52 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 2346.32 ns 157.46 ns 158.97 ns 0.99
immediate_just+buffer(2)+subscribe 1532.10 ns 14.82 ns 14.21 ns 1.04
immediate_just+window(2)+subscribe + subscsribe inner 2362.36 ns 1027.52 ns 1010.00 ns 1.02

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 858.04 ns - - 0.00
immediate_just+take_while(true)+subscribe 884.82 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1997.14 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 3398.21 ns 168.92 ns 178.37 ns 0.95
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3632.18 ns 159.78 ns 167.12 ns 0.96
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 139.46 ns 134.39 ns 1.04
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 3516.15 ns 989.18 ns 965.80 ns 1.02

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 34.58 ns 11.71 ns 11.71 ns 1.00

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1391.09 ns 13.89 ns 14.19 ns 0.98
basic sample with immediate scheduler 1415.67 ns 5.55 ns 5.55 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 910.01 ns 0.31 ns 0.31 ns 1.00

ci-macos

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 1059.36 ns 5.37 ns 3.83 ns 1.40
Subscribe empty callbacks to empty observable via pipe operator 1044.16 ns 5.36 ns 3.86 ns 1.39

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 2177.60 ns 0.43 ns 0.23 ns 1.86
from array of 1 - create + subscribe + current_thread 2808.74 ns 8.89 ns 25.60 ns 0.35
concat_as_source of just(1 immediate) create + subscribe 6515.75 ns 393.83 ns 328.38 ns 1.20
defer from array of 1 - defer + create + subscribe + immediate 2245.63 ns 0.27 ns 0.23 ns 1.17
interval - interval + take(3) + subscribe + immediate 6078.53 ns 91.28 ns 114.60 ns 0.80
interval - interval + take(3) + subscribe + current_thread 7637.29 ns 61.16 ns 107.41 ns 0.57

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 3442.55 ns 0.28 ns 0.23 ns 1.22
immediate_just+filter(true)+subscribe 2466.97 ns 0.28 ns 0.23 ns 1.19
immediate_just(1,2)+skip(1)+subscribe 3297.42 ns 0.28 ns 0.22 ns 1.25
immediate_just(1,1,2)+distinct_until_changed()+subscribe 2477.41 ns 0.56 ns 0.45 ns 1.25
immediate_just(1,2)+first()+subscribe 3883.35 ns 0.28 ns 0.23 ns 1.19
immediate_just(1,2)+last()+subscribe 2838.94 ns 0.28 ns 0.23 ns 1.20
immediate_just+take_last(1)+subscribe 3629.80 ns 71.38 ns 71.54 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 1111.34 ns 6.30 ns 4.02 ns 1.56
current_thread scheduler create worker + schedule 1477.33 ns 31.08 ns 38.71 ns 0.80
current_thread scheduler create worker + schedule + recursive schedule 2354.23 ns 167.19 ns 224.30 ns 0.75

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 2481.29 ns 0.28 ns 0.23 ns 1.22
immediate_just+scan(10, std::plus)+subscribe 2798.04 ns 0.56 ns 0.46 ns 1.22
immediate_just+flat_map(immediate_just(v*2))+subscribe 6337.27 ns 476.96 ns 404.87 ns 1.18
immediate_just+buffer(2)+subscribe 2963.23 ns 69.56 ns 67.53 ns 1.03
immediate_just+window(2)+subscribe + subscsribe inner 6584.73 ns 2630.38 ns 2133.30 ns 1.23

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 2523.18 ns - - 0.00
immediate_just+take_while(true)+subscribe 2546.37 ns 0.28 ns 0.23 ns 1.22

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 5950.57 ns 0.28 ns 0.22 ns 1.26

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 9085.02 ns 595.09 ns 453.69 ns 1.31
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 10145.79 ns 519.79 ns 447.52 ns 1.16
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 530.62 ns 475.73 ns 1.12
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 9845.38 ns 2327.83 ns 1862.83 ns 1.25

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 99.36 ns 62.31 ns 47.18 ns 1.32

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 3431.44 ns 84.16 ns 107.81 ns 0.78
basic sample with immediate scheduler 3395.88 ns 5.86 ns 14.33 ns 0.41

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 2921.96 ns 0.28 ns 0.22 ns 1.26

ci-ubuntu-clang

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 267.10 ns 1.54 ns 1.58 ns 0.98
Subscribe empty callbacks to empty observable via pipe operator 266.26 ns 1.54 ns 1.57 ns 0.99

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 554.08 ns 0.31 ns 0.31 ns 1.00
from array of 1 - create + subscribe + current_thread 780.99 ns 5.55 ns 5.56 ns 1.00
concat_as_source of just(1 immediate) create + subscribe 1904.03 ns 111.68 ns 112.03 ns 1.00
defer from array of 1 - defer + create + subscribe + immediate 587.77 ns 0.31 ns 0.31 ns 1.00
interval - interval + take(3) + subscribe + immediate 1512.68 ns 57.09 ns 57.13 ns 1.00
interval - interval + take(3) + subscribe + current_thread 2089.85 ns 30.88 ns 30.88 ns 1.00

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 943.56 ns 0.31 ns 0.31 ns 1.00
immediate_just+filter(true)+subscribe 726.68 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 845.44 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 690.62 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+first()+subscribe 1100.98 ns 0.31 ns 0.31 ns 1.00
immediate_just(1,2)+last()+subscribe 755.27 ns 0.31 ns 0.31 ns 1.00
immediate_just+take_last(1)+subscribe 971.13 ns 0.31 ns 0.31 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 195.03 ns 1.54 ns 1.57 ns 0.99
current_thread scheduler create worker + schedule 305.42 ns 5.57 ns 5.56 ns 1.00
current_thread scheduler create worker + schedule + recursive schedule 634.25 ns 59.03 ns 60.00 ns 0.98

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 674.42 ns 0.31 ns 0.31 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 714.52 ns 0.31 ns 0.31 ns 1.00
immediate_just+flat_map(immediate_just(v*2))+subscribe 1809.93 ns 119.70 ns 119.49 ns 1.00
immediate_just+buffer(2)+subscribe 1347.46 ns 14.20 ns 15.13 ns 0.94
immediate_just+window(2)+subscribe + subscsribe inner 2206.20 ns 764.10 ns 762.23 ns 1.00

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 658.79 ns - - 0.00
immediate_just+take_while(true)+subscribe 669.84 ns 0.31 ns 0.31 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 1587.56 ns 0.31 ns 0.31 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 2511.79 ns 124.66 ns 124.38 ns 1.00
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 3041.05 ns 121.43 ns 121.62 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 112.38 ns 114.34 ns 0.98
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 2697.88 ns 725.39 ns 723.84 ns 1.00

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 24.10 ns 12.65 ns 13.57 ns 0.93

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1064.59 ns 14.19 ns 14.19 ns 1.00
basic sample with immediate scheduler 1039.10 ns 6.17 ns 6.17 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 743.60 ns 0.31 ns 0.31 ns 1.00

ci-windows

General

name rxcpp rpp prev rpp ratio
Subscribe empty callbacks to empty observable 579.03 ns 4.94 ns 4.01 ns 1.23
Subscribe empty callbacks to empty observable via pipe operator 588.97 ns 4.94 ns 4.01 ns 1.23

Sources

name rxcpp rpp prev rpp ratio
from array of 1 - create + subscribe + immediate 1229.05 ns 4.93 ns 4.93 ns 1.00
from array of 1 - create + subscribe + current_thread 1496.97 ns 20.05 ns 20.40 ns 0.98
concat_as_source of just(1 immediate) create + subscribe 4862.60 ns 171.28 ns 172.27 ns 0.99
defer from array of 1 - defer + create + subscribe + immediate 1259.40 ns 4.93 ns 4.93 ns 1.00
interval - interval + take(3) + subscribe + immediate 3180.67 ns 131.76 ns 129.62 ns 1.02
interval - interval + take(3) + subscribe + current_thread 3615.99 ns 59.52 ns 60.75 ns 0.98

Filtering Operators

name rxcpp rpp prev rpp ratio
immediate_just+take(1)+subscribe 1879.84 ns 12.87 ns 12.87 ns 1.00
immediate_just+filter(true)+subscribe 1369.54 ns 12.40 ns 12.40 ns 1.00
immediate_just(1,2)+skip(1)+subscribe 1799.22 ns 13.05 ns 13.05 ns 1.00
immediate_just(1,1,2)+distinct_until_changed()+subscribe 1403.68 ns 15.82 ns 15.94 ns 0.99
immediate_just(1,2)+first()+subscribe 2149.16 ns 12.64 ns 12.96 ns 0.97
immediate_just(1,2)+last()+subscribe 1538.40 ns 14.10 ns 14.13 ns 1.00
immediate_just+take_last(1)+subscribe 2101.00 ns 59.54 ns 59.42 ns 1.00

Schedulers

name rxcpp rpp prev rpp ratio
immediate scheduler create worker + schedule 482.03 ns 7.06 ns 7.29 ns 0.97
current_thread scheduler create worker + schedule 658.61 ns 17.59 ns 17.71 ns 0.99
current_thread scheduler create worker + schedule + recursive schedule 1383.62 ns 110.53 ns 109.88 ns 1.01

Transforming Operators

name rxcpp rpp prev rpp ratio
immediate_just+map(v*2)+subscribe 1360.95 ns 12.32 ns 12.35 ns 1.00
immediate_just+scan(10, std::plus)+subscribe 1480.45 ns 21.58 ns 21.27 ns 1.01
immediate_just+flat_map(immediate_just(v*2))+subscribe 3961.45 ns 234.17 ns 227.60 ns 1.03
immediate_just+buffer(2)+subscribe 2412.00 ns 61.13 ns 61.17 ns 1.00
immediate_just+window(2)+subscribe + subscsribe inner 4166.79 ns 1157.17 ns 1134.11 ns 1.02

Conditional Operators

name rxcpp rpp prev rpp ratio
immediate_just+take_while(false)+subscribe 1362.15 ns 11.47 ns 11.48 ns 1.00
immediate_just+take_while(true)+subscribe 1379.92 ns 12.37 ns 12.38 ns 1.00

Utility Operators

name rxcpp rpp prev rpp ratio
immediate_just(1)+subscribe_on(immediate)+subscribe 3271.06 ns 7.40 ns 7.40 ns 1.00

Combining Operators

name rxcpp rpp prev rpp ratio
immediate_just(immediate_just(1), immediate_just(1)) + merge() + subscribe 5498.37 ns 249.27 ns 243.73 ns 1.02
immediate_just(1) + merge_with(immediate_just(2)) + subscribe 5840.00 ns 238.37 ns 239.46 ns 1.00
immediate_just(1) + with_latest_from(immediate_just(2)) + subscribe - 226.80 ns 223.50 ns 1.01
immediate_just(immediate_just(1),immediate_just(1)) + switch_on_next() + subscribe 6014.43 ns 949.82 ns 951.04 ns 1.00

Subjects

name rxcpp rpp prev rpp ratio
publish_subject with 1 observer - on_next 36.38 ns 25.28 ns 44.62 ns 0.57

Scenarios

name rxcpp rpp prev rpp ratio
basic sample 1909.14 ns 59.77 ns 59.23 ns 1.01
basic sample with immediate scheduler 1903.14 ns 37.03 ns 37.03 ns 1.00

Aggregating Operators

name rxcpp rpp prev rpp ratio
immediate_just+reduce(10, std::plus)+subscribe 1509.47 ns 19.97 ns 22.17 ns 0.90

@AlexInLog AlexInLog force-pushed the improve_error_messages branch from b0e1b18 to 564fab2 Compare February 15, 2024 12:00
@sonarqubecloud

Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
6.8% Duplication on New Code (required ≤ 3%)

See analysis details on SonarCloud

@AlexInLog AlexInLog marked this pull request as ready for review February 15, 2024 14:30
@AlexInLog AlexInLog merged commit 96d4303 into v2 Feb 15, 2024
@AlexInLog AlexInLog deleted the improve_error_messages branch February 15, 2024 14:30
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants