Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Feb 3, 2026

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

Copy link

@github-actions github-actions bot left a comment

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: bc9f8bf Previous: b4c99ff Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1146074230552383 ns/iter 2.310456318316572 ns/iter 1.35
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1267933504382177 ns/iter 2.3438655113756646 ns/iter 1.33
Regex_Period_Asterisk 2.6188822934447797 ns/iter 2.3616521054327526 ns/iter 1.11
Regex_Group_Period_Asterisk_Group 2.750174880442664 ns/iter 2.4986715150036467 ns/iter 1.10
Regex_Period_Plus 3.585089398712602 ns/iter 2.8572107801479047 ns/iter 1.25
Regex_Period 3.284260882458103 ns/iter 3.0125909559337467 ns/iter 1.09
Regex_Caret_Period_Plus_Dollar 3.4190761973898836 ns/iter 2.7642628753365215 ns/iter 1.24
Regex_Caret_Group_Period_Plus_Group_Dollar 3.880886916999314 ns/iter 2.6161927586075615 ns/iter 1.48
Regex_Caret_Period_Asterisk_Dollar 3.5482545476040346 ns/iter 2.1892529799397615 ns/iter 1.62
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.044118966989782 ns/iter 2.211609006375574 ns/iter 1.38
Regex_Caret_X_Hyphen 10.46002627932884 ns/iter 7.736242027644583 ns/iter 1.35
Regex_Period_Md_Dollar 33.79527057354965 ns/iter 25.014155137883847 ns/iter 1.35
Regex_Caret_Slash_Period_Asterisk 7.523858198395231 ns/iter 6.151189243438073 ns/iter 1.22
Regex_Caret_Period_Range_Dollar 3.0421348690481866 ns/iter 1.941850536944558 ns/iter 1.57
Regex_Nested_Backtrack 41.85580959136696 ns/iter 38.19899337533005 ns/iter 1.10
JSON_Array_Of_Objects_Unique 457.0060693970856 ns/iter 484.2925552569959 ns/iter 0.94
JSON_Parse_1 30375.243254614285 ns/iter 29014.036309986685 ns/iter 1.05
JSON_Parse_Real 38052.85344524508 ns/iter 33920.93494324765 ns/iter 1.12
JSON_Parse_Decimal 350682.2095737884 ns/iter 347890.7596372727 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 25297410.714285564 ns/iter 21516037.878792774 ns/iter 1.18
JSON_Fast_Hash_Helm_Chart_Lock 85.21061362230907 ns/iter 68.746097023388 ns/iter 1.24
JSON_Equality_Helm_Chart_Lock 213.82235013551661 ns/iter 178.14813144430042 ns/iter 1.20
JSON_String_Equal/10 10.92823202435609 ns/iter 9.481700327303145 ns/iter 1.15
JSON_String_Equal/100 9.891527829494589 ns/iter 10.55536281048392 ns/iter 0.94
JSON_String_Equal_Small_By_Perfect_Hash/10 0.43714413213762765 ns/iter 0.3870264273251256 ns/iter 1.13
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 5.946015258253249 ns/iter 4.494597166569485 ns/iter 1.32
JSON_String_Fast_Hash/10 3.516996756167551 ns/iter 2.84144621042211 ns/iter 1.24
JSON_String_Fast_Hash/100 2.8261582380655987 ns/iter 2.5139072831698197 ns/iter 1.12
JSON_String_Key_Hash/10 2.231124761059189 ns/iter 1.9329344054878441 ns/iter 1.15
JSON_String_Key_Hash/100 3.366570984534935 ns/iter 2.552075407217355 ns/iter 1.32
JSON_Object_Defines_Miss_Same_Length 5.047392753017624 ns/iter 2.830801813599908 ns/iter 1.78
JSON_Object_Defines_Miss_Too_Small 4.231051485386311 ns/iter 3.1478092827663082 ns/iter 1.34
JSON_Object_Defines_Miss_Too_Large 4.321073932955606 ns/iter 3.0104192734306636 ns/iter 1.44
Pointer_Object_Traverse 23.619471353697325 ns/iter 17.21903470618576 ns/iter 1.37
Pointer_Object_Try_Traverse 34.39419439263798 ns/iter 23.131969977564445 ns/iter 1.49
Pointer_Push_Back_Pointer_To_Weak_Pointer 250.90715010211227 ns/iter 173.5483129991071 ns/iter 1.45
Pointer_Walker_Schema_ISO_Language 6683844.611766557 ns/iter 5173113.097744751 ns/iter 1.29
Schema_Frame_WoT_References 7074428.306307849 ns/iter 5096870.638094299 ns/iter 1.39
Schema_Frame_OMC_References 41671872.94999622 ns/iter 27328344.57692836 ns/iter 1.52
Schema_Frame_OMC_Locations 39348469.1739124 ns/iter 24075244.275857992 ns/iter 1.63
Schema_Frame_ISO_Language_Locations 119273966.60003069 ns/iter 112900260.37499957 ns/iter 1.06
Schema_Frame_KrakenD_References 69516981.5555548 ns/iter 62926406.249990426 ns/iter 1.10
Schema_Frame_KrakenD_Reachable 66452.5288930594 ns/iter 231904.67806774806 ns/iter 0.29
Schema_Iterator_ISO_Language 3700552.415789628 ns/iter 2338676.671732693 ns/iter 1.58
Schema_Frame_ISO_Language_Locations_To_JSON 155050354.25002235 ns/iter 85004559.57144888 ns/iter 1.82
Schema_Tracker_ISO_Language 64116708.272732385 ns/iter 39616527.77777797 ns/iter 1.62
Schema_Tracker_ISO_Language_To_JSON 22966612.36364068 ns/iter 14360318.877551232 ns/iter 1.60
Schema_Format_ISO_Language_To_JSON 123982616.39996235 ns/iter 91736785.71427704 ns/iter 1.35
Schema_Bundle_Meta_2020_12 2318207.137187078 ns/iter 1936630.5437702658 ns/iter 1.20
Schema_Frame_Many_Resources_References 390797792.0000576 ns/iter 563435749.9999396 ns/iter 0.69
Alterschema_Check_Readibility_ISO_Language_Set_3 201276722.3332806 ns/iter 174131541.66661116 ns/iter 1.16
Alterschema_Check_Readibility_OMC 50396663.71427692 ns/iter 37060272.89999838 ns/iter 1.36
Alterschema_Apply_Readibility_KrakenD 723359832.9996767 ns/iter 505093166.0000515 ns/iter 1.43
EditorSchema_ForEditor_EmbeddedResources 18225744.09524285 ns/iter 12882279.157900866 ns/iter 1.41
URITemplateRouter_Create 22796.83041782049 ns/iter 19043.660039534472 ns/iter 1.20
URITemplateRouter_Match 239.75851196329717 ns/iter 207.1508366130426 ns/iter 1.16
URITemplateRouterView_Restore 13132.864597685482 ns/iter 17204.46175011317 ns/iter 0.76
URITemplateRouterView_Match 169.05374784338923 ns/iter 144.80726462677424 ns/iter 1.17

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

