Skip to content

Various URI improvements#2477

Merged
jviotti merged 6 commits into
mainfrom
uri-improvements
Jun 9, 2026
Merged

Various URI improvements#2477
jviotti merged 6 commits into
mainfrom
uri-improvements

Conversation

@jviotti

@jviotti jviotti commented Jun 9, 2026

Copy link
Copy Markdown
Member

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

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

@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.

1 issue found across 11 files

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

Re-trigger cubic

Comment thread src/core/uri/setters.cc Outdated
@augmentcode

augmentcode Bot commented Jun 9, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR improves URI handling by adding new recomposition and comparison helpers, tightening path appending semantics, and refining relative-path generation.

Changes:

  • Added URI::recompose_relative() to emit a path+query+fragment “relative reference” string (omitting scheme/authority).
  • Added URI::has_same_authority() to compare userinfo/host/port across URIs (scheme intentionally ignored).
  • Updated URI::append_path() to reject inputs that parse as scheme/authority, and to normalize dot segments ("."/"..") after merging.
  • Adjusted URI::from_path() path building to append raw segments directly, avoiding append_path() semantics during filesystem conversion.
  • Simplified URI::relative_to() behavior so more absolute URIs can be expressed as relative references (including some previously-kept-absolute cases).
  • Added/updated unit tests covering the new APIs and the changed relative/path behaviors.

Technical Notes: The new behavior centralizes dot-segment normalization via normalize_path() for appended paths, while filesystem-to-URI conversion preserves raw path structure for correct later escaping during recomposition.

🤖 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.

