Skip to content

Fix weakly_canonical returning relative paths on some platforms - #2720

Merged
jviotti merged 2 commits into
mainfrom
better-canonical-2
Aug 10, 2026
Merged

Fix weakly_canonical returning relative paths on some platforms#2720
jviotti merged 2 commits into
mainfrom
better-canonical-2

Conversation

@jviotti

@jviotti jviotti commented Aug 10, 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 Aug 10, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR makes weakly_canonical return absolute paths for relative inputs on all platforms.

Changes:

  • Converts non-absolute inputs with std::filesystem::absolute before FIFO detection and weak canonicalization.
  • Preserves normalized absolute paths for FIFO inputs, including relative FIFO names.
  • Documents that relative paths are resolved against the current working directory.
  • Adds coverage for missing relative paths, dot segments, existing relative paths, and POSIX FIFOs.
Technical Notes: The normalization remains responsible for removing lexical dot segments and trailing separators after canonicalization.

🤖 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. 1 suggestion posted.

Fix All in Augment

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

Comment thread test/io/io_weakly_canonical_test.cc Outdated

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

All reported issues were addressed across 3 files

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

Re-trigger cubic

Comment thread test/io/io_weakly_canonical_test.cc Outdated
Comment thread test/io/io_weakly_canonical_test.cc Outdated
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 (macos/llvm)

