Skip to content

Various misc correctness fixes throughout the codebase#2598

Merged
jviotti merged 4 commits into
mainfrom
misc-fixes-2
Jul 5, 2026
Merged

Various misc correctness fixes throughout the codebase#2598
jviotti merged 4 commits into
mainfrom
misc-fixes-2

Conversation

@jviotti

@jviotti jviotti commented Jul 5, 2026

Copy link
Copy Markdown
Member

Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Review in cubic

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@augmentcode

augmentcode Bot commented Jul 5, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR applies a set of targeted correctness fixes across core parsing/encoding utilities, primarily addressing edge cases that could previously cause UB, out-of-bounds access, or spec-noncompliant acceptance.

Changes:

  • crypto_verify_other: add a capacity static_assert to prevent bignum modular-reduction indexing past fixed storage.
  • json: make string_view-based parsing reject trailing non-whitespace and report the offending character’s line/column.
  • json_value: prevent signed integer UB on +/- by promoting overflowing operations to Decimal.
  • regex: treat out-of-order bounded quantifiers ({m,n} with m>n) as invalid per ECMA-262.
  • time: enforce RFC 9110 case sensitivity for day/month abbreviations in HTTP-date parsing.
  • unicode: avoid reading past the end on truncated UTF-8 multibyte sequences.
  • uritemplate: correct empty-value emission rules for associative arrays (notably for ; vs query operators).
  • yaml / decimal: avoid UB from out-of-range casts and prevent exponent overflow while stripping trailing zeros.

Technical Notes: Adds focused tests covering trailing JSON content, integer overflow promotion, quantifier validation, HTTP-date case sensitivity, UTF-8 truncation safety, URI-template empty-value behavior, and YAML float range handling.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. No suggestions at this time.

Comment augment review to trigger a new review at any time.

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

