Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 8, 2026

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

@jviotti jviotti force-pushed the frame-weak-pointer-location branch 5 times, most recently from b68df32 to efa61c5 Compare January 8, 2026 18:57
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: 9c6230c Previous: 8fb7ba6 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1369497629523355 ns/iter 3.1183824889962812 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1071282525169903 ns/iter 3.109732668827645 ns/iter 1.00
Regex_Period_Asterisk 3.106443340139202 ns/iter 3.1118556968327273 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.1073467454675487 ns/iter 3.1101972111152283 ns/iter 1.00
Regex_Period_Plus 2.8526457110419505 ns/iter 3.1121091735096447 ns/iter 0.92
Regex_Period 3.046424766861155 ns/iter 2.9489884949702145 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 2.8516618000346896 ns/iter 2.9071001288017086 ns/iter 0.98
Regex_Caret_Group_Period_Plus_Group_Dollar 2.901763620832291 ns/iter 3.110456220644822 ns/iter 0.93
Regex_Caret_Period_Asterisk_Dollar 3.1083355383284603 ns/iter 3.541264787695676 ns/iter 0.88
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.418691542078467 ns/iter 3.4182195028367466 ns/iter 1.00
Regex_Caret_X_Hyphen 10.586688022893156 ns/iter 13.070824560663855 ns/iter 0.81
Regex_Period_Md_Dollar 27.915669133413935 ns/iter 27.65293423773854 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 6.217242141049389 ns/iter 7.165252563853543 ns/iter 0.87
Regex_Caret_Period_Range_Dollar 3.7306279926898087 ns/iter 3.732927968166234 ns/iter 1.00
Regex_Nested_Backtrack 49.2120619193174 ns/iter 49.18739550116175 ns/iter 1.00
JSON_Array_Of_Objects_Unique 434.77936767107957 ns/iter 433.11474656433796 ns/iter 1.00
JSON_Parse_1 29565.48732811623 ns/iter 29059.923361920835 ns/iter 1.02
JSON_Parse_Real 37828.9968371671 ns/iter 38332.007345282 ns/iter 0.99
JSON_Parse_Decimal 128249.68831406847 ns/iter 128146.6417610516 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 62.18081001249066 ns/iter 62.45013737847448 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 167.56243561876008 ns/iter 161.25475706635663 ns/iter 1.04
JSON_String_Equal/10 7.16112817140225 ns/iter 6.5405872870314985 ns/iter 1.09
JSON_String_Equal/100 7.776827084760576 ns/iter 7.162401442130544 ns/iter 1.09
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9362299646895683 ns/iter 0.9349570131519492 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.258051489480922 ns/iter 14.601645879634544 ns/iter 0.70
JSON_String_Fast_Hash/10 2.4895242966572466 ns/iter 2.7970584654225856 ns/iter 0.89
JSON_String_Fast_Hash/100 2.4924661555597183 ns/iter 2.798569181310938 ns/iter 0.89
JSON_String_Key_Hash/10 2.492572929599407 ns/iter 2.6484336027182707 ns/iter 0.94
JSON_String_Key_Hash/100 6.531427880362679 ns/iter 9.024188884513604 ns/iter 0.72
JSON_Object_Defines_Miss_Same_Length 3.7437209898040122 ns/iter 3.7328908309153896 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7373269964654408 ns/iter 3.7331377593709005 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.73584491030195 ns/iter 3.7340288409939517 ns/iter 1.00
Pointer_Object_Traverse 46.05394379910136 ns/iter 46.4407986580081 ns/iter 0.99
Pointer_Object_Try_Traverse 53.88662692119191 ns/iter 53.221780667535405 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 290.0764805716983 ns/iter 302.6373323671779 ns/iter 0.96
Pointer_Walker_Schema_ISO_Language 3180253.62895906 ns/iter 3215158.484018299 ns/iter 0.99
Schema_Frame_WoT_References 5235812.856060455 ns/iter 5513945.503937037 ns/iter 0.95
Schema_Frame_OMC_References 22736891.35483892 ns/iter 24847757.655171838 ns/iter 0.92
Schema_Frame_OMC_Locations 20230683.941178996 ns/iter 24291034.999997653 ns/iter 0.83
Schema_Frame_ISO_Language_Locations 107883519.83334602 ns/iter 122240799.6000129 ns/iter 0.88
Schema_Iterator_ISO_Language 2319968.9933554386 ns/iter 2323996.0566665255 ns/iter 1.00
Schema_Frame_ISO_Language_Locations_To_JSON 130799156.99998423 ns/iter 135607898.25001508 ns/iter 0.96
Schema_Tracker_ISO_Language 47935611.66666981 ns/iter 47891413.80000123 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 24417168.482759267 ns/iter 23559792.000001933 ns/iter 1.04
Schema_Format_ISO_Language_To_JSON 113322384.50000887 ns/iter 127596590.80002165 ns/iter 0.89
Schema_Bundle_Meta_2020_12 2163055.4043197683 ns/iter 2212632.1582265827 ns/iter 0.98
Alterschema_Check_Readibility_ISO_Language_Set_3 216626969.00000355 ns/iter 231358499.33332035 ns/iter 0.94
Alterschema_Check_Readibility_OMC 28302592.55999863 ns/iter 31081163.13636215 ns/iter 0.91
URITemplateRouter_Create 15671.936696274128 ns/iter 16098.246406854652 ns/iter 0.97
URITemplateRouter_Match 173.85758742336336 ns/iter 173.3245914338292 ns/iter 1.00
URITemplateRouterView_Restore 8219.861403469007 ns/iter 8373.490868198736 ns/iter 0.98
URITemplateRouterView_Match 118.17680805032285 ns/iter 118.00571646491024 ns/iter 1.00

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: 9c6230c Previous: 8fb7ba6 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.727190001054303 ns/iter 3.7816719575326094 ns/iter 1.25
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.395683125000005 ns/iter 3.7628389218516936 ns/iter 1.17
Regex_Period_Asterisk 4.085952239440294 ns/iter 4.397544374999995 ns/iter 0.93
Regex_Group_Period_Asterisk_Group 4.084082909078793 ns/iter 4.080926897321393 ns/iter 1.00
Regex_Period_Plus 4.3906681249993085 ns/iter 4.394636249999451 ns/iter 1.00
Regex_Period 4.392530301714558 ns/iter 4.410186249999981 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 4.393486249999512 ns/iter 4.099652730535181 ns/iter 1.07
Regex_Caret_Group_Period_Plus_Group_Dollar 4.391192935646699 ns/iter 3.7690285646990875 ns/iter 1.17
Regex_Caret_Period_Asterisk_Dollar 4.15702845982072 ns/iter 4.073655051917514 ns/iter 1.02
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.089425223213285 ns/iter 3.7695674932683145 ns/iter 1.08
Regex_Caret_X_Hyphen 7.52611160714218 ns/iter 7.54141852678509 ns/iter 1.00
Regex_Period_Md_Dollar 34.794743924912154 ns/iter 36.08745154405219 ns/iter 0.96
Regex_Caret_Slash_Period_Asterisk 7.196877232143858 ns/iter 7.204072544642059 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.711120323015258 ns/iter 4.0973301412449805 ns/iter 1.15
Regex_Nested_Backtrack 108.0357500000062 ns/iter 113.39864285714286 ns/iter 0.95
JSON_Array_Of_Objects_Unique 460.52291905632353 ns/iter 506.6799000001083 ns/iter 0.91
JSON_Parse_1 73573.82812500645 ns/iter 73853.45982144591 ns/iter 1.00
JSON_Parse_Real 92109.99062539969 ns/iter 94317.03495377807 ns/iter 0.98
JSON_Parse_Decimal 362331.52901779924 ns/iter 331616.2573674266 ns/iter 1.09
JSON_Fast_Hash_Helm_Chart_Lock 51.55498000001444 ns/iter 72.46805357143313 ns/iter 0.71
JSON_Equality_Helm_Chart_Lock 341.0983321919132 ns/iter 271.46895185128756 ns/iter 1.26
JSON_String_Equal/10 13.154982530558636 ns/iter 12.74605306809589 ns/iter 1.03
JSON_String_Equal/100 14.435861319485873 ns/iter 14.343281250001539 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 2.1918378124993865 ns/iter 2.1917984375001254 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.610867857144317 ns/iter 12.81576071428552 ns/iter 0.98
JSON_String_Fast_Hash/10 3.437650329449601 ns/iter 3.7828714218163815 ns/iter 0.91
JSON_String_Fast_Hash/100 3.4446225053822173 ns/iter 3.800463207499054 ns/iter 0.91
JSON_String_Key_Hash/10 4.531009375000394 ns/iter 3.7592116004304135 ns/iter 1.21
JSON_String_Key_Hash/100 16.53837221067808 ns/iter 13.859485652412156 ns/iter 1.19
JSON_Object_Defines_Miss_Same_Length 3.7595480290001486 ns/iter 4.707262510506719 ns/iter 0.80
JSON_Object_Defines_Miss_Too_Small 3.7654424932763506 ns/iter 3.7631437432803523 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.786909636094799 ns/iter 4.698062287271297 ns/iter 0.81
Pointer_Object_Traverse 51.12504000001081 ns/iter 49.303869999994276 ns/iter 1.04
Pointer_Object_Try_Traverse 67.80456473214663 ns/iter 73.083526785719 ns/iter 0.93
Pointer_Push_Back_Pointer_To_Weak_Pointer 167.3645089285612 ns/iter 163.13362029912452 ns/iter 1.03
Pointer_Walker_Schema_ISO_Language 10102381.250000292 ns/iter 9769110.937497772 ns/iter 1.03
Schema_Frame_WoT_References 11470240.625001794 ns/iter 12082333.92856885 ns/iter 0.95
Schema_Frame_OMC_References 54336600.00000434 ns/iter 55964940.00001258 ns/iter 0.97
Schema_Frame_OMC_Locations 48988009.09092477 ns/iter 51823500.000000425 ns/iter 0.95
Schema_Frame_ISO_Language_Locations 218719733.3333491 ns/iter 219139000.00004104 ns/iter 1.00
Schema_Iterator_ISO_Language 4265514.4578319155 ns/iter 4106715.6626506555 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 247724666.66672698 ns/iter 231749499.99997807 ns/iter 1.07
Schema_Tracker_ISO_Language 104176000.00001432 ns/iter 97983414.28573361 ns/iter 1.06
Schema_Tracker_ISO_Language_To_JSON 55151809.09091296 ns/iter 51891709.99999533 ns/iter 1.06
Schema_Format_ISO_Language_To_JSON 218970566.6667881 ns/iter 218365366.66667902 ns/iter 1.00
Schema_Bundle_Meta_2020_12 4341600.625002684 ns/iter 4274137.499992037 ns/iter 1.02
Alterschema_Check_Readibility_ISO_Language_Set_3 344140449.99994075 ns/iter 340526950.00002587 ns/iter 1.01
Alterschema_Check_Readibility_OMC 64288063.636364646 ns/iter 62640972.72727751 ns/iter 1.03
URITemplateRouter_Create 22754.86250000114 ns/iter 21280.46874999967 ns/iter 1.07
URITemplateRouter_Match 209.8136562499775 ns/iter 204.3872966791548 ns/iter 1.03
URITemplateRouterView_Restore 29938.62053571661 ns/iter 31183.415365859997 ns/iter 0.96
URITemplateRouterView_Match 157.6124330357333 ns/iter 156.52520089283988 ns/iter 1.01

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 (macos/llvm)