Details
Benchmark suite Current: 4e663e6 Previous: 036ae97 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.1325547854261244 ns/iter 1.8318276572899679 ns/iter 1.16
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0134681106632533 ns/iter 1.8118175974225268 ns/iter 1.11
Regex_Period_Asterisk 2.192837614275401 ns/iter 1.8010376721597852 ns/iter 1.22
Regex_Group_Period_Asterisk_Group 2.2539230300575586 ns/iter 1.8692291021037664 ns/iter 1.21
Regex_Period_Plus 2.577780283907476 ns/iter 2.1097048659613873 ns/iter 1.22
Regex_Period 2.3115345112932415 ns/iter 2.136079284416729 ns/iter 1.08
Regex_Caret_Period_Plus_Dollar 2.1340304324822243 ns/iter 2.1465816138722116 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 2.1520379420499864 ns/iter 2.156057264875895 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 1.7160195690683122 ns/iter 1.8199661429303278 ns/iter 0.94
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.7801462692367873 ns/iter 1.9159584645960008 ns/iter 0.93
Regex_Caret_X_Hyphen 6.19729805528487 ns/iter 6.345331830808847 ns/iter 0.98
Regex_Period_Md_Dollar 16.632333874030323 ns/iter 17.55552537895331 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 4.873979602015757 ns/iter 4.570750759361545 ns/iter 1.07
Regex_Caret_Period_Range_Dollar 2.1505272983587083 ns/iter 2.126131650067495 ns/iter 1.01
Regex_Nested_Backtrack 31.56261827375959 ns/iter 28.677435588169356 ns/iter 1.10
JSON_Array_Of_Objects_Unique 474.6919887292459 ns/iter 484.1956480227695 ns/iter 0.98
JSON_Parse_1 6797.392413471333 ns/iter 3967.0464146174913 ns/iter 1.71
JSON_Parse_Real 9626.098310393529 ns/iter 6399.85907557211 ns/iter 1.50
JSON_Parse_Decimal 6682.093003461345 ns/iter 7451.8395134152515 ns/iter 0.90
JSON_Parse_Schema_ISO_Language 2580702.3796994514 ns/iter 2526249.858620868 ns/iter 1.02
JSON_Parse_Integer 4121.993078697848 ns/iter 3536.401745362664 ns/iter 1.17
JSON_Parse_String_NonSSO_Plain 4657.311036974702 ns/iter 3785.226649965114 ns/iter 1.23
JSON_Parse_String_SSO_Plain 3063.940691880534 ns/iter 1943.937358070449 ns/iter 1.58
JSON_Parse_String_Escape_Heavy 20691.4357147361 ns/iter 19894.300492229802 ns/iter 1.04
JSON_Parse_Object_Short_Keys 6036.8881790965115 ns/iter 6692.103616209108 ns/iter 0.90
JSON_Parse_Object_Scalar_Properties 3842.2897027540807 ns/iter 3166.6570203406213 ns/iter 1.21
JSON_Parse_Object_Array_Properties 5103.317351313521 ns/iter 4447.45318416659 ns/iter 1.15
JSON_Parse_Object_Object_Properties 5820.290665176661 ns/iter 3822.048778098088 ns/iter 1.52
JSON_Parse_Nested_Containers 42624.260075317565 ns/iter 29335.315272805357 ns/iter 1.45
JSON_From_String_Copy 27.243846574297407 ns/iter 22.98768594608118 ns/iter 1.19
JSON_From_String_Temporary 23.33711187972759 ns/iter 19.164909458791467 ns/iter 1.22
JSON_Number_To_Double 34.81748938933014 ns/iter 33.24567858913501 ns/iter 1.05
JSON_Object_At_Last_Key/8 4.698862714847183 ns/iter 4.0672725763861255 ns/iter 1.16
JSON_Object_At_Last_Key/32 13.214887213732824 ns/iter 12.168383149995085 ns/iter 1.09
JSON_Object_At_Last_Key/128 58.49004837397266 ns/iter 54.64687065944319 ns/iter 1.07
JSON_Object_At_Last_Key/512 196.62796071633187 ns/iter 196.74660669633644 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 59.70453226761674 ns/iter 59.320570558084654 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 136.19032084475074 ns/iter 141.6006309600498 ns/iter 0.96
JSON_Divisible_By_Decimal 183.22339713185013 ns/iter 187.15503984101878 ns/iter 0.98
JSON_String_Equal/10 7.86197853942017 ns/iter 7.261792485605497 ns/iter 1.08
JSON_String_Equal/100 7.526989192038568 ns/iter 7.261419327189662 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3457909008874915 ns/iter 0.3719523623246016 ns/iter 0.93
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.3208492724948706 ns/iter 3.4474209549158656 ns/iter 0.96
JSON_String_Fast_Hash/10 2.497351689159864 ns/iter 2.8118588881219653 ns/iter 0.89
JSON_String_Fast_Hash/100 2.115456402438824 ns/iter 2.108445293782794 ns/iter 1.00
JSON_String_Key_Hash/10 1.7636859503411153 ns/iter 3.068492994427041 ns/iter 0.57
JSON_String_Key_Hash/100 2.1304534135686977 ns/iter 2.362117441389078 ns/iter 0.90
JSON_Object_Defines_Miss_Same_Length 2.7472656085196046 ns/iter 2.913114920540054 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Small 2.8948407516298165 ns/iter 2.8652879430594393 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 2.8058932659124016 ns/iter 2.8154596041093454 ns/iter 1.00
Pointer_Object_Traverse 25.68883275107849 ns/iter 20.43826862357289 ns/iter 1.26
Pointer_Object_Try_Traverse 33.15844234741978 ns/iter 27.002374569166907 ns/iter 1.23
Pointer_Push_Back_Pointer_To_Weak_Pointer 183.10887416783672 ns/iter 194.27165876024486 ns/iter 0.94
Pointer_Walker_Schema_ISO_Language 2907977.962809691 ns/iter 2763074.934108765 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/0 910015.8041379974 ns/iter 884926.9695493891 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/1 1127723.4442696772 ns/iter 1145782.887022832 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 365.37642978232736 ns/iter 366.80376484346385 ns/iter 1.00
JSONPath_Descendant_Filter_Nested 1315.1350051050972 ns/iter 1596.0852426857675 ns/iter 0.82
URITemplateRouter_Create 23683.336142950753 ns/iter 26633.948039469145 ns/iter 0.89
URITemplateRouter_Match 177.69231833831392 ns/iter 169.89922959363102 ns/iter 1.05
URITemplateRouter_Match_BasePath 209.2368606226566 ns/iter 201.7307771708772 ns/iter 1.04
URITemplateRouterView_Restore 10669.538363450974 ns/iter 10307.680196057418 ns/iter 1.04
URITemplateRouterView_Match 138.30479809503842 ns/iter 134.97396715268567 ns/iter 1.02
URITemplateRouterView_Match_BasePath 187.05553005209472 ns/iter 150.6477455310593 ns/iter 1.24
URITemplateRouterView_Arguments 640.1309433170826 ns/iter 532.9544854379146 ns/iter 1.20
JSONL_Parse_Large 9349245.560000176 ns/iter 8200027.617977467 ns/iter 1.14
JSONL_Parse_Large_GZIP 10410468.749999069 ns/iter 10088033.217392005 ns/iter 1.03
JSONLD_Catalog_Annotation_List_Populate 1450481.5658807997 ns/iter 988519.3687230553 ns/iter 1.47
JSONLD_Catalog_Materialize 5370703.373017253 ns/iter 2788127.520161303 ns/iter 1.93
HTML_Build_Table_100000 50535769.46667515 ns/iter 38100932.05263337 ns/iter 1.33
HTML_Render_Table_100000 2102392.875739357 ns/iter 1842239.2102564073 ns/iter 1.14
GZIP_Compress_ISO_Language_Set_3_Locations 37906576.789474025 ns/iter 26292386.19230661 ns/iter 1.44
GZIP_Decompress_ISO_Language_Set_3_Locations 4228048.792746227 ns/iter 3169089.861750746 ns/iter 1.33
GZIP_Compress_ISO_Language_Set_3_Schema 2030477.579852674 ns/iter 1535796.1538461745 ns/iter 1.32
GZIP_Decompress_ISO_Language_Set_3_Schema 441245.37760814745 ns/iter 276256.23022150644 ns/iter 1.60
JOSE_VerifySignature_RS256 28042.396746373695 ns/iter 23059.536329972798 ns/iter 1.22
JOSE_VerifySignature_ES512 1170966.4239483615 ns/iter 1175341.2563380986 ns/iter 1.00

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/gcc)