@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: 258ac98 Previous: 0c8666e Ratio
GZIP_Compress_ISO_Language_Set_3_Locations 40124817.11764421 ns/iter 37394146.57894414 ns/iter 1.07
GZIP_Decompress_ISO_Language_Set_3_Locations 4482693.303226193 ns/iter 4548991.980391738 ns/iter 0.99
GZIP_Compress_ISO_Language_Set_3_Schema 2306349.1085527455 ns/iter 2032193.6985507254 ns/iter 1.13
GZIP_Decompress_ISO_Language_Set_3_Schema 301308.6811391091 ns/iter 395853.31486720307 ns/iter 0.76
HTML_Build_Table_100000 73376839.20000018 ns/iter 58998099.5000019 ns/iter 1.24
HTML_Render_Table_100000 1983094.308781747 ns/iter 1894444.4168935001 ns/iter 1.05
JSONL_Parse_Large 15073839.021276418 ns/iter 15416917.133332692 ns/iter 0.98
JSONL_Parse_Large_GZIP 16624884.83333391 ns/iter 16913361.12195109 ns/iter 0.98
URITemplateRouter_Create 29779.600841227104 ns/iter 30967.071755046883 ns/iter 0.96
URITemplateRouter_Match 157.64082812331992 ns/iter 159.0563064221779 ns/iter 0.99
URITemplateRouter_Match_BasePath 187.78680615687443 ns/iter 184.6855619012564 ns/iter 1.02
URITemplateRouterView_Restore 8399.856378106944 ns/iter 7592.362707453141 ns/iter 1.11
URITemplateRouterView_Match 125.64803332249754 ns/iter 125.94267092694064 ns/iter 1.00
URITemplateRouterView_Match_BasePath 140.00572847850344 ns/iter 139.00910522251894 ns/iter 1.01
URITemplateRouterView_Arguments 452.9294785159603 ns/iter 471.5042042966237 ns/iter 0.96
Pointer_Object_Traverse 33.78796162771848 ns/iter 34.06551654339955 ns/iter 0.99
Pointer_Object_Try_Traverse 21.866154976484932 ns/iter 22.144288387915175 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 148.34329088142707 ns/iter 148.17233026555627 ns/iter 1.00
Pointer_Walker_Schema_ISO_Language 3400303.8069306174 ns/iter 3295241.7009345754 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/0 1825683.7460733368 ns/iter 1896752.2099449232 ns/iter 0.96
Pointer_Maybe_Tracked_Deeply_Nested/1 1851160.3931397568 ns/iter 1886953.2593583164 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 418.6314706639381 ns/iter 403.1322628635645 ns/iter 1.04
JSON_Array_Of_Objects_Unique 437.3819576449779 ns/iter 412.4921106049399 ns/iter 1.06
JSON_Parse_1 9681.94483176668 ns/iter 10024.890783714267 ns/iter 0.97
JSON_Parse_Real 13395.583177282964 ns/iter 13461.845275582238 ns/iter 1.00
JSON_Parse_Decimal 17123.177921313763 ns/iter 19325.647445456136 ns/iter 0.89
JSON_Parse_Schema_ISO_Language 5683105.707317011 ns/iter 5611889.523809818 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 68.03534668040243 ns/iter 68.17362171808438 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 186.39848423953833 ns/iter 166.56635896821908 ns/iter 1.12
JSON_Divisible_By_Decimal 228.77700205177447 ns/iter 239.9487745711091 ns/iter 0.95
JSON_String_Equal/10 6.122506437323887 ns/iter 6.040697496353621 ns/iter 1.01
JSON_String_Equal/100 6.859435065816441 ns/iter 6.698089001152535 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7109713209839361 ns/iter 0.7404368143195812 ns/iter 0.96
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 21.989682344729836 ns/iter 25.271176979863693 ns/iter 0.87
JSON_String_Fast_Hash/10 1.7587822349352245 ns/iter 1.5560870334365609 ns/iter 1.13
JSON_String_Fast_Hash/100 1.759753087825917 ns/iter 1.5571606485072298 ns/iter 1.13
JSON_String_Key_Hash/10 1.0877474677027412 ns/iter 1.246324259886656 ns/iter 0.87
JSON_String_Key_Hash/100 15.412184335500028 ns/iter 12.439568880259351 ns/iter 1.24
JSON_Object_Defines_Miss_Same_Length 3.871616484148967 ns/iter 3.425769361425986 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Small 3.51995840820659 ns/iter 3.1158707122931437 ns/iter 1.13
JSON_Object_Defines_Miss_Too_Large 4.222590058948084 ns/iter 3.740663688287278 ns/iter 1.13
Regex_Lower_S_Or_Upper_S_Asterisk 0.7035002273711666 ns/iter 0.6236515947091017 ns/iter 1.13
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.703792633046491 ns/iter 0.62272608931291 ns/iter 1.13
Regex_Period_Asterisk 1.0561882415633108 ns/iter 0.9346315301435952 ns/iter 1.13
Regex_Group_Period_Asterisk_Group 1.0559220165366339 ns/iter 0.9348850998683385 ns/iter 1.13
Regex_Period_Plus 0.7039842330034546 ns/iter 0.6229768533118444 ns/iter 1.13
Regex_Period 0.7059303609631669 ns/iter 0.6227132799918264 ns/iter 1.13
Regex_Caret_Period_Plus_Dollar 1.0569162966388805 ns/iter 0.9337723225510822 ns/iter 1.13
Regex_Caret_Group_Period_Plus_Group_Dollar 1.0561414397278306 ns/iter 0.9375329761998273 ns/iter 1.13
Regex_Caret_Period_Asterisk_Dollar 0.7074474113687886 ns/iter 0.6229722500273909 ns/iter 1.14
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.7035592536942981 ns/iter 0.6230437029816881 ns/iter 1.13
Regex_Caret_X_Hyphen 3.517640693954067 ns/iter 4.051491870380326 ns/iter 0.87
Regex_Period_Md_Dollar 34.39188430552963 ns/iter 29.74192422043616 ns/iter 1.16
Regex_Caret_Slash_Period_Asterisk 4.572936982657043 ns/iter 4.673251896179389 ns/iter 0.98
Regex_Caret_Period_Range_Dollar 0.8437582168108695 ns/iter 0.7809869532560547 ns/iter 1.08
Regex_Nested_Backtrack 39.27744256531428 ns/iter 37.48897924761677 ns/iter 1.05

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