2 issues found across 23 files

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread test/unicode/unicode_utf8_to_wide_test.cc
Comment thread src/core/json/json.cc Outdated

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 4872e82 Previous: e6abd0a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.7573656794409434 ns/iter 1.6554248389409572 ns/iter 1.06
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0458050713975253 ns/iter 1.6271248043111448 ns/iter 1.26
Regex_Period_Asterisk 1.650663724277785 ns/iter 1.6482336068304781 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 1.6975163990855267 ns/iter 1.583979650368851 ns/iter 1.07
Regex_Period_Plus 2.049980971361748 ns/iter 1.9022040128727222 ns/iter 1.08
Regex_Period 2.0137156030923955 ns/iter 1.941460837496758 ns/iter 1.04
Regex_Caret_Period_Plus_Dollar 2.0406007754672446 ns/iter 1.942425808732202 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 1.9662721944512447 ns/iter 1.8829825072176833 ns/iter 1.04
Regex_Caret_Period_Asterisk_Dollar 1.7089687178058472 ns/iter 1.5740362281739178 ns/iter 1.09
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7202238351132106 ns/iter 1.57226019409202 ns/iter 1.09
Regex_Caret_X_Hyphen 5.880088988285812 ns/iter 5.657157067822035 ns/iter 1.04
Regex_Period_Md_Dollar 17.389106088390434 ns/iter 15.76885508260282 ns/iter 1.10
Regex_Caret_Slash_Period_Asterisk 4.235271837763638 ns/iter 4.361504244638122 ns/iter 0.97
Regex_Caret_Period_Range_Dollar 2.0389996836042257 ns/iter 1.907650879300913 ns/iter 1.07
Regex_Nested_Backtrack 24.14686697066755 ns/iter 23.218906015938238 ns/iter 1.04
JSON_Array_Of_Objects_Unique 345.61808482792026 ns/iter 315.63235633915843 ns/iter 1.10
JSON_Parse_1 3612.8257610094806 ns/iter 5073.867306537666 ns/iter 0.71
JSON_Parse_Real 5026.411670000925 ns/iter 5813.8991293995705 ns/iter 0.86
JSON_Parse_Decimal 5778.670523006545 ns/iter 6801.472524080591 ns/iter 0.85
JSON_Parse_Schema_ISO_Language 3021159.1928248876 ns/iter 3098138.768240257 ns/iter 0.98
JSON_Parse_Integer 3094.680524069881 ns/iter 3962.6315635807405 ns/iter 0.78
JSON_Parse_String_NonSSO_Plain 3567.0249401050864 ns/iter 5169.264956817144 ns/iter 0.69
JSON_Parse_String_SSO_Plain 1697.0644486546908 ns/iter 2151.3448295019143 ns/iter 0.79
JSON_Parse_String_Escape_Heavy 16428.258197988333 ns/iter 17921.92366959409 ns/iter 0.92
JSON_Parse_Object_Short_Keys 5165.587893765171 ns/iter 6563.844645395261 ns/iter 0.79
JSON_Parse_Object_Scalar_Properties 2689.216499219642 ns/iter 3286.039111371313 ns/iter 0.82
JSON_Parse_Object_Array_Properties 3460.376048245156 ns/iter 5028.146319044589 ns/iter 0.69
JSON_Parse_Object_Object_Properties 3443.1384061220747 ns/iter 5191.3491780604345 ns/iter 0.66
JSON_Parse_Nested_Containers 28152.090393453072 ns/iter 40893.62994483349 ns/iter 0.69
JSON_From_String_Copy 23.38547642490449 ns/iter 22.018367986044364 ns/iter 1.06
JSON_From_String_Temporary 19.519927098332158 ns/iter 17.729653665017725 ns/iter 1.10
JSON_Number_To_Double 33.31996120135197 ns/iter 29.81961086432971 ns/iter 1.12
JSON_Object_At_Last_Key/8 4.07872599727805 ns/iter 3.4520605309183527 ns/iter 1.18
JSON_Object_At_Last_Key/32 12.079595652172662 ns/iter 11.004864404295178 ns/iter 1.10
JSON_Object_At_Last_Key/128 53.652717035399725 ns/iter 50.30316908064923 ns/iter 1.07
JSON_Object_At_Last_Key/512 188.06250889992378 ns/iter 181.40226076767422 ns/iter 1.04
JSON_Fast_Hash_Helm_Chart_Lock 61.1674497775287 ns/iter 54.56030877722223 ns/iter 1.12
JSON_Equality_Helm_Chart_Lock 130.3147034612543 ns/iter 124.48002487340237 ns/iter 1.05
JSON_Divisible_By_Decimal 174.64051524839613 ns/iter 165.08395959849864 ns/iter 1.06
JSON_String_Equal/10 6.578626191579446 ns/iter 6.290286294822081 ns/iter 1.05
JSON_String_Equal/100 6.342927429186961 ns/iter 5.992226128104041 ns/iter 1.06
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7785741379001042 ns/iter 0.32092986225939146 ns/iter 2.43
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.165848088283434 ns/iter 3.0154552129767365 ns/iter 1.05
JSON_String_Fast_Hash/10 2.4185925474718033 ns/iter 2.2095696873754886 ns/iter 1.09
JSON_String_Fast_Hash/100 1.9905713841546169 ns/iter 1.8896558202386373 ns/iter 1.05
JSON_String_Key_Hash/10 1.3419779592354946 ns/iter 1.5702343897363924 ns/iter 0.85
JSON_String_Key_Hash/100 2.156851772295349 ns/iter 1.9435133921183048 ns/iter 1.11
JSON_Object_Defines_Miss_Same_Length 2.3185042537831393 ns/iter 2.5843258194810748 ns/iter 0.90
JSON_Object_Defines_Miss_Too_Small 2.379529513372944 ns/iter 2.5115905958721285 ns/iter 0.95
JSON_Object_Defines_Miss_Too_Large 2.297970117178111 ns/iter 2.527394548347955 ns/iter 0.91
Pointer_Object_Traverse 13.794449792711932 ns/iter 17.132057532609405 ns/iter 0.81
Pointer_Object_Try_Traverse 23.353805333013554 ns/iter 16.54656104995878 ns/iter 1.41
Pointer_Push_Back_Pointer_To_Weak_Pointer 158.8014124258732 ns/iter 151.30020863583692 ns/iter 1.05
Pointer_Walker_Schema_ISO_Language 2491933.6595743555 ns/iter 1401787.819277051 ns/iter 1.78
Pointer_Maybe_Tracked_Deeply_Nested/0 979362.9579375812 ns/iter 935679.2730923517 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/1 1379676.7418033946 ns/iter 960817.3624510491 ns/iter 1.44
Pointer_Position_Tracker_Get_Deeply_Nested 356.9346845523741 ns/iter 309.2066246989031 ns/iter 1.15
URITemplateRouter_Create 22094.32072308396 ns/iter 21431.603411775577 ns/iter 1.03
URITemplateRouter_Match 163.8737329967594 ns/iter 160.75831615355972 ns/iter 1.02
URITemplateRouter_Match_BasePath 190.0466920358362 ns/iter 184.81509126905084 ns/iter 1.03
URITemplateRouterView_Restore 8995.547862454065 ns/iter 9328.549725450715 ns/iter 0.96
URITemplateRouterView_Match 130.40245628125035 ns/iter 127.75843162934224 ns/iter 1.02
URITemplateRouterView_Match_BasePath 144.8004977563447 ns/iter 145.3887548401865 ns/iter 1.00
URITemplateRouterView_Arguments 405.86536521386586 ns/iter 512.9986331949275 ns/iter 0.79
JSONL_Parse_Large 12162061.403510928 ns/iter 10626200.98529391 ns/iter 1.14
JSONL_Parse_Large_GZIP 12815235.124999648 ns/iter 11054777.573529944 ns/iter 1.16
HTML_Build_Table_100000 67844674.18180446 ns/iter 33278055.571432084 ns/iter 2.04
HTML_Render_Table_100000 2723174.678322352 ns/iter 1426182.7192623434 ns/iter 1.91
GZIP_Compress_ISO_Language_Set_3_Locations 27073370.192309856 ns/iter 24208877.9642862 ns/iter 1.12
GZIP_Decompress_ISO_Language_Set_3_Locations 5760463.715516992 ns/iter 2932899.159663937 ns/iter 1.96
GZIP_Compress_ISO_Language_Set_3_Schema 1492070.825606969 ns/iter 1492823.1474749453 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 275451.0555776234 ns/iter 249692.25925929134 ns/iter 1.10
JOSE_VerifySignature_RS256 20847.80547698047 ns/iter 20370.82308914862 ns/iter 1.02
JOSE_VerifySignature_ES512 981607.8629032085 ns/iter 1039482.8130564023 ns/iter 0.94