Details
Benchmark suite Current: 9c6230c Previous: 8fb7ba6 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.9652195031230022 ns/iter 2.2695415417514955 ns/iter 0.87
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.8933257994395267 ns/iter 2.3086174214543225 ns/iter 0.82
Regex_Period_Asterisk 1.9663700477112183 ns/iter 2.0797109800064812 ns/iter 0.95
Regex_Group_Period_Asterisk_Group 1.9684537434736151 ns/iter 2.3217312745094496 ns/iter 0.85
Regex_Period_Plus 2.3532259265885314 ns/iter 2.8526250505861666 ns/iter 0.82
Regex_Period 2.520571252329072 ns/iter 2.697221969191783 ns/iter 0.93
Regex_Caret_Period_Plus_Dollar 2.9846552663244896 ns/iter 2.5942257458138944 ns/iter 1.15
Regex_Caret_Group_Period_Plus_Group_Dollar 2.644727522989351 ns/iter 2.2299024896383024 ns/iter 1.19
Regex_Caret_Period_Asterisk_Dollar 2.173743794392317 ns/iter 2.061210674416471 ns/iter 1.05
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.198620087373735 ns/iter 2.3827805172955894 ns/iter 0.92
Regex_Caret_X_Hyphen 7.917388951499608 ns/iter 8.86482113924642 ns/iter 0.89
Regex_Period_Md_Dollar 26.379438456161193 ns/iter 24.754706653478234 ns/iter 1.07
Regex_Caret_Slash_Period_Asterisk 6.544715672776495 ns/iter 7.21915446066662 ns/iter 0.91
Regex_Caret_Period_Range_Dollar 2.2182316947200094 ns/iter 2.6781771479016285 ns/iter 0.83
Regex_Nested_Backtrack 32.47676463026121 ns/iter 46.37023547111311 ns/iter 0.70
JSON_Array_Of_Objects_Unique 439.13298782123724 ns/iter 483.75215719431844 ns/iter 0.91
JSON_Parse_1 24103.3482058165 ns/iter 35131.106896393496 ns/iter 0.69
JSON_Parse_Real 28661.28917378567 ns/iter 45699.91354404393 ns/iter 0.63
JSON_Parse_Decimal 291665.0485436949 ns/iter 466111.2450367954 ns/iter 0.63
JSON_Fast_Hash_Helm_Chart_Lock 70.95905482177886 ns/iter 107.39397516601962 ns/iter 0.66
JSON_Equality_Helm_Chart_Lock 170.47071153495546 ns/iter 205.5394281711517 ns/iter 0.83
JSON_String_Equal/10 10.800136897375129 ns/iter 10.840222648780111 ns/iter 1.00
JSON_String_Equal/100 11.178129104479215 ns/iter 10.388383765306031 ns/iter 1.08
JSON_String_Equal_Small_By_Perfect_Hash/10 0.3911284019376617 ns/iter 0.449954636498815 ns/iter 0.87
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.175223281383969 ns/iter 5.817150564099064 ns/iter 0.72
JSON_String_Fast_Hash/10 2.8675070600610666 ns/iter 4.068569862103386 ns/iter 0.70
JSON_String_Fast_Hash/100 2.502082748306385 ns/iter 3.2982497278469567 ns/iter 0.76
JSON_String_Key_Hash/10 2.0277133457873098 ns/iter 2.328924736881755 ns/iter 0.87
JSON_String_Key_Hash/100 3.929165630678697 ns/iter 2.870996887831101 ns/iter 1.37
JSON_Object_Defines_Miss_Same_Length 3.1549411287928475 ns/iter 3.583139368288938 ns/iter 0.88
JSON_Object_Defines_Miss_Too_Small 2.985192007052782 ns/iter 3.567119026769261 ns/iter 0.84
JSON_Object_Defines_Miss_Too_Large 3.1724943237364878 ns/iter 3.57675654901855 ns/iter 0.89
Pointer_Object_Traverse 15.766940173187926 ns/iter 22.496580334889718 ns/iter 0.70
Pointer_Object_Try_Traverse 21.08959912230785 ns/iter 29.74809129866572 ns/iter 0.71
Pointer_Push_Back_Pointer_To_Weak_Pointer 208.13245699658185 ns/iter 237.5417945411526 ns/iter 0.88
Pointer_Walker_Schema_ISO_Language 4817599.308333342 ns/iter 6738609.879032391 ns/iter 0.71
Schema_Frame_WoT_References 5687806.156521694 ns/iter 8799000.902172338 ns/iter 0.65
Schema_Frame_OMC_References 38428291.68181858 ns/iter 52952145.79998629 ns/iter 0.73
Schema_Frame_OMC_Locations 33889017.578943774 ns/iter 43604721.31250504 ns/iter 0.78
Schema_Frame_ISO_Language_Locations 114430116.59998775 ns/iter 161395041.7500405 ns/iter 0.71
Schema_Iterator_ISO_Language 2636865.6679997 ns/iter 3502675.8801844316 ns/iter 0.75
Schema_Frame_ISO_Language_Locations_To_JSON 128147343.74998693 ns/iter 132166499.99999389 ns/iter 0.97
Schema_Tracker_ISO_Language 60014208.30000371 ns/iter 62811633.299998 ns/iter 0.96
Schema_Tracker_ISO_Language_To_JSON 22277481.06060696 ns/iter 23527489.571425315 ns/iter 0.95
Schema_Format_ISO_Language_To_JSON 128528125.16662955 ns/iter 160985974.80004174 ns/iter 0.80
Schema_Bundle_Meta_2020_12 2591733.7226001387 ns/iter 3062617.6360163307 ns/iter 0.85
Alterschema_Check_Readibility_ISO_Language_Set_3 248282347.33335343 ns/iter 255234861.3333682 ns/iter 0.97
Alterschema_Check_Readibility_OMC 45974864.56249555 ns/iter 52267983.9230897 ns/iter 0.88
URITemplateRouter_Create 21420.054528928067 ns/iter 21843.211081788806 ns/iter 0.98
URITemplateRouter_Match 210.73188947433223 ns/iter 259.4101481614909 ns/iter 0.81
URITemplateRouterView_Restore 11780.046484185146 ns/iter 16379.572637665691 ns/iter 0.72
URITemplateRouterView_Match 133.4873083319084 ns/iter 197.1693301579997 ns/iter 0.68

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: 9c6230c Previous: 8fb7ba6 Ratio
URITemplateRouter_Create 14334.33901316204 ns/iter 14075.608026678558 ns/iter 1.02
URITemplateRouter_Match 155.30054567925822 ns/iter 156.84993123520852 ns/iter 0.99
URITemplateRouterView_Restore 8181.463542031857 ns/iter 8157.132970404829 ns/iter 1.00
URITemplateRouterView_Match 123.22036137153822 ns/iter 141.3547894038165 ns/iter 0.87
Alterschema_Check_Readibility_ISO_Language_Set_3 214093112.6666601 ns/iter 224582450.66665468 ns/iter 0.95
Alterschema_Check_Readibility_OMC 30459193.782610822 ns/iter 32727987.333330363 ns/iter 0.93
Schema_Frame_WoT_References 5754145.106556891 ns/iter 6135337.626087874 ns/iter 0.94
Schema_Frame_OMC_References 23816460.27586236 ns/iter 26054536.481482234 ns/iter 0.91
Schema_Frame_OMC_Locations 21697994.53125165 ns/iter 24472644.600003455 ns/iter 0.89
Schema_Frame_ISO_Language_Locations 109159111.49999148 ns/iter 120743704.5000006 ns/iter 0.90
Schema_Iterator_ISO_Language 2556991.7956203506 ns/iter 2713175.4941630634 ns/iter 0.94
Schema_Frame_ISO_Language_Locations_To_JSON 293975525.0000265 ns/iter 285470086.3333619 ns/iter 1.03
Schema_Tracker_ISO_Language 46566797.800005585 ns/iter 48627863.5714338 ns/iter 0.96
Schema_Tracker_ISO_Language_To_JSON 32203094.772729527 ns/iter 34139612.09523785 ns/iter 0.94
Schema_Format_ISO_Language_To_JSON 115626648.83336993 ns/iter 125934626.19997808 ns/iter 0.92
Schema_Bundle_Meta_2020_12 2374506.1288120607 ns/iter 2438327.1048929817 ns/iter 0.97
Pointer_Object_Traverse 50.25215589816391 ns/iter 48.53179243333302 ns/iter 1.04
Pointer_Object_Try_Traverse 22.722342834872254 ns/iter 22.728917423012902 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 160.62805937278821 ns/iter 142.0470171687437 ns/iter 1.13
Pointer_Walker_Schema_ISO_Language 3514159.8799998523 ns/iter 3473396.17676747 ns/iter 1.01
JSON_Array_Of_Objects_Unique 429.3027463886689 ns/iter 421.13459443981475 ns/iter 1.02
JSON_Parse_1 32815.256898504085 ns/iter 32639.98012874401 ns/iter 1.01
JSON_Parse_Real 43356.4754719378 ns/iter 43436.39996273239 ns/iter 1.00
JSON_Parse_Decimal 154445.41311545813 ns/iter 154675.9470770514 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.278788976010105 ns/iter 57.252765331613034 ns/iter 1.07
JSON_Equality_Helm_Chart_Lock 151.88760986536278 ns/iter 149.64865853406877 ns/iter 1.01
JSON_String_Equal/10 6.343375987958949 ns/iter 6.343110693177255 ns/iter 1.00
JSON_String_Equal/100 6.962220223090034 ns/iter 6.976442476390278 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6244304555480221 ns/iter 0.6222246213052918 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 27.84441827554964 ns/iter 19.599765525078197 ns/iter 1.42
JSON_String_Fast_Hash/10 2.2544785925601736 ns/iter 1.9423110325032498 ns/iter 1.16
JSON_String_Fast_Hash/100 2.254806788875011 ns/iter 1.943514466170811 ns/iter 1.16
JSON_String_Key_Hash/10 1.2479343728839674 ns/iter 1.5564337586099208 ns/iter 0.80
JSON_String_Key_Hash/100 12.426767984945302 ns/iter 12.428752473621845 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4878385853101435 ns/iter 2.487220776663794 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.798172482234257 ns/iter 2.491057163436372 ns/iter 1.12
JSON_Object_Defines_Miss_Too_Large 2.7978134020981353 ns/iter 2.489522030685557 ns/iter 1.12
Regex_Lower_S_Or_Upper_S_Asterisk 3.4211189869682967 ns/iter 3.112300405185637 ns/iter 1.10
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.4278369171458167 ns/iter 3.1106957127074177 ns/iter 1.10
Regex_Period_Asterisk 3.420491763336645 ns/iter 3.1097290476688335 ns/iter 1.10
Regex_Group_Period_Asterisk_Group 3.4224471488643995 ns/iter 3.110203636326942 ns/iter 1.10
Regex_Period_Plus 3.4180728104391234 ns/iter 3.4200731774691038 ns/iter 1.00
Regex_Period 3.419105675763778 ns/iter 3.4208958347879235 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.427549844642113 ns/iter 3.4241259054062287 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.419789580072772 ns/iter 3.4212026048941886 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.664380071767697 ns/iter 4.3546644114116715 ns/iter 1.07
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.6638472865639695 ns/iter 4.352093476338532 ns/iter 1.07
Regex_Caret_X_Hyphen 13.68488468683914 ns/iter 13.679816461988949 ns/iter 1.00
Regex_Period_Md_Dollar 37.72490552006795 ns/iter 34.80017754498791 ns/iter 1.08
Regex_Caret_Slash_Period_Asterisk 9.954958365341705 ns/iter 8.390117967477554 ns/iter 1.19
Regex_Caret_Period_Range_Dollar 3.4212296166273695 ns/iter 4.352373525387094 ns/iter 0.79
Regex_Nested_Backtrack 59.089683993061925 ns/iter 64.61107266245125 ns/iter 0.91

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti marked this pull request as ready for review January 8, 2026 19:18
@jviotti jviotti force-pushed the frame-weak-pointer-location branch from efa61c5 to 9c6230c Compare January 8, 2026 19:18
@augmentcode
Copy link