@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: 258ac98 Previous: 0c8666e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.472964267614508 ns/iter 2.1231945998934094 ns/iter 1.16
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.210447686207404 ns/iter 1.7245988305723452 ns/iter 1.28
Regex_Period_Asterisk 2.2167707418999987 ns/iter 1.6781584692729998 ns/iter 1.32
Regex_Group_Period_Asterisk_Group 2.107333242417246 ns/iter 1.6799179455802495 ns/iter 1.25
Regex_Period_Plus 2.5386691331442863 ns/iter 2.2832816278161308 ns/iter 1.11
Regex_Period 2.3515228252402354 ns/iter 2.111642145249261 ns/iter 1.11
Regex_Caret_Period_Plus_Dollar 2.431596617934141 ns/iter 2.455424169999279 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 2.3935832142831437 ns/iter 2.254755577035005 ns/iter 1.06
Regex_Caret_Period_Asterisk_Dollar 2.2389392123324297 ns/iter 1.7582022427765065 ns/iter 1.27
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.5286162751553354 ns/iter 1.7153726266119675 ns/iter 1.47
Regex_Caret_X_Hyphen 8.237030938828724 ns/iter 6.203845181734992 ns/iter 1.33
Regex_Period_Md_Dollar 28.558051550893662 ns/iter 17.509172133302055 ns/iter 1.63
Regex_Caret_Slash_Period_Asterisk 6.352628725873523 ns/iter 4.560899260971711 ns/iter 1.39
Regex_Caret_Period_Range_Dollar 2.8755952835613523 ns/iter 2.098302509977 ns/iter 1.37
Regex_Nested_Backtrack 39.11348207990643 ns/iter 26.178936482540255 ns/iter 1.49
JSON_Array_Of_Objects_Unique 587.848237102633 ns/iter 447.82002557417024 ns/iter 1.31
JSON_Parse_1 8363.595325780607 ns/iter 4894.254422116993 ns/iter 1.71
JSON_Parse_Real 10043.98793342769 ns/iter 7196.662285625932 ns/iter 1.40
JSON_Parse_Decimal 8930.922453704543 ns/iter 8186.800006928044 ns/iter 1.09
JSON_Parse_Schema_ISO_Language 4415871.072464031 ns/iter 3090758.5964127323 ns/iter 1.43
JSON_Fast_Hash_Helm_Chart_Lock 76.07185620977398 ns/iter 58.861848151725106 ns/iter 1.29
JSON_Equality_Helm_Chart_Lock 170.4062801196948 ns/iter 136.5732584143893 ns/iter 1.25
JSON_Divisible_By_Decimal 215.34857269599854 ns/iter 177.64496963873555 ns/iter 1.21
JSON_String_Equal/10 8.221466042101316 ns/iter 6.898144378875777 ns/iter 1.19
JSON_String_Equal/100 9.315759303379751 ns/iter 6.581060472911743 ns/iter 1.42
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9883849664071993 ns/iter 0.7823423841930532 ns/iter 1.26
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.85356196578676 ns/iter 3.353775617784463 ns/iter 1.45
JSON_String_Fast_Hash/10 4.118739397373756 ns/iter 2.40452059647709 ns/iter 1.71
JSON_String_Fast_Hash/100 2.8614794571560993 ns/iter 2.1236517557141306 ns/iter 1.35
JSON_String_Key_Hash/10 2.1719631861497937 ns/iter 1.5070428893793204 ns/iter 1.44
JSON_String_Key_Hash/100 3.0159386190292605 ns/iter 2.2069827092688628 ns/iter 1.37
JSON_Object_Defines_Miss_Same_Length 3.0312589289088065 ns/iter 2.386638903731685 ns/iter 1.27
JSON_Object_Defines_Miss_Too_Small 2.964119066383442 ns/iter 2.5936369926825464 ns/iter 1.14
JSON_Object_Defines_Miss_Too_Large 2.883831039993004 ns/iter 2.393733010880133 ns/iter 1.20
Pointer_Object_Traverse 18.712875695073365 ns/iter 14.876171403070865 ns/iter 1.26
Pointer_Object_Try_Traverse 29.33590233058648 ns/iter 25.368808111002416 ns/iter 1.16
Pointer_Push_Back_Pointer_To_Weak_Pointer 219.24269837196107 ns/iter 164.1153523171171 ns/iter 1.34
Pointer_Walker_Schema_ISO_Language 6631140.321838631 ns/iter 4598179.567742297 ns/iter 1.44
Pointer_Maybe_Tracked_Deeply_Nested/0 1733633.3740458316 ns/iter 1089798.3577106986 ns/iter 1.59
Pointer_Maybe_Tracked_Deeply_Nested/1 2268745.0725804963 ns/iter 1417028.672032301 ns/iter 1.60
Pointer_Position_Tracker_Get_Deeply_Nested 576.0372920000236 ns/iter 355.6898913818961 ns/iter 1.62
URITemplateRouter_Create 31598.59353654743 ns/iter 24245.206290659084 ns/iter 1.30
URITemplateRouter_Match 213.8977738390724 ns/iter 163.27288979563855 ns/iter 1.31
URITemplateRouter_Match_BasePath 251.8368564189497 ns/iter 193.56700200452337 ns/iter 1.30
URITemplateRouterView_Restore 15145.687388530634 ns/iter 10138.267426524422 ns/iter 1.49
URITemplateRouterView_Match 166.81023579590135 ns/iter 131.82203781427552 ns/iter 1.27
URITemplateRouterView_Match_BasePath 186.2815020508474 ns/iter 148.65654486847023 ns/iter 1.25
URITemplateRouterView_Arguments 506.0714169999301 ns/iter 413.1743092647374 ns/iter 1.22
JSONL_Parse_Large 17505628.860465888 ns/iter 14012615.3846154 ns/iter 1.25
JSONL_Parse_Large_GZIP 17153453.12499892 ns/iter 14896448.142856255 ns/iter 1.15
HTML_Build_Table_100000 78694986.11111996 ns/iter 65875255.24999194 ns/iter 1.19
HTML_Render_Table_100000 6240649.170000552 ns/iter 3349307.7845304026 ns/iter 1.86
GZIP_Compress_ISO_Language_Set_3_Locations 47173272.72727413 ns/iter 29112687.49999844 ns/iter 1.62
GZIP_Decompress_ISO_Language_Set_3_Locations 8474918.560605973 ns/iter 5687710.609374897 ns/iter 1.49
GZIP_Compress_ISO_Language_Set_3_Schema 2021502.785515232 ns/iter 1598904.6554054583 ns/iter 1.26
GZIP_Decompress_ISO_Language_Set_3_Schema 352557.5565077084 ns/iter 304949.07007652236 ns/iter 1.16

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