This comment was automatically generated by workflow using github-action-benchmark.

jviotti added 2 commits July 5, 2026 20:05
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 4872e82 Previous: e6abd0a Ratio
JOSE_VerifySignature_RS256 22155.95179572288 ns/iter 22517.225951804983 ns/iter 0.98
JOSE_VerifySignature_ES512 579710.7099173566 ns/iter 575827.7648026827 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Locations 44623334.1249993 ns/iter 36658893.31579078 ns/iter 1.22
GZIP_Decompress_ISO_Language_Set_3_Locations 4516832.75974063 ns/iter 4172601.660714225 ns/iter 1.08
GZIP_Compress_ISO_Language_Set_3_Schema 2259556.048387191 ns/iter 2043269.2982458773 ns/iter 1.11
GZIP_Decompress_ISO_Language_Set_3_Schema 380142.70501635363 ns/iter 380944.3208265164 ns/iter 1.00
HTML_Build_Table_100000 61238038.72726926 ns/iter 59085478.99999424 ns/iter 1.04
HTML_Render_Table_100000 2088778.7091411091 ns/iter 1767495.4025315405 ns/iter 1.18
JSONL_Parse_Large 13018415.61111048 ns/iter 12829791.381816655 ns/iter 1.01
JSONL_Parse_Large_GZIP 14371357.571427992 ns/iter 14271748.795919143 ns/iter 1.01
URITemplateRouter_Create 31376.911592321314 ns/iter 30354.985219119404 ns/iter 1.03
URITemplateRouter_Match 149.46186765206593 ns/iter 153.6877273553448 ns/iter 0.97
URITemplateRouter_Match_BasePath 170.08066236261055 ns/iter 179.27373341232698 ns/iter 0.95
URITemplateRouterView_Restore 8367.242971792813 ns/iter 8372.014218905926 ns/iter 1.00
URITemplateRouterView_Match 123.77679020155435 ns/iter 124.03749067914336 ns/iter 1.00
URITemplateRouterView_Match_BasePath 144.1130289592876 ns/iter 142.92875792528665 ns/iter 1.01
URITemplateRouterView_Arguments 470.2899519794398 ns/iter 472.77091499709155 ns/iter 0.99
Pointer_Object_Traverse 29.831742048114805 ns/iter 29.970647584069297 ns/iter 1.00
Pointer_Object_Try_Traverse 22.459881155545343 ns/iter 20.23997923054322 ns/iter 1.11
Pointer_Push_Back_Pointer_To_Weak_Pointer 158.44415604755721 ns/iter 151.5332266909758 ns/iter 1.05
Pointer_Walker_Schema_ISO_Language 2395569.6174698183 ns/iter 1842888.9236842773 ns/iter 1.30
Pointer_Maybe_Tracked_Deeply_Nested/0 1880936.3908356887 ns/iter 1523132.0936819946 ns/iter 1.23
Pointer_Maybe_Tracked_Deeply_Nested/1 1704162.9829267126 ns/iter 1657320.287735787 ns/iter 1.03
Pointer_Position_Tracker_Get_Deeply_Nested 525.1215373017117 ns/iter 556.9940202688807 ns/iter 0.94
JSON_Array_Of_Objects_Unique 408.6520925223343 ns/iter 394.5438349380314 ns/iter 1.04
JSON_Parse_1 9605.07984843076 ns/iter 7556.395105085075 ns/iter 1.27
JSON_Parse_Real 7791.769674067947 ns/iter 6715.532996626337 ns/iter 1.16
JSON_Parse_Decimal 12539.026243339784 ns/iter 11218.132745633317 ns/iter 1.12
JSON_Parse_Schema_ISO_Language 6440830.759260052 ns/iter 5137408.882352943 ns/iter 1.25
JSON_Parse_Integer 6127.763526078804 ns/iter 4856.591047657523 ns/iter 1.26
JSON_Parse_String_NonSSO_Plain 12060.790498845263 ns/iter 8575.356818625856 ns/iter 1.41
JSON_Parse_String_SSO_Plain 4836.139718842035 ns/iter 3907.1009368221266 ns/iter 1.24
JSON_Parse_String_Escape_Heavy 24228.141702794677 ns/iter 21098.11022110318 ns/iter 1.15
JSON_Parse_Object_Short_Keys 14165.839787656927 ns/iter 14007.964015832455 ns/iter 1.01
JSON_Parse_Object_Scalar_Properties 7244.694209348722 ns/iter 5795.311058898094 ns/iter 1.25
JSON_Parse_Object_Array_Properties 12349.348990915834 ns/iter 8897.671210690858 ns/iter 1.39
JSON_Parse_Object_Object_Properties 12697.479348342435 ns/iter 9254.253385728865 ns/iter 1.37
JSON_Parse_Nested_Containers 99831.79264118093 ns/iter 72869.9072197295 ns/iter 1.37
JSON_From_String_Copy 18.85970182195115 ns/iter 18.23804085329915 ns/iter 1.03
JSON_From_String_Temporary 15.358614104742124 ns/iter 15.445974826396768 ns/iter 0.99
JSON_Number_To_Double 20.5813748980065 ns/iter 22.126480717957076 ns/iter 0.93
JSON_Object_At_Last_Key/8 8.111293313666804 ns/iter 5.920760639663848 ns/iter 1.37
JSON_Object_At_Last_Key/32 31.474778925553057 ns/iter 21.51589578625362 ns/iter 1.46
JSON_Object_At_Last_Key/128 126.85222938218105 ns/iter 87.24400655329859 ns/iter 1.45
JSON_Object_At_Last_Key/512 520.064769628591 ns/iter 425.7008760791529 ns/iter 1.22
JSON_Fast_Hash_Helm_Chart_Lock 69.17064013959295 ns/iter 65.45673968249484 ns/iter 1.06
JSON_Equality_Helm_Chart_Lock 154.11713918984307 ns/iter 157.15167266238262 ns/iter 0.98
JSON_Divisible_By_Decimal 247.6139524061965 ns/iter 237.5234897871867 ns/iter 1.04
JSON_String_Equal/10 5.6872740665822334 ns/iter 6.353592734945065 ns/iter 0.90
JSON_String_Equal/100 6.317826756455701 ns/iter 6.975451470710402 ns/iter 0.91
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6233719724018338 ns/iter 0.7525769134803659 ns/iter 0.83
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.194454443797206 ns/iter 25.193801157449766 ns/iter 1.00
JSON_String_Fast_Hash/10 1.259271972918875 ns/iter 0.9334536981245901 ns/iter 1.35
JSON_String_Fast_Hash/100 1.2464484044907838 ns/iter 0.9345526362725529 ns/iter 1.33
JSON_String_Key_Hash/10 1.247273525054044 ns/iter 1.5589480094846724 ns/iter 0.80
JSON_String_Key_Hash/100 12.444872136604632 ns/iter 12.439374669269656 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.1142064812057746 ns/iter 3.4251348626668086 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Small 3.1152215272385413 ns/iter 3.4335634515223434 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 3.428576706253981 ns/iter 3.1194934601032904 ns/iter 1.10
Regex_Lower_S_Or_Upper_S_Asterisk 0.9348852842563069 ns/iter 0.6230594577941487 ns/iter 1.50
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.6237684496255486 ns/iter 0.623033229132352 ns/iter 1.00
Regex_Period_Asterisk 0.623300623430078 ns/iter 0.9342282151864186 ns/iter 0.67
Regex_Group_Period_Asterisk_Group 0.9340501686671001 ns/iter 0.9389030420995528 ns/iter 0.99
Regex_Period_Plus 0.9346739860110138 ns/iter 0.6231875263274763 ns/iter 1.50
Regex_Period 0.6275896245930632 ns/iter 0.6250608272200736 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.6229769906087719 ns/iter 0.9297528396667032 ns/iter 0.67
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9351657166104259 ns/iter 0.9341882375809006 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 0.93448845151362 ns/iter 0.6234877286902908 ns/iter 1.50
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.6229442956864225 ns/iter 0.6217068602282902 ns/iter 1.00
Regex_Caret_X_Hyphen 4.0504881763004805 ns/iter 4.053700620096808 ns/iter 1.00
Regex_Period_Md_Dollar 29.846611286701403 ns/iter 29.061933510344016 ns/iter 1.03
Regex_Caret_Slash_Period_Asterisk 4.360852038003906 ns/iter 4.670248956540023 ns/iter 0.93
Regex_Caret_Period_Range_Dollar 0.7785982609570659 ns/iter 0.7789212589724555 ns/iter 1.00
Regex_Nested_Backtrack 41.175584595438224 ns/iter 37.83609395584769 ns/iter 1.09

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti changed the title Various misc correctness fixes Various misc correctness fixes throughout the codebase Jul 5, 2026
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 4872e82 Previous: e6abd0a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1816401684335722 ns/iter 2.5222223244182675 ns/iter 1.26
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.814343524385684 ns/iter 2.20109757095779 ns/iter 1.28
Regex_Period_Asterisk 2.813565499625195 ns/iter 2.193114220809895 ns/iter 1.28
Regex_Group_Period_Asterisk_Group 3.1657353294445483 ns/iter 2.4901738571081213 ns/iter 1.27
Regex_Period_Plus 4.608304427398709 ns/iter 2.8005849531843636 ns/iter 1.65
Regex_Period 4.2212660618150855 ns/iter 2.4957828687637575 ns/iter 1.69
Regex_Caret_Period_Plus_Dollar 4.220569045076416 ns/iter 2.4897567045972413 ns/iter 1.70
Regex_Caret_Group_Period_Plus_Group_Dollar 4.636584354931571 ns/iter 2.8001497769263692 ns/iter 1.66
Regex_Caret_Period_Asterisk_Dollar 3.5337127684681744 ns/iter 2.4945748031403703 ns/iter 1.42
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1657779028629403 ns/iter 2.1941901122213046 ns/iter 1.44
Regex_Caret_X_Hyphen 7.3856640813335375 ns/iter 5.295655756522157 ns/iter 1.39
Regex_Period_Md_Dollar 26.473704561699137 ns/iter 28.743223317839654 ns/iter 0.92
Regex_Caret_Slash_Period_Asterisk 8.090134333602029 ns/iter 5.926821203065366 ns/iter 1.37
Regex_Caret_Period_Range_Dollar 2.814197422531483 ns/iter 2.493384392056651 ns/iter 1.13
Regex_Nested_Backtrack 37.27160266223672 ns/iter 37.393602061375596 ns/iter 1.00
JSON_Array_Of_Objects_Unique 493.11514616565955 ns/iter 450.9104434695392 ns/iter 1.09
JSON_Parse_1 4781.408184922561 ns/iter 4891.878078920682 ns/iter 0.98
JSON_Parse_Real 5006.701129999556 ns/iter 5146.2904832176455 ns/iter 0.97
JSON_Parse_Decimal 7591.680897515844 ns/iter 7606.400663507275 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 3563995.8877549344 ns/iter 3530258.515306347 ns/iter 1.01
JSON_Parse_Integer 3910.753410106864 ns/iter 3740.8912003835853 ns/iter 1.05
JSON_Parse_String_NonSSO_Plain 5162.557355362416 ns/iter 5176.2779633646205 ns/iter 1.00
JSON_Parse_String_SSO_Plain 3003.9074965423706 ns/iter 2846.107637179884 ns/iter 1.06
JSON_Parse_String_Escape_Heavy 14554.438076827002 ns/iter 14326.925057009243 ns/iter 1.02
JSON_Parse_Object_Short_Keys 7904.922213077713 ns/iter 7931.116682584255 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 4071.9040208582596 ns/iter 4026.396950324866 ns/iter 1.01
JSON_Parse_Object_Array_Properties 5559.706885620523 ns/iter 5464.012631990323 ns/iter 1.02
JSON_Parse_Object_Object_Properties 5562.107391787618 ns/iter 5449.915308256007 ns/iter 1.02
JSON_Parse_Nested_Containers 45544.66714688075 ns/iter 45018.81602738424 ns/iter 1.01
JSON_From_String_Copy 22.892136640902944 ns/iter 20.373157552688834 ns/iter 1.12
JSON_From_String_Temporary 19.174113451040803 ns/iter 17.766348691149407 ns/iter 1.08
JSON_Number_To_Double 22.825950643520112 ns/iter 23.37028090638092 ns/iter 0.98
JSON_Object_At_Last_Key/8 3.6432811743835707 ns/iter 3.761567769001144 ns/iter 0.97
JSON_Object_At_Last_Key/32 13.003600876557725 ns/iter 11.95415235449082 ns/iter 1.09
JSON_Object_At_Last_Key/128 46.77469368215801 ns/iter 48.253546084981835 ns/iter 0.97
JSON_Object_At_Last_Key/512 365.9245278089797 ns/iter 380.6074421234941 ns/iter 0.96
JSON_Fast_Hash_Helm_Chart_Lock 70.27928665566915 ns/iter 70.23645562901083 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 173.06493465986352 ns/iter 178.7609508910468 ns/iter 0.97
JSON_Divisible_By_Decimal 259.0305067098301 ns/iter 243.57076932502778 ns/iter 1.06
JSON_String_Equal/10 5.981672040812866 ns/iter 6.250351275687407 ns/iter 0.96
JSON_String_Equal/100 6.685427230135764 ns/iter 6.856322161375527 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0549717117663282 ns/iter 0.934146360970065 ns/iter 1.13
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.337356962556285 ns/iter 10.576314306540699 ns/iter 1.17
JSON_String_Fast_Hash/10 2.506904005248107 ns/iter 2.8080077898791256 ns/iter 0.89
JSON_String_Fast_Hash/100 2.4617915893386475 ns/iter 2.799217500448752 ns/iter 0.88
JSON_String_Key_Hash/10 2.461748403158092 ns/iter 2.1791819137370623 ns/iter 1.13
JSON_String_Key_Hash/100 8.107313334802058 ns/iter 6.53622233225784 ns/iter 1.24
JSON_Object_Defines_Miss_Same_Length 2.9350220852835744 ns/iter 2.6367031571935877 ns/iter 1.11
JSON_Object_Defines_Miss_Too_Small 4.221661277740077 ns/iter 3.736488460323152 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 2.9005221440104676 ns/iter 2.6271982292234215 ns/iter 1.10
Pointer_Object_Traverse 25.50480805309944 ns/iter 24.09772710866044 ns/iter 1.06
Pointer_Object_Try_Traverse 30.380694934522047 ns/iter 30.18013880315902 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 205.65667899908894 ns/iter 179.6700034784165 ns/iter 1.14
Pointer_Walker_Schema_ISO_Language 1813250.6883115899 ns/iter 1735539.3446601424 ns/iter 1.04
Pointer_Maybe_Tracked_Deeply_Nested/0 1269767.1819851852 ns/iter 1262626.0573476371 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1579765.4885844865 ns/iter 1617982.2378754572 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 701.2822860745049 ns/iter 698.566288509013 ns/iter 1.00
URITemplateRouter_Create 30019.452258528632 ns/iter 34065.36967631673 ns/iter 0.88
URITemplateRouter_Match 179.92076807954567 ns/iter 179.75491484986642 ns/iter 1.00
URITemplateRouter_Match_BasePath 218.03617942675857 ns/iter 208.10618931422727 ns/iter 1.05
URITemplateRouterView_Restore 9819.799417509761 ns/iter 8615.978999617968 ns/iter 1.14
URITemplateRouterView_Match 143.59300472754336 ns/iter 143.09358097283507 ns/iter 1.00
URITemplateRouterView_Match_BasePath 166.9211292521855 ns/iter 162.73868803228578 ns/iter 1.03
URITemplateRouterView_Arguments 462.5832684077073 ns/iter 434.13154843152665 ns/iter 1.07
JSONL_Parse_Large 9397527.108107526 ns/iter 9763108.652776964 ns/iter 0.96
JSONL_Parse_Large_GZIP 11012700.000000209 ns/iter 11339576.580643361 ns/iter 0.97
HTML_Build_Table_100000 72370746.00000142 ns/iter 66303654.7000047 ns/iter 1.09
HTML_Render_Table_100000 4914443.840580068 ns/iter 5178408.902985048 ns/iter 0.95
GZIP_Compress_ISO_Language_Set_3_Locations 35948763.36841792 ns/iter 32315778.90908904 ns/iter 1.11
GZIP_Decompress_ISO_Language_Set_3_Locations 4272378.840491185 ns/iter 4096977.8070177985 ns/iter 1.04
GZIP_Compress_ISO_Language_Set_3_Schema 2157979.3414637484 ns/iter 1854448.3952256457 ns/iter 1.16
GZIP_Decompress_ISO_Language_Set_3_Schema 276800.4059913286 ns/iter 358446.26291561127 ns/iter 0.77
JOSE_VerifySignature_RS256 65054.393454540164 ns/iter 58557.34085985704 ns/iter 1.11
JOSE_VerifySignature_ES512 2685386.4846154572 ns/iter 2408444.652921242 ns/iter 1.11