Details
Benchmark suite Current: 4e663e6 Previous: 036ae97 Ratio
JOSE_VerifySignature_RS256 22201.21660544352 ns/iter 24690.10651411777 ns/iter 0.90
JOSE_VerifySignature_ES512 576475.3278417952 ns/iter 642529.3308823733 ns/iter 0.90
GZIP_Compress_ISO_Language_Set_3_Locations 36529030.73684325 ns/iter 39470057.38888897 ns/iter 0.93
GZIP_Decompress_ISO_Language_Set_3_Locations 4336003.074534612 ns/iter 4050733.578035082 ns/iter 1.07
GZIP_Compress_ISO_Language_Set_3_Schema 2021958.8299711905 ns/iter 2287562.3137255674 ns/iter 0.88
GZIP_Decompress_ISO_Language_Set_3_Schema 376622.36799566925 ns/iter 280966.4406635461 ns/iter 1.34
HTML_Build_Table_100000 58492696.75000339 ns/iter 68544267.89999479 ns/iter 0.85
HTML_Render_Table_100000 1841251.622047241 ns/iter 2059993.4680234357 ns/iter 0.89
JSONLD_Catalog_Annotation_List_Populate 1391998.0914512454 ns/iter 1482067.4453782425 ns/iter 0.94
JSONLD_Catalog_Materialize 4481709.781250487 ns/iter 4406584.917721599 ns/iter 1.02
JSONL_Parse_Large 10433711.716418928 ns/iter 9670574.150685417 ns/iter 1.08
JSONL_Parse_Large_GZIP 11824851.050846519 ns/iter 11103937.66666603 ns/iter 1.06
URITemplateRouter_Create 30192.811947000584 ns/iter 29410.734903961475 ns/iter 1.03
URITemplateRouter_Match 157.4679195145496 ns/iter 150.83343235130525 ns/iter 1.04
URITemplateRouter_Match_BasePath 182.6143525365962 ns/iter 179.46771138581488 ns/iter 1.02
URITemplateRouterView_Restore 8477.529404736082 ns/iter 9864.862306916502 ns/iter 0.86
URITemplateRouterView_Match 125.0406467461121 ns/iter 124.61354724095146 ns/iter 1.00
URITemplateRouterView_Match_BasePath 142.9176338999602 ns/iter 143.15870412088296 ns/iter 1.00
URITemplateRouterView_Arguments 481.1367033508546 ns/iter 462.1386339007004 ns/iter 1.04
JSONPath_Descendant_Filter_Nested 1670.2871482133817 ns/iter 1786.4247932406072 ns/iter 0.93
Pointer_Object_Traverse 23.264380348302247 ns/iter 24.402976423903155 ns/iter 0.95
Pointer_Object_Try_Traverse 26.521326514382615 ns/iter 28.514987364888068 ns/iter 0.93
Pointer_Push_Back_Pointer_To_Weak_Pointer 158.3608802155745 ns/iter 169.29605250122043 ns/iter 0.94
Pointer_Walker_Schema_ISO_Language 2565588.487084747 ns/iter 2549631.2720588655 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/0 1194990.6911262488 ns/iter 1207645.2370242851 ns/iter 0.99
Pointer_Maybe_Tracked_Deeply_Nested/1 1873130.1876677703 ns/iter 1642924.410798023 ns/iter 1.14
Pointer_Position_Tracker_Get_Deeply_Nested 395.76166921203287 ns/iter 440.27396574360966 ns/iter 0.90
JSON_Array_Of_Objects_Unique 470.5244971314739 ns/iter 468.7962017126152 ns/iter 1.00
JSON_Parse_1 5411.91159273095 ns/iter 5332.572271228825 ns/iter 1.01
JSON_Parse_Real 5817.042853944965 ns/iter 5536.2834391397855 ns/iter 1.05
JSON_Parse_Decimal 10563.243615434829 ns/iter 8563.12025261783 ns/iter 1.23
JSON_Parse_Schema_ISO_Language 3788065.9130434957 ns/iter 3706637.164021558 ns/iter 1.02
JSON_Parse_Integer 3864.131917235887 ns/iter 3805.4767818513 ns/iter 1.02
JSON_Parse_String_NonSSO_Plain 5294.798650185761 ns/iter 5395.607303475139 ns/iter 0.98
JSON_Parse_String_SSO_Plain 3182.2571901250503 ns/iter 2842.0033213677148 ns/iter 1.12
JSON_Parse_String_Escape_Heavy 19566.753622380147 ns/iter 18584.272826144675 ns/iter 1.05
JSON_Parse_Object_Short_Keys 8732.143743922914 ns/iter 8729.829348341205 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 4488.203116876488 ns/iter 4489.571155437844 ns/iter 1.00
JSON_Parse_Object_Array_Properties 6687.509420795837 ns/iter 6756.164833041333 ns/iter 0.99
JSON_Parse_Object_Object_Properties 6954.367774069653 ns/iter 6712.597199278241 ns/iter 1.04
JSON_Parse_Nested_Containers 49325.736255993535 ns/iter 49126.99824450344 ns/iter 1.00
JSON_From_String_Copy 17.72096081128189 ns/iter 19.353721949868877 ns/iter 0.92
JSON_From_String_Temporary 15.064056268554209 ns/iter 16.045399228077613 ns/iter 0.94
JSON_Number_To_Double 20.932737418334778 ns/iter 19.73624498206115 ns/iter 1.06
JSON_Object_At_Last_Key/8 3.742968852002652 ns/iter 4.199445895714604 ns/iter 0.89
JSON_Object_At_Last_Key/32 11.884450703288566 ns/iter 13.412626077581765 ns/iter 0.89
JSON_Object_At_Last_Key/128 48.64398036764322 ns/iter 47.27178948366948 ns/iter 1.03
JSON_Object_At_Last_Key/512 353.9477824174619 ns/iter 301.3414030236581 ns/iter 1.17
JSON_Fast_Hash_Helm_Chart_Lock 87.60428170731998 ns/iter 95.83674136403738 ns/iter 0.91
JSON_Equality_Helm_Chart_Lock 146.6059376901865 ns/iter 155.8455043761219 ns/iter 0.94
JSON_Divisible_By_Decimal 267.64100678532685 ns/iter 260.5441463208931 ns/iter 1.03
JSON_String_Equal/10 5.413753135887946 ns/iter 5.40936505046813 ns/iter 1.00
JSON_String_Equal/100 6.0419112571411615 ns/iter 6.116034866514193 ns/iter 0.99
JSON_String_Equal_Small_By_Perfect_Hash/10 0.623685650806397 ns/iter 0.7136664170443914 ns/iter 0.87
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.20429473683458 ns/iter 21.999457467003705 ns/iter 1.15
JSON_String_Fast_Hash/10 2.610680261113915 ns/iter 2.948140415070692 ns/iter 0.89
JSON_String_Fast_Hash/100 2.610741172309562 ns/iter 2.948072580473171 ns/iter 0.89
JSON_String_Key_Hash/10 1.2471427307401843 ns/iter 1.0833427029601628 ns/iter 1.15
JSON_String_Key_Hash/100 12.44548805861767 ns/iter 14.764847475737108 ns/iter 0.84
JSON_Object_Defines_Miss_Same_Length 3.1162727426854304 ns/iter 3.531894416623504 ns/iter 0.88
JSON_Object_Defines_Miss_Too_Small 3.1148693847218736 ns/iter 3.168389724653953 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Large 3.1147153124212856 ns/iter 3.1673202745287217 ns/iter 0.98
Regex_Lower_S_Or_Upper_S_Asterisk 0.6229348069639987 ns/iter 0.7039831485711848 ns/iter 0.88
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.9385849568851083 ns/iter 1.0555039311082253 ns/iter 0.89
Regex_Period_Asterisk 0.6237967090254477 ns/iter 0.7039041929366301 ns/iter 0.89
Regex_Group_Period_Asterisk_Group 0.938950954995356 ns/iter 1.0577355697894508 ns/iter 0.89
Regex_Period_Plus 0.623292823318574 ns/iter 0.7045092915590684 ns/iter 0.88
Regex_Period 0.9353058920238516 ns/iter 1.056516206557662 ns/iter 0.89
Regex_Caret_Period_Plus_Dollar 0.623193964384076 ns/iter 0.7042356871253803 ns/iter 0.88
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9370124702778095 ns/iter 1.0559894715287406 ns/iter 0.89
Regex_Caret_Period_Asterisk_Dollar 0.6254357431601357 ns/iter 0.7043339582205633 ns/iter 0.89
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.9350658261431477 ns/iter 1.0608073053626532 ns/iter 0.88
Regex_Caret_X_Hyphen 3.746845590711517 ns/iter 3.8696434581585315 ns/iter 0.97
Regex_Period_Md_Dollar 35.27555028473114 ns/iter 36.22562685709956 ns/iter 0.97
Regex_Caret_Slash_Period_Asterisk 4.047980508209471 ns/iter 4.2204338207533 ns/iter 0.96
Regex_Caret_Period_Range_Dollar 1.5573077549924441 ns/iter 1.7598062820427356 ns/iter 0.88
Regex_Nested_Backtrack 37.99201589529701 ns/iter 40.73790750401037 ns/iter 0.93

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: 4e663e6 Previous: 036ae97 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.4674620949596293 ns/iter 2.489474543797337 ns/iter 0.99
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.4612591975406732 ns/iter 2.80858244250507 ns/iter 0.88
Regex_Period_Asterisk 2.462659191395196 ns/iter 2.800443204055141 ns/iter 0.88
Regex_Group_Period_Asterisk_Group 2.4621608248333837 ns/iter 2.4900891638282387 ns/iter 0.99
Regex_Period_Plus 4.21867612244727 ns/iter 3.1115645873593833 ns/iter 1.36
Regex_Period 3.866773290760105 ns/iter 3.444161208582973 ns/iter 1.12
Regex_Caret_Period_Plus_Dollar 3.8671110585692006 ns/iter 3.425410589343981 ns/iter 1.13
Regex_Caret_Group_Period_Plus_Group_Dollar 4.2190289666289775 ns/iter 2.805003520995249 ns/iter 1.50
Regex_Caret_Period_Asterisk_Dollar 2.813449574280965 ns/iter 2.8041319232927377 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.4621143020746272 ns/iter 3.1140360568460315 ns/iter 0.79
Regex_Caret_X_Hyphen 5.683264444078215 ns/iter 7.4822577597841 ns/iter 0.76
Regex_Period_Md_Dollar 25.979197523581117 ns/iter 27.521961027321552 ns/iter 0.94
Regex_Caret_Slash_Period_Asterisk 6.818177430417839 ns/iter 7.469066939413289 ns/iter 0.91
Regex_Caret_Period_Range_Dollar 2.4622291314977547 ns/iter 4.672279131625557 ns/iter 0.53
Regex_Nested_Backtrack 38.15895239072247 ns/iter 47.482090050449685 ns/iter 0.80
JSON_Array_Of_Objects_Unique 473.04692346624154 ns/iter 421.05571151209074 ns/iter 1.12
JSON_Parse_1 4778.683422906826 ns/iter 4924.926746011179 ns/iter 0.97
JSON_Parse_Real 5053.555673245357 ns/iter 5487.058077519723 ns/iter 0.92
JSON_Parse_Decimal 7407.494778026195 ns/iter 7875.708508723347 ns/iter 0.94
JSON_Parse_Schema_ISO_Language 3538553.2893401594 ns/iter 3565745.152284273 ns/iter 0.99
JSON_Parse_Integer 3754.5579106004507 ns/iter 3879.3320747825833 ns/iter 0.97
JSON_Parse_String_NonSSO_Plain 5052.243569999746 ns/iter 5082.207513287264 ns/iter 0.99
JSON_Parse_String_SSO_Plain 2755.2060178162765 ns/iter 2771.972120790487 ns/iter 0.99
JSON_Parse_String_Escape_Heavy 14065.01923888798 ns/iter 14835.690684133428 ns/iter 0.95
JSON_Parse_Object_Short_Keys 7875.203946554881 ns/iter 7840.403155146975 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 4065.0419682207566 ns/iter 4071.2641245723007 ns/iter 1.00
JSON_Parse_Object_Array_Properties 5490.497011508443 ns/iter 5632.978485189914 ns/iter 0.97
JSON_Parse_Object_Object_Properties 5475.31194813531 ns/iter 5681.500389850731 ns/iter 0.96
JSON_Parse_Nested_Containers 45085.83467197628 ns/iter 46432.79093799681 ns/iter 0.97
JSON_From_String_Copy 20.74489878645927 ns/iter 21.170041623126867 ns/iter 0.98
JSON_From_String_Temporary 18.285534805592455 ns/iter 18.97116464217713 ns/iter 0.96
JSON_Number_To_Double 22.880418608030407 ns/iter 23.681855932315383 ns/iter 0.97
JSON_Object_At_Last_Key/8 4.0959717834403815 ns/iter 3.8301318647871145 ns/iter 1.07
JSON_Object_At_Last_Key/32 13.306278420647777 ns/iter 12.49395250718767 ns/iter 1.07
JSON_Object_At_Last_Key/128 46.96187281859622 ns/iter 48.31584181787316 ns/iter 0.97
JSON_Object_At_Last_Key/512 390.61295494178455 ns/iter 400.7233939473149 ns/iter 0.97
JSON_Fast_Hash_Helm_Chart_Lock 66.11326589882984 ns/iter 60.067073909274185 ns/iter 1.10
JSON_Equality_Helm_Chart_Lock 166.50328136912142 ns/iter 174.07637874008475 ns/iter 0.96
JSON_Divisible_By_Decimal 248.9634619699751 ns/iter 250.40680654725307 ns/iter 0.99
JSON_String_Equal/10 5.630576699158993 ns/iter 6.863593115848554 ns/iter 0.82
JSON_String_Equal/100 6.333121452565871 ns/iter 6.545067341479709 ns/iter 0.97
JSON_String_Equal_Small_By_Perfect_Hash/10 1.054895407380071 ns/iter 0.9392388546924582 ns/iter 1.12
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.346477628680375 ns/iter 14.926065130640575 ns/iter 0.83
JSON_String_Fast_Hash/10 2.1110732035758875 ns/iter 2.8009801132043557 ns/iter 0.75
JSON_String_Fast_Hash/100 2.1207129077217846 ns/iter 2.801918391811532 ns/iter 0.76
JSON_String_Key_Hash/10 2.4604349668422953 ns/iter 2.737092952260962 ns/iter 0.90
JSON_String_Key_Hash/100 8.088376199841768 ns/iter 9.02858782023298 ns/iter 0.90
JSON_Object_Defines_Miss_Same_Length 3.930537508489237 ns/iter 3.126591542115869 ns/iter 1.26
JSON_Object_Defines_Miss_Too_Small 3.2039992524595498 ns/iter 3.4237059725012315 ns/iter 0.94
JSON_Object_Defines_Miss_Too_Large 2.9196452942843294 ns/iter 2.7934712550186362 ns/iter 1.05
Pointer_Object_Traverse 30.87823222633483 ns/iter 28.922394235516876 ns/iter 1.07
Pointer_Object_Try_Traverse 33.251293791151824 ns/iter 31.48795848463001 ns/iter 1.06
Pointer_Push_Back_Pointer_To_Weak_Pointer 190.42043938351475 ns/iter 216.35949760453755 ns/iter 0.88
Pointer_Walker_Schema_ISO_Language 2719288.0615385864 ns/iter 2558166.117216051 ns/iter 1.06
Pointer_Maybe_Tracked_Deeply_Nested/0 1276744.0147059388 ns/iter 1218595.635087663 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/1 2062008.2732922349 ns/iter 1573385.1609977547 ns/iter 1.31
Pointer_Position_Tracker_Get_Deeply_Nested 456.74260315918826 ns/iter 712.8894742333713 ns/iter 0.64
JSONPath_Descendant_Filter_Nested 1608.2935427974244 ns/iter 1602.5378510010037 ns/iter 1.00
URITemplateRouter_Create 30713.35123878201 ns/iter 31926.15932203104 ns/iter 0.96
URITemplateRouter_Match 178.2942207682301 ns/iter 186.28564250947494 ns/iter 0.96
URITemplateRouter_Match_BasePath 209.92812586211522 ns/iter 213.67725678820347 ns/iter 0.98
URITemplateRouterView_Restore 9903.621934736344 ns/iter 8355.643585249998 ns/iter 1.19
URITemplateRouterView_Match 142.1016766613934 ns/iter 160.8760958825502 ns/iter 0.88
URITemplateRouterView_Match_BasePath 164.09554999289364 ns/iter 189.95117777109064 ns/iter 0.86
URITemplateRouterView_Arguments 451.78527917538065 ns/iter 443.19130190744977 ns/iter 1.02
JSONL_Parse_Large 8903928.692307206 ns/iter 9730081.361111173 ns/iter 0.92
JSONL_Parse_Large_GZIP 10606636.83333277 ns/iter 11297406.967742063 ns/iter 0.94
JSONLD_Catalog_Annotation_List_Populate 1366950.2319688383 ns/iter 1328845.667296654 ns/iter 1.03
JSONLD_Catalog_Materialize 4377942.339622495 ns/iter 4361477.465408825 ns/iter 1.00
HTML_Build_Table_100000 72931272.22222513 ns/iter 64168215.090903275 ns/iter 1.14
HTML_Render_Table_100000 4960405.574468122 ns/iter 5337859.503816367 ns/iter 0.93
GZIP_Compress_ISO_Language_Set_3_Locations 35660406.75000295 ns/iter 32815789.95238089 ns/iter 1.09
GZIP_Decompress_ISO_Language_Set_3_Locations 4268877.353658448 ns/iter 4106404.976048412 ns/iter 1.04
GZIP_Compress_ISO_Language_Set_3_Schema 2088916.886227612 ns/iter 1862788.9015957492 ns/iter 1.12
GZIP_Decompress_ISO_Language_Set_3_Schema 276839.3126482468 ns/iter 355987.0942435079 ns/iter 0.78
JOSE_VerifySignature_RS256 63817.97546515597 ns/iter 58397.96545394477 ns/iter 1.09
JOSE_VerifySignature_ES512 2637274.7631581775 ns/iter 2434112.5363321616 ns/iter 1.08

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