@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: 258ac98 Previous: 0c8666e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2579418458364757 ns/iter 2.469074715088159 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.198027217398918 ns/iter 2.4694840456998373 ns/iter 0.89
Regex_Period_Asterisk 2.1978374265952163 ns/iter 2.5081953668887977 ns/iter 0.88
Regex_Group_Period_Asterisk_Group 2.1888823229193815 ns/iter 2.46177659545699 ns/iter 0.89
Regex_Period_Plus 2.800486402092311 ns/iter 3.8673477658375974 ns/iter 0.72
Regex_Period 2.819660401319559 ns/iter 3.881135823658408 ns/iter 0.73
Regex_Caret_Period_Plus_Dollar 2.4911117654344026 ns/iter 3.5148812209503566 ns/iter 0.71
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4902211694719893 ns/iter 3.515285366155566 ns/iter 0.71
Regex_Caret_Period_Asterisk_Dollar 3.422888867135897 ns/iter 2.813294919290826 ns/iter 1.22
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.422347251324424 ns/iter 2.8143121643209352 ns/iter 1.22
Regex_Caret_X_Hyphen 6.540106631361962 ns/iter 6.685438254387065 ns/iter 0.98
Regex_Period_Md_Dollar 27.277573898003226 ns/iter 26.534661604933866 ns/iter 1.03
Regex_Caret_Slash_Period_Asterisk 7.15527106885615 ns/iter 7.384994742643805 ns/iter 0.97
Regex_Caret_Period_Range_Dollar 3.732387929383661 ns/iter 2.465184623398903 ns/iter 1.51
Regex_Nested_Backtrack 36.822401632091925 ns/iter 37.347014709079495 ns/iter 0.99
JSON_Array_Of_Objects_Unique 459.10315040580394 ns/iter 468.50988593106536 ns/iter 0.98
JSON_Parse_1 6879.701519821624 ns/iter 6575.554194441472 ns/iter 1.05
JSON_Parse_Real 11842.638126748581 ns/iter 10955.842084732332 ns/iter 1.08
JSON_Parse_Decimal 11316.067848955896 ns/iter 11952.441101921444 ns/iter 0.95
JSON_Parse_Schema_ISO_Language 3864614.707181845 ns/iter 4023294.275861576 ns/iter 0.96
JSON_Fast_Hash_Helm_Chart_Lock 66.32747510223875 ns/iter 79.49514401302046 ns/iter 0.83
JSON_Equality_Helm_Chart_Lock 184.1398352594244 ns/iter 176.42780136935775 ns/iter 1.04
JSON_Divisible_By_Decimal 250.36934549588165 ns/iter 245.54575689036557 ns/iter 1.02
JSON_String_Equal/10 6.543190599655696 ns/iter 6.423557783883641 ns/iter 1.02
JSON_String_Equal/100 7.170320018473379 ns/iter 7.042941978063565 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9379787546001755 ns/iter 1.054986662156039 ns/iter 0.89
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.665993444015376 ns/iter 12.360274855779153 ns/iter 0.86
JSON_String_Fast_Hash/10 3.1123534207236316 ns/iter 3.167163291648644 ns/iter 0.98
JSON_String_Fast_Hash/100 3.1129242361897607 ns/iter 3.1678141162284974 ns/iter 0.98
JSON_String_Key_Hash/10 2.1817553293018266 ns/iter 2.4990498890695543 ns/iter 0.87
JSON_String_Key_Hash/100 6.535666025601164 ns/iter 7.7331397232258885 ns/iter 0.85
JSON_Object_Defines_Miss_Same_Length 2.6562537987749453 ns/iter 2.8929816833940767 ns/iter 0.92
JSON_Object_Defines_Miss_Too_Small 2.7283176671784095 ns/iter 2.9140554339727642 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Large 3.7377587461932507 ns/iter 4.233730309474285 ns/iter 0.88
Pointer_Object_Traverse 24.55765937563133 ns/iter 25.67356389376714 ns/iter 0.96
Pointer_Object_Try_Traverse 28.259613758022116 ns/iter 28.795661289313834 ns/iter 0.98
Pointer_Push_Back_Pointer_To_Weak_Pointer 153.88022151850288 ns/iter 176.33586385713815 ns/iter 0.87
Pointer_Walker_Schema_ISO_Language 3022634.386956685 ns/iter 3072153.251101486 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/0 1491759.628205267 ns/iter 1440022.8811473798 ns/iter 1.04
Pointer_Maybe_Tracked_Deeply_Nested/1 1823453.9869108368 ns/iter 1803247.0951156074 ns/iter 1.01
Pointer_Position_Tracker_Get_Deeply_Nested 655.6531540418256 ns/iter 669.6411805700666 ns/iter 0.98
URITemplateRouter_Create 32807.45741879014 ns/iter 29976.698208624377 ns/iter 1.09
URITemplateRouter_Match 176.44126148036952 ns/iter 182.10502392190395 ns/iter 0.97
URITemplateRouter_Match_BasePath 199.30220593548094 ns/iter 217.31933502571687 ns/iter 0.92
URITemplateRouterView_Restore 7656.223367175544 ns/iter 8804.246466398798 ns/iter 0.87
URITemplateRouterView_Match 144.26984590099897 ns/iter 144.99250052261164 ns/iter 1.00
URITemplateRouterView_Match_BasePath 161.90937180356906 ns/iter 164.7871356742882 ns/iter 0.98
URITemplateRouterView_Arguments 447.382040182809 ns/iter 456.2806590210786 ns/iter 0.98
JSONL_Parse_Large 11838588.614034705 ns/iter 11070101.666666867 ns/iter 1.07
JSONL_Parse_Large_GZIP 13432654.519229678 ns/iter 12782155.745456045 ns/iter 1.05
HTML_Build_Table_100000 67449040.09090905 ns/iter 91538420.87499698 ns/iter 0.74
HTML_Render_Table_100000 5276049.833333108 ns/iter 5228620.878787552 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Locations 33989333.80952128 ns/iter 36817320.631580755 ns/iter 0.92
GZIP_Decompress_ISO_Language_Set_3_Locations 4622466.219999902 ns/iter 4728788.355704875 ns/iter 0.98
GZIP_Compress_ISO_Language_Set_3_Schema 1886008.962264344 ns/iter 2152760.668711821 ns/iter 0.88
GZIP_Decompress_ISO_Language_Set_3_Schema 375892.7894737187 ns/iter 290539.31408388994 ns/iter 1.29

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

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 (windows/msvc)