This comment was automatically generated by workflow using github-action-benchmark.

@jviotti jviotti merged commit 0d7fb7f into main Jul 5, 2026
12 checks passed
@jviotti jviotti deleted the misc-fixes-2 branch July 5, 2026 23:35

@github-actions github-actions Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 4872e82 Previous: e6abd0a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.323734000000968 ns/iter 3.86497552881283 ns/iter 1.38
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.129010999999082 ns/iter 3.9188392857144754 ns/iter 1.31
Regex_Period_Asterisk 5.18763035714187 ns/iter 3.885396957347391 ns/iter 1.34
Regex_Group_Period_Asterisk_Group 5.070763392857153 ns/iter 3.8872198660712596 ns/iter 1.30
Regex_Period_Plus 5.214258000000882 ns/iter 3.6444352175200594 ns/iter 1.43
Regex_Period 5.0529848214284 ns/iter 3.571783454240238 ns/iter 1.41
Regex_Caret_Period_Plus_Dollar 5.1456544642860536 ns/iter 3.5720971372756622 ns/iter 1.44
Regex_Caret_Group_Period_Plus_Group_Dollar 5.128078000000187 ns/iter 3.564826467644195 ns/iter 1.44
Regex_Caret_Period_Asterisk_Dollar 5.143460714285603 ns/iter 3.8399501717146256 ns/iter 1.34
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.236070535713923 ns/iter 3.85976463596481 ns/iter 1.36
Regex_Caret_X_Hyphen 8.23439843749948 ns/iter 6.175786607143559 ns/iter 1.33
Regex_Period_Md_Dollar 44.43655719251833 ns/iter 46.21293138696821 ns/iter 0.96
Regex_Caret_Slash_Period_Asterisk 7.872445312501039 ns/iter 5.767548000000033 ns/iter 1.36
Regex_Caret_Period_Range_Dollar 5.671543750001515 ns/iter 4.146438212434667 ns/iter 1.37
Regex_Nested_Backtrack 54.2985999999928 ns/iter 51.24066071428298 ns/iter 1.06
JSON_Array_Of_Objects_Unique 494.68616071420354 ns/iter 453.2682931402697 ns/iter 1.09
JSON_Parse_1 9169.272905031929 ns/iter 7767.01897321454 ns/iter 1.18
JSON_Parse_Real 15930.991071425435 ns/iter 13135.3589285713 ns/iter 1.21
JSON_Parse_Decimal 11779.990624997794 ns/iter 8790.308035714186 ns/iter 1.34
JSON_Parse_Schema_ISO_Language 8163545.555554366 ns/iter 6560432.142857207 ns/iter 1.24
JSON_Parse_Integer 6113.5535714283515 ns/iter 4575.780972725111 ns/iter 1.34
JSON_Parse_String_NonSSO_Plain 7737.748883927611 ns/iter 5938.825892857024 ns/iter 1.30
JSON_Parse_String_SSO_Plain 3734.3269029880053 ns/iter 2867.185068005315 ns/iter 1.30
JSON_Parse_String_Escape_Heavy 22107.9251347638 ns/iter 16524.62985243274 ns/iter 1.34
JSON_Parse_Object_Short_Keys 13292.076821087927 ns/iter 10448.145767205993 ns/iter 1.27
JSON_Parse_Object_Scalar_Properties 6790.159598212752 ns/iter 5379.150999999638 ns/iter 1.26
JSON_Parse_Object_Array_Properties 11306.568750001134 ns/iter 8950.390625000233 ns/iter 1.26
JSON_Parse_Object_Object_Properties 11480.878571429035 ns/iter 9096.99331699522 ns/iter 1.26
JSON_Parse_Nested_Containers 78604.82142856285 ns/iter 66757.95758927755 ns/iter 1.18
JSON_From_String_Copy 64.21589285713887 ns/iter 48.35154387264266 ns/iter 1.33
JSON_From_String_Temporary 58.088920000000144 ns/iter 63.26925892857105 ns/iter 0.92
JSON_Number_To_Double 119.13523214283421 ns/iter 104.07590160375227 ns/iter 1.14
JSON_Object_At_Last_Key/8 7.264693080357075 ns/iter 5.923354464285475 ns/iter 1.23
JSON_Object_At_Last_Key/32 23.356007551827044 ns/iter 22.81515823942192 ns/iter 1.02
JSON_Object_At_Last_Key/128 89.65140624998773 ns/iter 72.51862723214637 ns/iter 1.24
JSON_Object_At_Last_Key/512 424.97174943752896 ns/iter 388.0578755331135 ns/iter 1.10
JSON_Fast_Hash_Helm_Chart_Lock 68.75922321429228 ns/iter 53.58049999999821 ns/iter 1.28
JSON_Equality_Helm_Chart_Lock 300.71058035718227 ns/iter 221.37184374997787 ns/iter 1.36
JSON_Divisible_By_Decimal 300.1578526610212 ns/iter 264.6593571428671 ns/iter 1.13
JSON_String_Equal/10 15.123009307488037 ns/iter 10.982864062500042 ns/iter 1.38
JSON_String_Equal/100 16.468787946430602 ns/iter 15.641864285713934 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5134760714284505 ns/iter 1.6453024553569102 ns/iter 1.53
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.043102164985646 ns/iter 12.241416071428748 ns/iter 1.23
JSON_String_Fast_Hash/10 4.823509821428778 ns/iter 3.5666141015703627 ns/iter 1.35
JSON_String_Fast_Hash/100 4.776519653519303 ns/iter 3.56545178014374 ns/iter 1.34
JSON_String_Key_Hash/10 5.349227678570807 ns/iter 3.8723554687499933 ns/iter 1.38
JSON_String_Key_Hash/100 11.899987500003459 ns/iter 8.47788727678608 ns/iter 1.40
JSON_Object_Defines_Miss_Same_Length 4.410604810598302 ns/iter 3.197095786245354 ns/iter 1.38
JSON_Object_Defines_Miss_Too_Small 4.0994577305345326 ns/iter 4.063092551898269 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 5.023871999999301 ns/iter 3.3060665676653165 ns/iter 1.52
Pointer_Object_Traverse 67.4202410714234 ns/iter 53.94806249999615 ns/iter 1.25
Pointer_Object_Try_Traverse 71.27555803571843 ns/iter 53.18108000000166 ns/iter 1.34
Pointer_Push_Back_Pointer_To_Weak_Pointer 173.1789535610533 ns/iter 119.15850000000155 ns/iter 1.45
Pointer_Walker_Schema_ISO_Language 7979934.444443239 ns/iter 7158202.678570749 ns/iter 1.11
Pointer_Maybe_Tracked_Deeply_Nested/0 2320716.053511211 ns/iter 1936982.8985507253 ns/iter 1.20
Pointer_Maybe_Tracked_Deeply_Nested/1 3787848.0446927533 ns/iter 2902254.2372881505 ns/iter 1.31
Pointer_Position_Tracker_Get_Deeply_Nested 522.9615442536242 ns/iter 411.0295993836757 ns/iter 1.27
URITemplateRouter_Create 40425.024664847675 ns/iter 30200.674107143346 ns/iter 1.34
URITemplateRouter_Match 239.09274117269578 ns/iter 171.0595873477166 ns/iter 1.40
URITemplateRouter_Match_BasePath 266.20654090207194 ns/iter 201.79177694568745 ns/iter 1.32
URITemplateRouterView_Restore 32532.147377300447 ns/iter 18817.45372726729 ns/iter 1.73
URITemplateRouterView_Match 178.21597175553043 ns/iter 138.97931968843974 ns/iter 1.28
URITemplateRouterView_Match_BasePath 206.11188588789213 ns/iter 151.793008848529 ns/iter 1.36
URITemplateRouterView_Arguments 545.8634999999958 ns/iter 455.7384722630531 ns/iter 1.20
JSONL_Parse_Large 33189623.80952447 ns/iter 25408389.285717346 ns/iter 1.31
JSONL_Parse_Large_GZIP 33728161.90476225 ns/iter 25740765.38461703 ns/iter 1.31
HTML_Build_Table_100000 90221555.55557118 ns/iter 73374277.77777824 ns/iter 1.23
HTML_Render_Table_100000 7773887.777777114 ns/iter 6932442.222221703 ns/iter 1.12
GZIP_Compress_ISO_Language_Set_3_Locations 36018105.26315842 ns/iter 27990096.000003174 ns/iter 1.29
GZIP_Decompress_ISO_Language_Set_3_Locations 9947775.000000548 ns/iter 7421944.444443953 ns/iter 1.34
GZIP_Compress_ISO_Language_Set_3_Schema 2095945.0000006543 ns/iter 1725613.7592135835 ns/iter 1.21
GZIP_Decompress_ISO_Language_Set_3_Schema 651790.08928575 ns/iter 413672.6059199317 ns/iter 1.58
JOSE_VerifySignature_RS256 21251.087500004927 ns/iter 18314.732274394442 ns/iter 1.16
JOSE_VerifySignature_ES512 1533894.5783133134 ns/iter 1179680.781249992 ns/iter 1.30

This comment was automatically generated by workflow using github-action-benchmark.

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.

1 participant