Copy link

@github-actions github-actions bot left a comment

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: bc9f8bf Previous: b4c99ff Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1190742537891722 ns/iter 2.029508081202255 ns/iter 1.54
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1062649228324033 ns/iter 2.0163033180800887 ns/iter 1.54
Regex_Period_Asterisk 3.1066848652346497 ns/iter 2.0164134840538543 ns/iter 1.54
Regex_Group_Period_Asterisk_Group 3.1072528561453785 ns/iter 2.0156119616968633 ns/iter 1.54
Regex_Period_Plus 2.847714963372764 ns/iter 2.309951439452988 ns/iter 1.23
Regex_Period 3.107736395318566 ns/iter 2.309048529716433 ns/iter 1.35
Regex_Caret_Period_Plus_Dollar 3.0540788431450094 ns/iter 2.304946373117266 ns/iter 1.33
Regex_Caret_Group_Period_Plus_Group_Dollar 2.850337874195329 ns/iter 2.3107993629573653 ns/iter 1.23
Regex_Caret_Period_Asterisk_Dollar 3.4050249290308634 ns/iter 2.0167357682758205 ns/iter 1.69
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1066590896644817 ns/iter 2.016560523888137 ns/iter 1.54
Regex_Caret_X_Hyphen 10.6179005755969 ns/iter 8.63974376538178 ns/iter 1.23
Regex_Period_Md_Dollar 27.378447538782954 ns/iter 25.192033374995937 ns/iter 1.09
Regex_Caret_Slash_Period_Asterisk 6.2193559025174245 ns/iter 8.984145049008958 ns/iter 0.69
Regex_Caret_Period_Range_Dollar 4.043717087808729 ns/iter 2.3278955259630476 ns/iter 1.74
Regex_Nested_Backtrack 48.9366904332049 ns/iter 43.72185705041191 ns/iter 1.12
JSON_Array_Of_Objects_Unique 441.0047737911174 ns/iter 356.3635102993833 ns/iter 1.24
JSON_Parse_1 30318.325582404177 ns/iter 27544.10548939107 ns/iter 1.10
JSON_Parse_Real 37994.87968775534 ns/iter 36348.48560461054 ns/iter 1.05
JSON_Parse_Decimal 130389.91598965791 ns/iter 124307.16396941239 ns/iter 1.05
JSON_Parse_Schema_ISO_Language 22563097.892856378 ns/iter 20137224.657144412 ns/iter 1.12
JSON_Fast_Hash_Helm_Chart_Lock 62.47631945872038 ns/iter 43.42455967256795 ns/iter 1.44
JSON_Equality_Helm_Chart_Lock 163.083386244271 ns/iter 130.84819274995397 ns/iter 1.25
JSON_String_Equal/10 6.848443834184787 ns/iter 4.893426903557916 ns/iter 1.40
JSON_String_Equal/100 7.466167465259447 ns/iter 6.045456742539644 ns/iter 1.24
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9422143243741433 ns/iter 0.6908728323110184 ns/iter 1.36
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.278310732130754 ns/iter 9.510219621995365 ns/iter 1.08
JSON_String_Fast_Hash/10 2.4880052204889744 ns/iter 1.7282577534402936 ns/iter 1.44
JSON_String_Fast_Hash/100 2.48699469120163 ns/iter 1.7296855958210726 ns/iter 1.44
JSON_String_Key_Hash/10 2.4913738765941233 ns/iter 2.014556448780947 ns/iter 1.24
JSON_String_Key_Hash/100 6.5294770551631025 ns/iter 6.621014195923098 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 3.7348383064016697 ns/iter 3.4115717094351163 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Small 3.735461861051914 ns/iter 3.6535842717908693 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 3.7336153365368516 ns/iter 3.4087709350891093 ns/iter 1.10
Pointer_Object_Traverse 44.46358612674479 ns/iter 36.40132182368917 ns/iter 1.22
Pointer_Object_Try_Traverse 53.23742695880897 ns/iter 46.03117093958536 ns/iter 1.16
Pointer_Push_Back_Pointer_To_Weak_Pointer 325.3465311149402 ns/iter 278.33455891901576 ns/iter 1.17
Pointer_Walker_Schema_ISO_Language 3109149.0533334664 ns/iter 3005277.0085835946 ns/iter 1.03
Schema_Frame_WoT_References 4832643.255172272 ns/iter 4364215.57763972 ns/iter 1.11
Schema_Frame_OMC_References 19906431.94285764 ns/iter 18379093.605263185 ns/iter 1.08
Schema_Frame_OMC_Locations 18383009.078945633 ns/iter 16825759.26190566 ns/iter 1.09
Schema_Frame_ISO_Language_Locations 97484322.49998964 ns/iter 90864460.28571312 ns/iter 1.07
Schema_Frame_KrakenD_References 36320350.421054795 ns/iter 34233557.950000204 ns/iter 1.06
Schema_Frame_KrakenD_Reachable 152563.30128343726 ns/iter 609136.2138296847 ns/iter 0.25
Schema_Iterator_ISO_Language 2310751.236842335 ns/iter 2210942.62145099 ns/iter 1.05
Schema_Frame_ISO_Language_Locations_To_JSON 134103513.50000837 ns/iter 125639201.80000421 ns/iter 1.07
Schema_Tracker_ISO_Language 45356408.60000665 ns/iter 40900642.94117677 ns/iter 1.11
Schema_Tracker_ISO_Language_To_JSON 22987050.258063477 ns/iter 21230473.818181135 ns/iter 1.08
Schema_Format_ISO_Language_To_JSON 102302623.28574164 ns/iter 95483318.85714236 ns/iter 1.07
Schema_Bundle_Meta_2020_12 2034689.0348834842 ns/iter 1930869.8512421676 ns/iter 1.05
Schema_Frame_Many_Resources_References 350260408.99998635 ns/iter 359921545.49995804 ns/iter 0.97
Alterschema_Check_Readibility_ISO_Language_Set_3 208284904.33333018 ns/iter 185955074.74998385 ns/iter 1.12
Alterschema_Check_Readibility_OMC 34405255.84999818 ns/iter 27679724.680001527 ns/iter 1.24
Alterschema_Apply_Readibility_KrakenD 573498535.9999882 ns/iter 418600534.99999595 ns/iter 1.37
EditorSchema_ForEditor_EmbeddedResources 13271696.169803757 ns/iter 12401345.803569695 ns/iter 1.07
URITemplateRouter_Create 16691.12860768862 ns/iter 13595.8278567533 ns/iter 1.23
URITemplateRouter_Match 173.58981406268373 ns/iter 146.65534823193528 ns/iter 1.18
URITemplateRouterView_Restore 8255.674932982682 ns/iter 3391.0773970405635 ns/iter 2.43
URITemplateRouterView_Match 123.73491298388734 ns/iter 116.77515076598979 ns/iter 1.06

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