Details
Benchmark suite Current: 258ac98 Previous: 0c8666e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.017036999997799 ns/iter 5.104704999999967 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.012868000001163 ns/iter 5.064704464285593 ns/iter 0.99
Regex_Period_Asterisk 5.016528000001017 ns/iter 5.008633035713623 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 5.021369999999479 ns/iter 5.016345999999885 ns/iter 1.00
Regex_Period_Plus 5.049871999999596 ns/iter 5.007403999999269 ns/iter 1.01
Regex_Period 5.022609000000102 ns/iter 5.045387500000435 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 5.016206999998758 ns/iter 5.019879000000174 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 5.030334000000494 ns/iter 5.175049999999146 ns/iter 0.97
Regex_Caret_Period_Asterisk_Dollar 5.027809821429839 ns/iter 5.038661999999476 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.023037000000841 ns/iter 5.014346876119182 ns/iter 1.00
Regex_Caret_X_Hyphen 8.152744419641168 ns/iter 8.150035714285917 ns/iter 1.00
Regex_Period_Md_Dollar 44.60288643211525 ns/iter 44.79420624999619 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.842612018558705 ns/iter 8.23747321428568 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 5.6525419642870895 ns/iter 5.890616071427855 ns/iter 0.96
Regex_Nested_Backtrack 57.72199107143803 ns/iter 56.82683035713256 ns/iter 1.02
JSON_Array_Of_Objects_Unique 510.6987499999604 ns/iter 504.77840000007745 ns/iter 1.01
JSON_Parse_1 12575.498214285322 ns/iter 12364.328571428425 ns/iter 1.02
JSON_Parse_Real 18948.720970722894 ns/iter 18913.03940214015 ns/iter 1.00
JSON_Parse_Decimal 17439.06731310199 ns/iter 17463.79306111399 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 7675694.444444364 ns/iter 7785057.777778093 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 61.930392857131466 ns/iter 65.81209821427642 ns/iter 0.94
JSON_Equality_Helm_Chart_Lock 299.5256362136374 ns/iter 299.3575625717151 ns/iter 1.00
JSON_Divisible_By_Decimal 297.01700033288853 ns/iter 304.36368818181796 ns/iter 0.98
JSON_String_Equal/10 15.533625000000281 ns/iter 15.286716896042975 ns/iter 1.02
JSON_String_Equal/100 16.574217969369066 ns/iter 16.96554464285579 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 2.522213571428113 ns/iter 2.5310575200623253 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.182937213466657 ns/iter 14.194936543774423 ns/iter 1.00
JSON_String_Fast_Hash/10 4.723485948043767 ns/iter 4.848868460903666 ns/iter 0.97
JSON_String_Fast_Hash/100 4.759953571428761 ns/iter 4.901593371629707 ns/iter 0.97
JSON_String_Key_Hash/10 5.339657000001807 ns/iter 5.40615982142916 ns/iter 0.99
JSON_String_Key_Hash/100 11.889807142856464 ns/iter 11.988969642857228 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 4.112512864485456 ns/iter 4.130986793091 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 4.721792857141947 ns/iter 4.713643537307543 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.2321065606096955 ns/iter 4.135808400243226 ns/iter 1.02
Pointer_Object_Traverse 70.63412500000611 ns/iter 70.36339285712805 ns/iter 1.00
Pointer_Object_Try_Traverse 68.59754464285977 ns/iter 68.60728571429117 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 194.95726740692692 ns/iter 184.34557003084637 ns/iter 1.06
Pointer_Walker_Schema_ISO_Language 12264843.749999698 ns/iter 12228608.928568617 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 2573846.1847385294 ns/iter 2509227.7108435524 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/1 3866739.6648054933 ns/iter 3895296.0893850266 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 530.4834824724429 ns/iter 537.3661607143682 ns/iter 0.99
URITemplateRouter_Create 40460.69293713805 ns/iter 40418.843944046275 ns/iter 1.00
URITemplateRouter_Match 189.25651689790234 ns/iter 188.76615078268367 ns/iter 1.00
URITemplateRouter_Match_BasePath 213.6217812500263 ns/iter 214.73268461012614 ns/iter 0.99
URITemplateRouterView_Restore 32154.946428580693 ns/iter 31667.200892856934 ns/iter 1.02
URITemplateRouterView_Match 156.39515625000146 ns/iter 154.93187924411993 ns/iter 1.01
URITemplateRouterView_Match_BasePath 172.2009847456049 ns/iter 172.72156960190284 ns/iter 1.00
URITemplateRouterView_Arguments 522.5848000000042 ns/iter 523.9395000000968 ns/iter 1.00
JSONL_Parse_Large 35604357.89473846 ns/iter 35378731.57895439 ns/iter 1.01
JSONL_Parse_Large_GZIP 36277431.57894177 ns/iter 36400915.78947584 ns/iter 1.00
HTML_Build_Table_100000 88315585.71429405 ns/iter 89044077.77777123 ns/iter 0.99
HTML_Render_Table_100000 7850301.111112559 ns/iter 7770034.444443909 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Locations 40064277.7777749 ns/iter 39997870.58823506 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Locations 10806107.812502574 ns/iter 10844260.937499683 ns/iter 1.00
GZIP_Compress_ISO_Language_Set_3_Schema 2270042.8093645787 ns/iter 2273587.625418 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 687527.9464285964 ns/iter 701669.3749999296 ns/iter 0.98

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

jviotti added 2 commits June 9, 2026 17:50
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>

@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 5 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread src/core/uri/setters.cc Outdated
Comment thread src/core/uri/include/sourcemeta/core/uri.h Outdated
jviotti added 2 commits June 9, 2026 18:01
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti merged commit a75b850 into main Jun 9, 2026
13 checks passed
@jviotti jviotti deleted the uri-improvements branch June 9, 2026 22:23
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