augmentcode bot commented Jan 8, 2026

🤖 Augment PR Summary

Summary: This PR switches JSON Schema framing to store schema locations using WeakPointer instead of owning Pointer values.

Changes:

  • Updated SchemaFrame::Location::pointer to be a WeakPointer and adjusted related APIs (traverse, uri, reference queries, relative instance locations).
  • Added a mutable get(JSON&, WeakPointer) overload and corresponding unit tests to allow in-place mutation via weak pointers.
  • Modified schema formatting to collect target objects first and reorder after the frame is destroyed (avoiding invalidation of weak-pointer token references during reordering).
  • Adapted schema transformer logic to materialize owning Pointers when values must outlive the frame.
  • Updated alterschema rules to use keyword constants and the new weak-pointer-based reference checks.
  • Updated editorschema dynamic-anchor resolution and JSON Schema tests to work with WeakPointer locations.

Technical Notes: Because WeakPointer tokens borrow string storage, the PR adds explicit conversions to owning pointers where lifetimes cross frame/schema mutation boundaries.

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

Fix All in Augment

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

@jviotti jviotti merged commit f696b2c into main Jan 8, 2026
13 checks passed
@jviotti jviotti deleted the frame-weak-pointer-location branch January 8, 2026 19:31
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/gcc)

Details
Benchmark suite Current: 9c6230c Previous: 8fb7ba6 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.4164320176482175 ns/iter 3.2123590253139924 ns/iter 0.75
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.652499566982961 ns/iter 2.932693706164569 ns/iter 0.90
Regex_Period_Asterisk 2.313046542232881 ns/iter 3.080556882985108 ns/iter 0.75
Regex_Group_Period_Asterisk_Group 2.4034049720534645 ns/iter 2.9808635823196328 ns/iter 0.81
Regex_Period_Plus 2.416731839053737 ns/iter 3.4080198652381046 ns/iter 0.71
Regex_Period 2.4313170819422494 ns/iter 3.1340143994299026 ns/iter 0.78
Regex_Caret_Period_Plus_Dollar 2.4336835279546833 ns/iter 2.7331957419782085 ns/iter 0.89
Regex_Caret_Group_Period_Plus_Group_Dollar 2.4473513739820305 ns/iter 3.1780297838131064 ns/iter 0.77
Regex_Caret_Period_Asterisk_Dollar 2.3525340561112076 ns/iter 2.8115920450896366 ns/iter 0.84
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.4699710043262963 ns/iter 3.3432597468487666 ns/iter 0.74
Regex_Caret_X_Hyphen 7.358442031370332 ns/iter 11.623007285609978 ns/iter 0.63
Regex_Period_Md_Dollar 24.25403558890707 ns/iter 31.788014111802244 ns/iter 0.76
Regex_Caret_Slash_Period_Asterisk 5.961321638703647 ns/iter 7.301758531053445 ns/iter 0.82
Regex_Caret_Period_Range_Dollar 2.866108134615645 ns/iter 3.2732657203614886 ns/iter 0.88
Regex_Nested_Backtrack 57.34488151276681 ns/iter 67.55823581983485 ns/iter 0.85
JSON_Array_Of_Objects_Unique 330.8143107221557 ns/iter 419.31472413511426 ns/iter 0.79
JSON_Parse_1 27258.324384512936 ns/iter 37609.71243412777 ns/iter 0.72
JSON_Parse_Real 26897.682921052325 ns/iter 45253.93023526758 ns/iter 0.59
JSON_Parse_Decimal 279565.1828835955 ns/iter 456871.235727732 ns/iter 0.61
JSON_Fast_Hash_Helm_Chart_Lock 38.74204531155195 ns/iter 44.118114138671004 ns/iter 0.88
JSON_Equality_Helm_Chart_Lock 134.21951856217058 ns/iter 165.74329159822602 ns/iter 0.81
JSON_String_Equal/10 5.77331367253318 ns/iter 8.477203845266676 ns/iter 0.68
JSON_String_Equal/100 5.681638345272262 ns/iter 7.03897559805925 ns/iter 0.81
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8031049560077425 ns/iter 1.3487338687506458 ns/iter 0.60
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.70336773378896 ns/iter 4.855411564580525 ns/iter 0.76
JSON_String_Fast_Hash/10 1.9645012772321813 ns/iter 2.5050417181748976 ns/iter 0.78
JSON_String_Fast_Hash/100 2.296273098226313 ns/iter 2.735728330174311 ns/iter 0.84
JSON_String_Key_Hash/10 1.78718060688138 ns/iter 2.4114997132707123 ns/iter 0.74
JSON_String_Key_Hash/100 3.5977863886034043 ns/iter 4.802916036645407 ns/iter 0.75
JSON_Object_Defines_Miss_Same_Length 2.3690341435908855 ns/iter 3.052435673202402 ns/iter 0.78
JSON_Object_Defines_Miss_Too_Small 2.7263787520904983 ns/iter 2.9582737427474717 ns/iter 0.92
JSON_Object_Defines_Miss_Too_Large 2.3346285493813683 ns/iter 2.303077440621922 ns/iter 1.01
Pointer_Object_Traverse 68.86743190298135 ns/iter 92.23056013983178 ns/iter 0.75
Pointer_Object_Try_Traverse 47.73887043566191 ns/iter 53.2504969953359 ns/iter 0.90
Pointer_Push_Back_Pointer_To_Weak_Pointer 168.41394920678374 ns/iter 284.8536185100927 ns/iter 0.59
Pointer_Walker_Schema_ISO_Language 6265943.52722168 ns/iter 6465796.913419451 ns/iter 0.97
Schema_Frame_WoT_References 6443603.433293404 ns/iter 9522514.78173267 ns/iter 0.68
Schema_Frame_OMC_References 36406907.16830167 ns/iter 39182873.33320169 ns/iter 0.93
Schema_Frame_OMC_Locations 36185928.75344413 ns/iter 44890795.43522426 ns/iter 0.81
Schema_Frame_ISO_Language_Locations 110534572.60131836 ns/iter 180105447.76916504 ns/iter 0.61
Schema_Iterator_ISO_Language 2201465.346057963 ns/iter 2626334.269022204 ns/iter 0.84
Schema_Frame_ISO_Language_Locations_To_JSON 205595254.8980713 ns/iter 215095996.85668945 ns/iter 0.96
Schema_Tracker_ISO_Language 46586360.25020055 ns/iter 72756918.9938632 ns/iter 0.64
Schema_Tracker_ISO_Language_To_JSON 31932956.29400956 ns/iter 41638263.0666097 ns/iter 0.77
Schema_Format_ISO_Language_To_JSON 166560590.2671814 ns/iter 172212243.08013916 ns/iter 0.97
Schema_Bundle_Meta_2020_12 1857331.4585584276 ns/iter 3026514.6831296524 ns/iter 0.61
Alterschema_Check_Readibility_ISO_Language_Set_3 152302837.37182617 ns/iter 303853988.64746094 ns/iter 0.50
Alterschema_Check_Readibility_OMC 31552304.3922756 ns/iter 66026711.46392822 ns/iter 0.48
URITemplateRouter_Create 13843.102589405022 ns/iter 20539.885491618123 ns/iter 0.67
URITemplateRouter_Match 166.2273087684335 ns/iter 238.04799052192482 ns/iter 0.70
URITemplateRouterView_Restore 9253.14773595019 ns/iter 13739.373578336134 ns/iter 0.67
URITemplateRouterView_Match 105.60423455327478 ns/iter 160.65190971929164 ns/iter 0.66

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.

2 participants