Copy link

@github-actions github-actions bot left a comment

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: bc9f8bf Previous: b4c99ff Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.9383289999991575 ns/iter 4.508881250001195 ns/iter 1.10
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.472067857142698 ns/iter 4.1071788019764 ns/iter 1.09
Regex_Period_Asterisk 4.175804328492978 ns/iter 3.779376421822433 ns/iter 1.10
Regex_Group_Period_Asterisk_Group 4.344638100739835 ns/iter 3.78021875000023 ns/iter 1.15
Regex_Period_Plus 4.606029854761427 ns/iter 3.775658944992462 ns/iter 1.22
Regex_Period 4.519407890688385 ns/iter 3.7842583860999537 ns/iter 1.19
Regex_Caret_Period_Plus_Dollar 4.521248872827078 ns/iter 3.7740787217819505 ns/iter 1.20
Regex_Caret_Group_Period_Plus_Group_Dollar 4.640609821430124 ns/iter 3.778513921823105 ns/iter 1.23
Regex_Caret_Period_Asterisk_Dollar 4.181857500000774 ns/iter 3.780226064678471 ns/iter 1.11
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.1608856231433 ns/iter 3.776172850400362 ns/iter 1.10
Regex_Caret_X_Hyphen 7.6738370535725915 ns/iter 7.5604029017866425 ns/iter 1.02
Regex_Period_Md_Dollar 35.6219274400277 ns/iter 35.19201580699312 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 7.227069196429982 ns/iter 7.236053571428868 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.752658269537496 ns/iter 4.722477465898007 ns/iter 1.01
Regex_Nested_Backtrack 107.834432685986 ns/iter 94.37767882241315 ns/iter 1.14
JSON_Array_Of_Objects_Unique 512.3367857143941 ns/iter 455.45327130647104 ns/iter 1.12
JSON_Parse_1 73812.91294643281 ns/iter 75519.60937500926 ns/iter 0.98
JSON_Parse_Real 90773.63064146135 ns/iter 91543.32395874626 ns/iter 0.99
JSON_Parse_Decimal 330909.7022586776 ns/iter 335761.90965092066 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 61219779.999987625 ns/iter 57438727.27271082 ns/iter 1.07
JSON_Fast_Hash_Helm_Chart_Lock 72.71805803570024 ns/iter 61.20256250000012 ns/iter 1.19
JSON_Equality_Helm_Chart_Lock 307.6677232143205 ns/iter 267.3263400591827 ns/iter 1.15
JSON_String_Equal/10 13.469098214282026 ns/iter 12.611762500000625 ns/iter 1.07
JSON_String_Equal/100 14.685245535715246 ns/iter 14.239458418576081 ns/iter 1.03
JSON_String_Equal_Small_By_Perfect_Hash/10 2.2507387499999254 ns/iter 2.199553124999909 ns/iter 1.02
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.765803571426204 ns/iter 12.887391071428413 ns/iter 0.99
JSON_String_Fast_Hash/10 4.200842007052229 ns/iter 3.4517666009791452 ns/iter 1.22
JSON_String_Fast_Hash/100 4.218760624999618 ns/iter 3.453823208118497 ns/iter 1.22
JSON_String_Key_Hash/10 4.600503571428557 ns/iter 4.407002499999635 ns/iter 1.04
JSON_String_Key_Hash/100 16.656787946424906 ns/iter 13.765620474257402 ns/iter 1.21
JSON_Object_Defines_Miss_Same_Length 4.03469624999957 ns/iter 3.832664993155537 ns/iter 1.05
JSON_Object_Defines_Miss_Too_Small 3.9290555873736697 ns/iter 3.9088850446424215 ns/iter 1.01
JSON_Object_Defines_Miss_Too_Large 3.982222163401669 ns/iter 3.9228404017853187 ns/iter 1.02
Pointer_Object_Traverse 52.298164154733634 ns/iter 50.53438999998434 ns/iter 1.03
Pointer_Object_Try_Traverse 75.89607142856535 ns/iter 69.17324776785401 ns/iter 1.10
Pointer_Push_Back_Pointer_To_Weak_Pointer 198.8520826405226 ns/iter 151.21133928569668 ns/iter 1.32
Pointer_Walker_Schema_ISO_Language 12772173.214285333 ns/iter 10881509.37500032 ns/iter 1.17
Schema_Frame_WoT_References 10218545.333330743 ns/iter 9939317.333334355 ns/iter 1.03
Schema_Frame_OMC_References 45668286.66667485 ns/iter 43140556.24999469 ns/iter 1.06
Schema_Frame_OMC_Locations 42558317.64704881 ns/iter 39932041.17647806 ns/iter 1.07
Schema_Frame_ISO_Language_Locations 222870266.66670802 ns/iter 203255133.33333826 ns/iter 1.10
Schema_Frame_KrakenD_References 100007242.85711321 ns/iter 94466728.57143311 ns/iter 1.06
Schema_Frame_KrakenD_Reachable 95376.57693853373 ns/iter 549132.0419693706 ns/iter 0.17
Schema_Iterator_ISO_Language 5232571.14093896 ns/iter 4208331.976744724 ns/iter 1.24
Schema_Frame_ISO_Language_Locations_To_JSON 295382700.00000465 ns/iter 260903366.66667703 ns/iter 1.13
Schema_Tracker_ISO_Language 106933633.33333158 ns/iter 101719199.99999903 ns/iter 1.05
Schema_Tracker_ISO_Language_To_JSON 60333936.36363888 ns/iter 55163070.00000324 ns/iter 1.09
Schema_Format_ISO_Language_To_JSON 230312600.00008538 ns/iter 205399049.99992585 ns/iter 1.12
Schema_Bundle_Meta_2020_12 4112300.0000054324 ns/iter 4023354.2168684234 ns/iter 1.02
Schema_Frame_Many_Resources_References 1544425000.0000465 ns/iter 1485261400.0001268 ns/iter 1.04
Alterschema_Check_Readibility_ISO_Language_Set_3 356927550.00002307 ns/iter 327764450.0000179 ns/iter 1.09
Alterschema_Check_Readibility_OMC 70805809.09091209 ns/iter 57568154.545461684 ns/iter 1.23
Alterschema_Apply_Readibility_KrakenD 1124058299.9998877 ns/iter 878411700.0000151 ns/iter 1.28
EditorSchema_ForEditor_EmbeddedResources 28424886.36361974 ns/iter 27191791.891869504 ns/iter 1.05
URITemplateRouter_Create 22979.432149198405 ns/iter 21974.043749999342 ns/iter 1.05
URITemplateRouter_Match 216.50174999997773 ns/iter 209.20254869633692 ns/iter 1.03
URITemplateRouterView_Restore 33522.795668686216 ns/iter 34440.613134582905 ns/iter 0.97
URITemplateRouterView_Match 146.13038186917936 ns/iter 141.15932851967125 ns/iter 1.04

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