@jviotti
jviotti merged commit fc389c7 into main Aug 10, 2026
13 checks passed
@jviotti
jviotti deleted the better-canonical-2 branch August 10, 2026 23:53

@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: 4e663e6 Previous: 036ae97 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.358005999999023 ns/iter 5.488070535715143 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.074079000000893 ns/iter 5.104585000001407 ns/iter 0.99
Regex_Period_Asterisk 5.1001678571428295 ns/iter 5.06191200000103 ns/iter 1.01
Regex_Group_Period_Asterisk_Group 5.128336999998737 ns/iter 5.0776159386331035 ns/iter 1.01
Regex_Period_Plus 4.820248126075183 ns/iter 4.866016751932973 ns/iter 0.99
Regex_Period 5.153797999998915 ns/iter 5.026623000001109 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 4.829068537564279 ns/iter 4.867509978765104 ns/iter 0.99
Regex_Caret_Group_Period_Plus_Group_Dollar 5.031358999999611 ns/iter 5.02042857142726 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 5.414160000000265 ns/iter 5.333187999999609 ns/iter 1.02
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.133659000000534 ns/iter 5.1044789999991735 ns/iter 1.01
Regex_Caret_X_Hyphen 8.864592817568715 ns/iter 8.80015576428457 ns/iter 1.01
Regex_Period_Md_Dollar 45.062419910165026 ns/iter 45.29810964020456 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 8.368896205355826 ns/iter 8.166435267857556 ns/iter 1.02
Regex_Caret_Period_Range_Dollar 5.988148214285616 ns/iter 5.968514999999569 ns/iter 1.00
Regex_Nested_Backtrack 55.41214999998374 ns/iter 56.36818749999455 ns/iter 0.98
JSON_Array_Of_Objects_Unique 593.5756250000932 ns/iter 591.1868000000595 ns/iter 1.00
JSON_Parse_1 9271.580484018014 ns/iter 9245.792652711041 ns/iter 1.00
JSON_Parse_Real 16016.607142859131 ns/iter 16203.533482145156 ns/iter 0.99
JSON_Parse_Decimal 12107.421875001022 ns/iter 11812.3343750014 ns/iter 1.02
JSON_Parse_Schema_ISO_Language 7932643.3333335435 ns/iter 7649053.333332429 ns/iter 1.04
JSON_Parse_Integer 6277.223214285397 ns/iter 6191.27678571577 ns/iter 1.01
JSON_Parse_String_NonSSO_Plain 7853.872767855969 ns/iter 7832.5098214285 ns/iter 1.00
JSON_Parse_String_SSO_Plain 3689.9718124498677 ns/iter 3684.087933751621 ns/iter 1.00
JSON_Parse_String_Escape_Heavy 21562.637500004203 ns/iter 22144.93125000416 ns/iter 0.97
JSON_Parse_Object_Short_Keys 13426.501667403745 ns/iter 13337.844642856162 ns/iter 1.01
JSON_Parse_Object_Scalar_Properties 6949.59933035731 ns/iter 6750.925892857497 ns/iter 1.03
JSON_Parse_Object_Array_Properties 11435.257142855855 ns/iter 11537.864285713795 ns/iter 0.99
JSON_Parse_Object_Object_Properties 11624.512499999184 ns/iter 11693.010937502635 ns/iter 0.99
JSON_Parse_Nested_Containers 79450.1004464416 ns/iter 81579.89955357437 ns/iter 0.97
JSON_From_String_Copy 64.12987723215683 ns/iter 64.74000000001264 ns/iter 0.99
JSON_From_String_Temporary 60.317044642853745 ns/iter 60.383616071411396 ns/iter 1.00
JSON_Number_To_Double 121.72185937501467 ns/iter 119.89953571429623 ns/iter 1.02
JSON_Object_At_Last_Key/8 7.267613839285758 ns/iter 7.342607142857917 ns/iter 0.99
JSON_Object_At_Last_Key/32 23.73657562794316 ns/iter 23.396534374995777 ns/iter 1.01
JSON_Object_At_Last_Key/128 89.91254062890027 ns/iter 90.4817772106568 ns/iter 0.99
JSON_Object_At_Last_Key/512 425.25931249997484 ns/iter 429.03518749994873 ns/iter 0.99
JSON_Fast_Hash_Helm_Chart_Lock 102.52012500000518 ns/iter 104.31971875000556 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 212.72032532502007 ns/iter 211.74240625001062 ns/iter 1.00
JSON_Divisible_By_Decimal 299.0065848657928 ns/iter 321.9452232143689 ns/iter 0.93
JSON_String_Equal/10 10.434981250000419 ns/iter 10.520842187499824 ns/iter 0.99
JSON_String_Equal/100 11.876714062502458 ns/iter 11.764576562498519 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5407603571425494 ns/iter 2.516996071428171 ns/iter 1.01
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.317145695014565 ns/iter 14.252210714285443 ns/iter 1.00
JSON_String_Fast_Hash/10 6.7449633928577315 ns/iter 6.688920535712636 ns/iter 1.01
JSON_String_Fast_Hash/100 6.645043999999416 ns/iter 6.658079464285395 ns/iter 1.00
JSON_String_Key_Hash/10 5.355483999999251 ns/iter 5.357440178573012 ns/iter 1.00
JSON_String_Key_Hash/100 11.92100892857135 ns/iter 11.930987500002338 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.8339330357141574 ns/iter 3.8557242788293813 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 4.153190096703157 ns/iter 4.214823547224407 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 3.9188357072880935 ns/iter 3.835973214285003 ns/iter 1.02
Pointer_Object_Traverse 67.25157142856882 ns/iter 66.93741071429774 ns/iter 1.00
Pointer_Object_Try_Traverse 71.53335937500418 ns/iter 70.76296428570978 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 190.09983840179714 ns/iter 184.89269507972236 ns/iter 1.03
Pointer_Walker_Schema_ISO_Language 12304598.214285534 ns/iter 11077223.43749984 ns/iter 1.11
Pointer_Maybe_Tracked_Deeply_Nested/0 2564952.9661012883 ns/iter 2409973.214286408 ns/iter 1.06
Pointer_Maybe_Tracked_Deeply_Nested/1 3743036.3636364606 ns/iter 3658325.6684489874 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 567.8907366072192 ns/iter 571.2712053570965 ns/iter 0.99
JSONPath_Descendant_Filter_Nested 2390.9313717282043 ns/iter 2410.8381575466997 ns/iter 0.99
URITemplateRouter_Create 41179.670361546036 ns/iter 41037.80395798947 ns/iter 1.00
URITemplateRouter_Match 234.6356992594088 ns/iter 239.45227238259824 ns/iter 0.98
URITemplateRouter_Match_BasePath 273.62639614404077 ns/iter 267.6075231074733 ns/iter 1.02
URITemplateRouterView_Restore 34043.95992928828 ns/iter 33821.77377771414 ns/iter 1.01
URITemplateRouterView_Match 182.8864716862802 ns/iter 188.35579360318818 ns/iter 0.97
URITemplateRouterView_Match_BasePath 207.93075411024753 ns/iter 208.5440937499783 ns/iter 1.00
URITemplateRouterView_Arguments 545.7378571429265 ns/iter 538.0272321429759 ns/iter 1.01
JSONL_Parse_Large 33430442.857144 ns/iter 32519266.666668046 ns/iter 1.03
JSONL_Parse_Large_GZIP 34020759.99999852 ns/iter 33300959.99999685 ns/iter 1.02
JSONLD_Catalog_Annotation_List_Populate 3260959.1549299895 ns/iter 3107979.9107140666 ns/iter 1.05
JSONLD_Catalog_Materialize 10652546.875000723 ns/iter 8430228.888889562 ns/iter 1.26
HTML_Build_Table_100000 91815785.71428873 ns/iter 94935842.8571421 ns/iter 0.97
HTML_Render_Table_100000 7739302.222221846 ns/iter 8024424.444442957 ns/iter 0.96
GZIP_Compress_ISO_Language_Set_3_Locations 35254730.0000083 ns/iter 35476421.05263549 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Locations 10079069.333332881 ns/iter 9976686.666668683 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Schema 2067660.0000001597 ns/iter 2089058.550724814 ns/iter 0.99
GZIP_Decompress_ISO_Language_Set_3_Schema 626138.100000162 ns/iter 617360.9821427054 ns/iter 1.01
JOSE_VerifySignature_RS256 21476.193749997205 ns/iter 21475.246874999244 ns/iter 1.00
JOSE_VerifySignature_ES512 1372039.156626122 ns/iter 1381511.2449797508 ns/iter 0.99

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