Copy link

@github-actions github-actions bot left a comment

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: bc9f8bf Previous: b4c99ff Ratio
URITemplateRouter_Create 14821.90590331291 ns/iter 14872.029152905216 ns/iter 1.00
URITemplateRouter_Match 158.77916372573048 ns/iter 178.15549895379274 ns/iter 0.89
URITemplateRouterView_Restore 8143.1858804198655 ns/iter 8194.419388596974 ns/iter 0.99
URITemplateRouterView_Match 117.83955474331297 ns/iter 118.37585747453123 ns/iter 1.00
EditorSchema_ForEditor_EmbeddedResources 13926785.600001495 ns/iter 14090845.020000415 ns/iter 0.99
Alterschema_Check_Readibility_ISO_Language_Set_3 218215009.66666463 ns/iter 220160858.66660735 ns/iter 0.99
Alterschema_Check_Readibility_OMC 39643759.76471167 ns/iter 33379422.142854225 ns/iter 1.19
Alterschema_Apply_Readibility_KrakenD 674780015.999886 ns/iter 501123450.00002277 ns/iter 1.35
Schema_Frame_WoT_References 5427676.696969586 ns/iter 5435345.446153406 ns/iter 1.00
Schema_Frame_OMC_References 23109560.75861809 ns/iter 22418145.161289487 ns/iter 1.03
Schema_Frame_OMC_Locations 21405274.49999752 ns/iter 20842444.999997873 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 109495762.16667841 ns/iter 104597528.28572683 ns/iter 1.05
Schema_Frame_KrakenD_References 44737332.75000314 ns/iter 41847111.11763724 ns/iter 1.07
Schema_Frame_KrakenD_Reachable 168757.68863415864 ns/iter 483250.81612319266 ns/iter 0.35
Schema_Iterator_ISO_Language 2514172.241876704 ns/iter 2700197.9807690843 ns/iter 0.93
Schema_Frame_ISO_Language_Locations_To_JSON 309124239.99996006 ns/iter 309140111.0000334 ns/iter 1.00
Schema_Tracker_ISO_Language 49692571.785726614 ns/iter 47707422.39999588 ns/iter 1.04
Schema_Tracker_ISO_Language_To_JSON 35560075.68420826 ns/iter 32762936.0000022 ns/iter 1.09
Schema_Format_ISO_Language_To_JSON 118023413.33342762 ns/iter 112475885.83330525 ns/iter 1.05
Schema_Bundle_Meta_2020_12 2271276.1326866946 ns/iter 2289414.2941302657 ns/iter 0.99
Schema_Frame_Many_Resources_References 395418276.4999814 ns/iter 377411916.50002295 ns/iter 1.05
Pointer_Object_Traverse 46.49316405867624 ns/iter 46.833512758012816 ns/iter 0.99
Pointer_Object_Try_Traverse 28.289840368621395 ns/iter 24.688764592541894 ns/iter 1.15
Pointer_Push_Back_Pointer_To_Weak_Pointer 142.62305737633434 ns/iter 153.90883240198406 ns/iter 0.93
Pointer_Walker_Schema_ISO_Language 3426830.7277222835 ns/iter 3464981.147783251 ns/iter 0.99
JSON_Array_Of_Objects_Unique 423.7909569842248 ns/iter 424.8506847524275 ns/iter 1.00
JSON_Parse_1 32775.439472822625 ns/iter 33049.25689801957 ns/iter 0.99
JSON_Parse_Real 43675.39382214837 ns/iter 44163.84166194379 ns/iter 0.99
JSON_Parse_Decimal 157362.53150933245 ns/iter 159230.61970872126 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 22316538.48387014 ns/iter 22107340.53124952 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 62.88928805048554 ns/iter 61.179038562569474 ns/iter 1.03
JSON_Equality_Helm_Chart_Lock 154.29561651823232 ns/iter 160.66476219621546 ns/iter 0.96
JSON_String_Equal/10 6.300124596987159 ns/iter 7.002616804624656 ns/iter 0.90
JSON_String_Equal/100 6.944069570045078 ns/iter 6.651616518478644 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6235196018523856 ns/iter 0.9371440728506034 ns/iter 0.67
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.934460041924817 ns/iter 14.928147114308135 ns/iter 1.00
JSON_String_Fast_Hash/10 1.9436169772044793 ns/iter 2.252733871226782 ns/iter 0.86
JSON_String_Fast_Hash/100 1.9423119672624622 ns/iter 2.2525736139294406 ns/iter 0.86
JSON_String_Key_Hash/10 1.2447425561046788 ns/iter 1.2461321045248732 ns/iter 1.00
JSON_String_Key_Hash/100 12.424982954911593 ns/iter 12.430794085124875 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.797919196340885 ns/iter 2.488547490358386 ns/iter 1.12
JSON_Object_Defines_Miss_Too_Small 2.79723612055783 ns/iter 2.4870907108702847 ns/iter 1.12
JSON_Object_Defines_Miss_Too_Large 2.796973170209313 ns/iter 2.487411707040886 ns/iter 1.12
Regex_Lower_S_Or_Upper_S_Asterisk 3.108818760572327 ns/iter 3.4202162260096576 ns/iter 0.91
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1073881309397824 ns/iter 3.420894461677758 ns/iter 0.91
Regex_Period_Asterisk 3.108768425042518 ns/iter 3.419651103461074 ns/iter 0.91
Regex_Group_Period_Asterisk_Group 3.1147157833302197 ns/iter 3.419634606165198 ns/iter 0.91
Regex_Period_Plus 3.420872251130564 ns/iter 3.4190429596038485 ns/iter 1.00
Regex_Period 3.424851897859914 ns/iter 3.4173769162060745 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.4215049299322366 ns/iter 3.4191669358901717 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.4216531129545764 ns/iter 3.4193808209287915 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.3747401354530275 ns/iter 4.665165578936512 ns/iter 0.94
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.356787540244518 ns/iter 4.662046390905178 ns/iter 0.93
Regex_Caret_X_Hyphen 13.081867221627267 ns/iter 13.6798242905093 ns/iter 0.96
Regex_Period_Md_Dollar 36.58642768373756 ns/iter 37.23339237847428 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 9.333821236419267 ns/iter 9.958574235703692 ns/iter 0.94
Regex_Caret_Period_Range_Dollar 4.351863693627869 ns/iter 4.6622589221783155 ns/iter 0.93
Regex_Nested_Backtrack 58.501573448621585 ns/iter 65.38552365831988 ns/iter 0.89

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

@jviotti jviotti force-pushed the implement-custom-reachability branch 3 times, most recently from 25d4647 to 0e4873b Compare February 3, 2026 19:30
@jviotti jviotti marked this pull request as ready for review February 3, 2026 19:30
@jviotti jviotti changed the title [WIP] Implement support for custom reachability checks Implement support for custom reachability checks Feb 3, 2026
Copy link

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

Choose a reason for hiding this comment

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

1 issue found across 10 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="src/core/jsonschema/frame.cc">

<violation number="1" location="src/core/jsonschema/frame.cc:1676">
P2: Removing the special case for empty `source_parent` may break reachability checks for references at the root level. Previously, an empty parent (root) was always considered reachable. Now it requires being in the cache, but the root may not be added if it doesn't have a non-pointer location type. Consider adding the root/base pointer to the cache explicitly or restoring the `source_parent.empty()` check.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

@augmentcode
Copy link

augmentcode bot commented Feb 3, 2026

🤖 Augment PR Summary

Summary: This PR refines JSON Schema frame reachability so callers can ask “is this location reachable from this base location?” and get consistent results.

Changes:

  • Updates SchemaFrame::populate_reachability to treat the selected base pointer as reachable from itself, and to scope default reachability to the base pointer’s subtree.
  • Adjusts reference-driven propagation so a location can become reachable via references, including when the destination is the root (empty) pointer.
  • When a pointer becomes reachable via a reference, marks its non-orphan descendant locations reachable as well, aligning reachability with entering that referenced schema subtree.
  • Adds extensive reachability assertions across draft0–draft7, 2019-09, and 2020-12 test suites to validate cross-resource, cross-pointer, and recursive/dynamic reference scenarios.

Technical Notes: Reachability remains computed from the frame’s pointer graph and reference graph, but is now explicitly dependent on the chosen base location rather than implicitly assuming the root context.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

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.

@jviotti jviotti force-pushed the implement-custom-reachability branch 2 times, most recently from b5926e6 to b731644 Compare February 3, 2026 19:55
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti force-pushed the implement-custom-reachability branch from b731644 to c778dcd Compare February 3, 2026 20:08
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
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