Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Dec 24, 2025

No description provided.

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: 124cf42 Previous: 33f8e4a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1112471765682037 ns/iter 3.11510993683348 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.108504192112724 ns/iter 3.1085616881498703 ns/iter 1.00
Regex_Period_Asterisk 3.107027653843135 ns/iter 3.1284031323970574 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 3.113499925302959 ns/iter 3.1090216487026696 ns/iter 1.00
Regex_Period_Plus 2.8680231015820006 ns/iter 2.8621221037171725 ns/iter 1.00
Regex_Period 3.1271004046436857 ns/iter 3.1096305611256363 ns/iter 1.01
Regex_Caret_Period_Plus_Dollar 3.0280295913029933 ns/iter 3.110618269304635 ns/iter 0.97
Regex_Caret_Group_Period_Plus_Group_Dollar 2.848464555218509 ns/iter 3.1089471770989436 ns/iter 0.92
Regex_Caret_Period_Asterisk_Dollar 3.4175563538539984 ns/iter 3.1086918300606303 ns/iter 1.10
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.114352302597783 ns/iter 3.1082224786388437 ns/iter 1.00
Regex_Caret_X_Hyphen 10.718128400602652 ns/iter 10.605459146235809 ns/iter 1.01
Regex_Period_Md_Dollar 27.150278631456572 ns/iter 28.71432789195835 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 7.152866502906455 ns/iter 6.223408610856005 ns/iter 1.15
Regex_Caret_Period_Range_Dollar 4.04118922102841 ns/iter 3.9248956345392902 ns/iter 1.03
Regex_Nested_Backtrack 52.850116634894555 ns/iter 49.82549974902554 ns/iter 1.06
JSON_Array_Of_Objects_Unique 405.6867489289034 ns/iter 415.38209542007104 ns/iter 0.98
JSON_Parse_1 29282.966474331937 ns/iter 30619.030992737124 ns/iter 0.96
JSON_Parse_Real 37992.2217682605 ns/iter 37252.45052250341 ns/iter 1.02
JSON_Parse_Decimal 129962.74814541549 ns/iter 129044.90875507421 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 55.90502411264993 ns/iter 55.80078589536331 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 152.98643387319473 ns/iter 155.08712207568138 ns/iter 0.99
JSON_String_Equal/10 6.550331136770445 ns/iter 6.539156271338917 ns/iter 1.00
JSON_String_Equal/100 7.156939504497982 ns/iter 7.1580701451665325 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9351863486731828 ns/iter 0.9353984601103728 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.26201007285239 ns/iter 10.26051705227846 ns/iter 1.00
JSON_String_Fast_Hash/10 2.1762397596964407 ns/iter 2.178013217605081 ns/iter 1.00
JSON_String_Fast_Hash/100 2.176181414055102 ns/iter 2.1762461773542463 ns/iter 1.00
JSON_String_Key_Hash/10 1.8678213517534483 ns/iter 1.8700410950753512 ns/iter 1.00
JSON_String_Key_Hash/100 6.530501053650925 ns/iter 6.5306164351096525 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.735773772159292 ns/iter 3.7381007570252542 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.73404081403846 ns/iter 3.7363386086839667 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.743370569207149 ns/iter 3.747582093485946 ns/iter 1.00
Pointer_Object_Traverse 43.21542879929274 ns/iter 43.04318267707796 ns/iter 1.00
Pointer_Object_Try_Traverse 52.619764304371 ns/iter 52.63707353002504 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 346.7790285870932 ns/iter 306.1990441697007 ns/iter 1.13
Schema_Frame_WoT_References 7285981.052082964 ns/iter 7345348.799999316 ns/iter 0.99
Schema_Frame_OMC_References 36159096.84999679 ns/iter 36730136.157895066 ns/iter 0.98
Schema_Frame_OMC_Locations 33711515.19047544 ns/iter 34238706.59999579 ns/iter 0.98
Schema_Frame_ISO_Language_Locations 162215552.0000206 ns/iter 164519695.99998507 ns/iter 0.99
Schema_Iterator_ISO_Language 3899578.821229452 ns/iter 3816563.114130729 ns/iter 1.02
Schema_PointerWalker_ISO_Language 5005465.928571441 ns/iter 4821295.572413686 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 152940212.99998802 ns/iter 153893981.40000594 ns/iter 0.99
Schema_Tracker_ISO_Language 50696649.40000393 ns/iter 49316507.92856804 ns/iter 1.03
Schema_Tracker_ISO_Language_To_JSON 24454579.78571751 ns/iter 24566842.142860424 ns/iter 1.00
Schema_Format_ISO_Language_To_JSON 169234799.75000077 ns/iter 165349033.50000718 ns/iter 1.02
Schema_Bundle_Meta_2020_12 2181319.380063165 ns/iter 2195369.808778538 ns/iter 0.99
Alterschema_Check_Readibility_ISO_Language_Set_3 291503049.50002235 ns/iter 283123306.33332294 ns/iter 1.03
Alterschema_Check_Readibility_OMC 42410782.05882331 ns/iter 43716188.87499551 ns/iter 0.97

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: 124cf42 Previous: 33f8e4a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.6508413638217672 ns/iter 1.8637038132007782 ns/iter 0.89
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.6527883098645466 ns/iter 1.8285011398877364 ns/iter 0.90
Regex_Period_Asterisk 1.6692853679212107 ns/iter 1.9376738607662207 ns/iter 0.86
Regex_Group_Period_Asterisk_Group 1.6630284161576683 ns/iter 1.706903117604082 ns/iter 0.97
Regex_Period_Plus 2.0190630269529244 ns/iter 2.1155946825981644 ns/iter 0.95
Regex_Period 1.978730312665077 ns/iter 2.028727798890074 ns/iter 0.98
Regex_Caret_Period_Plus_Dollar 2.047125483102881 ns/iter 2.020794448721386 ns/iter 1.01
Regex_Caret_Group_Period_Plus_Group_Dollar 2.071509980956737 ns/iter 2.0289971126367994 ns/iter 1.02
Regex_Caret_Period_Asterisk_Dollar 2.0733882137954267 ns/iter 2.0478749608022553 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.157145275784419 ns/iter 1.8675854907208795 ns/iter 1.16
Regex_Caret_X_Hyphen 6.798671931648417 ns/iter 6.338827495336811 ns/iter 1.07
Regex_Period_Md_Dollar 22.89190491588778 ns/iter 19.742546469786674 ns/iter 1.16
Regex_Caret_Slash_Period_Asterisk 6.090758451923698 ns/iter 5.401505312256747 ns/iter 1.13
Regex_Caret_Period_Range_Dollar 1.8806917806562962 ns/iter 1.73803969261076 ns/iter 1.08
Regex_Nested_Backtrack 30.41143246083693 ns/iter 29.914041220264103 ns/iter 1.02
JSON_Array_Of_Objects_Unique 349.42571727238675 ns/iter 385.2609813730601 ns/iter 0.91
JSON_Parse_1 20283.02769239886 ns/iter 22191.358801618124 ns/iter 0.91
JSON_Parse_Real 25055.097200707693 ns/iter 26459.387186976313 ns/iter 0.95
JSON_Parse_Decimal 246915.66794024323 ns/iter 270861.8653211046 ns/iter 0.91
JSON_Fast_Hash_Helm_Chart_Lock 57.20481761612073 ns/iter 62.587823939434394 ns/iter 0.91
JSON_Equality_Helm_Chart_Lock 132.25561756374788 ns/iter 141.71907894882816 ns/iter 0.93
JSON_String_Equal/10 6.563812045171547 ns/iter 7.761044262753894 ns/iter 0.85
JSON_String_Equal/100 6.579549531124047 ns/iter 7.0089775970332155 ns/iter 0.94
JSON_String_Equal_Small_By_Perfect_Hash/10 0.33428755125235166 ns/iter 0.37900610140844776 ns/iter 0.88
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.1750516718136694 ns/iter 3.9086267819602094 ns/iter 0.81
JSON_String_Fast_Hash/10 2.406551703613676 ns/iter 2.445272636720572 ns/iter 0.98
JSON_String_Fast_Hash/100 2.0977245328575322 ns/iter 2.1161420302009932 ns/iter 0.99
JSON_String_Key_Hash/10 1.3660810548920639 ns/iter 1.3559830936499886 ns/iter 1.01
JSON_String_Key_Hash/100 2.110286682274334 ns/iter 2.1573507775919736 ns/iter 0.98
JSON_Object_Defines_Miss_Same_Length 2.7406374487931418 ns/iter 2.6898465059275476 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Small 2.6217650615980035 ns/iter 2.660843805635657 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 3.172872387546301 ns/iter 2.6968175927027795 ns/iter 1.18
Pointer_Object_Traverse 15.3684227312292 ns/iter 14.230244989042163 ns/iter 1.08
Pointer_Object_Try_Traverse 19.91350208531198 ns/iter 18.815236765296746 ns/iter 1.06
Pointer_Push_Back_Pointer_To_Weak_Pointer 157.13066645502465 ns/iter 169.94314309478327 ns/iter 0.92
Schema_Frame_WoT_References 6378235.647058822 ns/iter 6999877.079999805 ns/iter 0.91
Schema_Frame_OMC_References 36669908.7142836 ns/iter 41342340.27777792 ns/iter 0.89
Schema_Frame_OMC_Locations 31415744.04761676 ns/iter 40635039.47369148 ns/iter 0.77
Schema_Frame_ISO_Language_Locations 115811923.66666453 ns/iter 122984097.16667418 ns/iter 0.94
Schema_Iterator_ISO_Language 4128038.6566265672 ns/iter 4301283.522989189 ns/iter 0.96
Schema_PointerWalker_ISO_Language 6365929.761904269 ns/iter 7193042.531248749 ns/iter 0.89
Schema_Frame_ISO_Language_Locations_To_JSON 79363172.71428704 ns/iter 103961321.42857693 ns/iter 0.76
Schema_Tracker_ISO_Language 40288481.49999931 ns/iter 44945355.76923926 ns/iter 0.90
Schema_Tracker_ISO_Language_To_JSON 15857745.574468471 ns/iter 15903444.739132795 ns/iter 1.00
Schema_Format_ISO_Language_To_JSON 122047450.99997658 ns/iter 116566541.49995422 ns/iter 1.05
Schema_Bundle_Meta_2020_12 1978340.2343331452 ns/iter 1598368.7295339713 ns/iter 1.24
Alterschema_Check_Readibility_ISO_Language_Set_3 224181722.33331764 ns/iter 191887302.24999517 ns/iter 1.17
Alterschema_Check_Readibility_OMC 37902975.894733 ns/iter 42240902.777785376 ns/iter 0.90

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: 124cf42 Previous: 33f8e4a Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.0009800183023216 ns/iter 4.997916749994581 ns/iter 0.60
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.839060332286471 ns/iter 5.059029517961874 ns/iter 0.56
Regex_Period_Asterisk 3.2265062499996184 ns/iter 5.572175892857397 ns/iter 0.58
Regex_Group_Period_Asterisk_Group 2.958134594252492 ns/iter 5.279173124998238 ns/iter 0.56
Regex_Period_Plus 3.5017291901753342 ns/iter 6.019942857140644 ns/iter 0.58
Regex_Period 3.5044895026705265 ns/iter 6.012754464287744 ns/iter 0.58
Regex_Caret_Period_Plus_Dollar 3.2092607142857332 ns/iter 5.410458999999719 ns/iter 0.59
Regex_Caret_Group_Period_Plus_Group_Dollar 2.9209885688204715 ns/iter 5.331627678572203 ns/iter 0.55
Regex_Caret_Period_Asterisk_Dollar 2.9516686567609867 ns/iter 5.39676081263934 ns/iter 0.55
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.9948915361674655 ns/iter 5.08222349121807 ns/iter 0.59
Regex_Caret_X_Hyphen 6.153429464286019 ns/iter 9.065689732144579 ns/iter 0.68
Regex_Period_Md_Dollar 31.2219062500014 ns/iter 41.66849905131898 ns/iter 0.75
Regex_Caret_Slash_Period_Asterisk 5.851701785714575 ns/iter 10.078570312498211 ns/iter 0.58
Regex_Caret_Period_Range_Dollar 3.3652781302584067 ns/iter 4.767252499999586 ns/iter 0.71
Regex_Nested_Backtrack 87.76214340347886 ns/iter 111.15091914503735 ns/iter 0.79
JSON_Array_Of_Objects_Unique 382.2720388800013 ns/iter 573.2009789912296 ns/iter 0.67
JSON_Parse_1 80412.7455357089 ns/iter 88017.50368288971 ns/iter 0.91
JSON_Parse_Real 102257.62499999293 ns/iter 109060.75000001182 ns/iter 0.94
JSON_Parse_Decimal 346262.86836934916 ns/iter 399211.2165178697 ns/iter 0.87
JSON_Fast_Hash_Helm_Chart_Lock 49.22868999999537 ns/iter 72.33008035715979 ns/iter 0.68
JSON_Equality_Helm_Chart_Lock 243.08396428568003 ns/iter 330.2472332312869 ns/iter 0.74
JSON_String_Equal/10 10.540406249999634 ns/iter 14.625349488284233 ns/iter 0.72
JSON_String_Equal/100 13.451616904233648 ns/iter 14.452408482138626 ns/iter 0.93
JSON_String_Equal_Small_By_Perfect_Hash/10 1.7732196440447727 ns/iter 2.235443749999888 ns/iter 0.79
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.81932942044914 ns/iter 12.587669642860938 ns/iter 0.78
JSON_String_Fast_Hash/10 2.0882365625002564 ns/iter 3.139261607143697 ns/iter 0.67
JSON_String_Fast_Hash/100 2.0520044396739903 ns/iter 3.1326566964285774 ns/iter 0.66
JSON_String_Key_Hash/10 2.643312921747048 ns/iter 3.9430828195398093 ns/iter 0.67
JSON_String_Key_Hash/100 13.748130357143395 ns/iter 16.30308515868394 ns/iter 0.84
JSON_Object_Defines_Miss_Same_Length 4.984505999999556 ns/iter 5.028720999998768 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Small 4.30416999999963 ns/iter 3.916838489135621 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Large 4.998425999999654 ns/iter 4.830502344829353 ns/iter 1.03
Pointer_Object_Traverse 45.937674915597476 ns/iter 55.61511999999311 ns/iter 0.83
Pointer_Object_Try_Traverse 63.08733928571136 ns/iter 69.68092633928993 ns/iter 0.91
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.91684615330047 ns/iter 175.00306026817364 ns/iter 1.01
Schema_Frame_WoT_References 16885692.68292656 ns/iter 16170417.777771542 ns/iter 1.04
Schema_Frame_OMC_References 76895988.88888818 ns/iter 75343544.44447269 ns/iter 1.02
Schema_Frame_OMC_Locations 69701388.8888907 ns/iter 71075855.55554074 ns/iter 0.98
Schema_Frame_ISO_Language_Locations 291976999.99997437 ns/iter 289255850.00001776 ns/iter 1.01
Schema_Iterator_ISO_Language 9391110.66666707 ns/iter 8576903.999995314 ns/iter 1.09
Schema_PointerWalker_ISO_Language 10368887.999999667 ns/iter 9698571.999997513 ns/iter 1.07
Schema_Frame_ISO_Language_Locations_To_JSON 221599900.00000107 ns/iter 223597366.66673294 ns/iter 0.99
Schema_Tracker_ISO_Language 105027533.33332749 ns/iter 96398183.33327335 ns/iter 1.09
Schema_Tracker_ISO_Language_To_JSON 54136430.00000547 ns/iter 50975170.00003791 ns/iter 1.06
Schema_Format_ISO_Language_To_JSON 296906849.99991393 ns/iter 282820899.9999333 ns/iter 1.05
Schema_Bundle_Meta_2020_12 3770124.064165327 ns/iter 3682497.860986076 ns/iter 1.02
Alterschema_Check_Readibility_ISO_Language_Set_3 407566050.000014 ns/iter 408134050.00017154 ns/iter 1.00
Alterschema_Check_Readibility_OMC 78079477.77778028 ns/iter 72706800.00002275 ns/iter 1.07

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: 124cf42 Previous: 33f8e4a Ratio
Alterschema_Check_Readibility_ISO_Language_Set_3 295315715.5000099 ns/iter 302317518.4998763 ns/iter 0.98
Alterschema_Check_Readibility_OMC 45403109.12499024 ns/iter 48746268.07142185 ns/iter 0.93
Schema_Frame_WoT_References 8016459.505746565 ns/iter 8143414.023257974 ns/iter 0.98
Schema_Frame_OMC_References 39052167.411762856 ns/iter 43147153.3529475 ns/iter 0.91
Schema_Frame_OMC_Locations 36807516.36841849 ns/iter 38851699.44444695 ns/iter 0.95
Schema_Frame_ISO_Language_Locations 187165247.74998787 ns/iter 191459509.49996403 ns/iter 0.98
Schema_Iterator_ISO_Language 4589235.624999781 ns/iter 4581483.784313843 ns/iter 1.00
Schema_PointerWalker_ISO_Language 4872991.3445951035 ns/iter 4565618.370129237 ns/iter 1.07
Schema_Frame_ISO_Language_Locations_To_JSON 277440862.6667082 ns/iter 289029876.33334 ns/iter 0.96
Schema_Tracker_ISO_Language 50690985.10000458 ns/iter 54451946.285715684 ns/iter 0.93
Schema_Tracker_ISO_Language_To_JSON 36588992.57894327 ns/iter 39651851.33332246 ns/iter 0.92
Schema_Format_ISO_Language_To_JSON 188116798.00001 ns/iter 187493283.24997804 ns/iter 1.00
Schema_Bundle_Meta_2020_12 2370058.918922889 ns/iter 2404816.7089083344 ns/iter 0.99
Pointer_Object_Traverse 47.783355804590165 ns/iter 49.21673313524481 ns/iter 0.97
Pointer_Object_Try_Traverse 22.79041337293442 ns/iter 26.15803005334789 ns/iter 0.87
Pointer_Push_Back_Pointer_To_Weak_Pointer 161.25436284576585 ns/iter 144.02892524054548 ns/iter 1.12
JSON_Array_Of_Objects_Unique 381.7395010903216 ns/iter 384.9792757835615 ns/iter 0.99
JSON_Parse_1 32543.932306262268 ns/iter 32866.34003749123 ns/iter 0.99
JSON_Parse_Real 43022.45243520332 ns/iter 44653.56133641043 ns/iter 0.96
JSON_Parse_Decimal 155907.3103294901 ns/iter 155837.04491883196 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 48.918471791253545 ns/iter 56.67865462312728 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 155.3386414734588 ns/iter 153.15450145104006 ns/iter 1.01
JSON_String_Equal/10 6.341785246013713 ns/iter 6.342804376115161 ns/iter 1.00
JSON_String_Equal/100 6.9617636224969655 ns/iter 6.967498282828579 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9348038504197944 ns/iter 0.9347672535635032 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 13.719154997883328 ns/iter 25.787538466831815 ns/iter 0.53
JSON_String_Fast_Hash/10 1.9037769172548629 ns/iter 1.9053281680046281 ns/iter 1.00
JSON_String_Fast_Hash/100 1.9031315061699277 ns/iter 1.9117675960040668 ns/iter 1.00
JSON_String_Key_Hash/10 1.5566133989373956 ns/iter 1.5577549695557111 ns/iter 1.00
JSON_String_Key_Hash/100 12.427360911750235 ns/iter 12.429691901177412 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 2.4857695155404813 ns/iter 2.487821814340248 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.4857874491510183 ns/iter 2.4875855911517655 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 2.4863893109687183 ns/iter 2.4900051707292117 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.1071446506642793 ns/iter 3.1102397751454145 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1056331134302253 ns/iter 3.1136189459118118 ns/iter 1.00
Regex_Period_Asterisk 3.1120699956100504 ns/iter 3.1095670244255067 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.1058254764021473 ns/iter 3.114328420567574 ns/iter 1.00
Regex_Period_Plus 3.4174135339348375 ns/iter 3.4246329612614503 ns/iter 1.00
Regex_Period 3.421294859821704 ns/iter 3.108804891515229 ns/iter 1.10
Regex_Caret_Period_Plus_Dollar 3.4198511764043094 ns/iter 3.113909346252874 ns/iter 1.10
Regex_Caret_Group_Period_Plus_Group_Dollar 3.4184158214051568 ns/iter 3.1153626263045853 ns/iter 1.10
Regex_Caret_Period_Asterisk_Dollar 4.350961394239753 ns/iter 3.4217478110373243 ns/iter 1.27
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.35091734984225 ns/iter 3.419776225024613 ns/iter 1.27
Regex_Caret_X_Hyphen 13.058716524692523 ns/iter 13.682698209371825 ns/iter 0.95
Regex_Period_Md_Dollar 35.33645351504237 ns/iter 35.3373704155044 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 9.32543861386476 ns/iter 8.084416248758949 ns/iter 1.15
Regex_Caret_Period_Range_Dollar 4.351238421704205 ns/iter 3.420373427743803 ns/iter 1.27
Regex_Nested_Backtrack 61.44594494227472 ns/iter 57.12837773370462 ns/iter 1.08

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

Details
Benchmark suite Current: 124cf42 Previous: 9985d96 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.8038418030033245 ns/iter 2.2842965024079267 ns/iter 1.23
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.9174954223032894 ns/iter 2.2762130129870877 ns/iter 1.28
Regex_Period_Asterisk 2.8214430860647317 ns/iter 2.3260605431355703 ns/iter 1.21
Regex_Group_Period_Asterisk_Group 2.8412363294805547 ns/iter 2.7712393200404866 ns/iter 1.03
Regex_Period_Plus 3.132174606181071 ns/iter 2.2819278320619976 ns/iter 1.37
Regex_Period 3.0239190774820135 ns/iter 2.3393616112742586 ns/iter 1.29
Regex_Caret_Period_Plus_Dollar 3.072531961686357 ns/iter 2.371901127685316 ns/iter 1.30
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1947083801742133 ns/iter 2.355747503683159 ns/iter 1.36
Regex_Caret_Period_Asterisk_Dollar 3.0370178758952684 ns/iter 2.269084592355856 ns/iter 1.34
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.9578985058061336 ns/iter 2.226148922889935 ns/iter 1.33
Regex_Caret_X_Hyphen 8.92846318799071 ns/iter 6.743052728543587 ns/iter 1.32
Regex_Period_Md_Dollar 33.57470808589628 ns/iter 23.671523044453313 ns/iter 1.42
Regex_Caret_Slash_Period_Asterisk 6.828017403871696 ns/iter 5.120379237385738 ns/iter 1.33
Regex_Caret_Period_Range_Dollar 3.1823403522317872 ns/iter 2.3367925447188713 ns/iter 1.36
Regex_Nested_Backtrack 64.23106147864792 ns/iter 48.24595614630378 ns/iter 1.33
JSON_Array_Of_Objects_Unique 363.9347579176016 ns/iter 278.8932187028371 ns/iter 1.30
JSON_Parse_1 32025.74303366163 ns/iter 24361.0154880898 ns/iter 1.31
JSON_Parse_Real 35294.4240284779 ns/iter 26350.76105633814 ns/iter 1.34
JSON_Parse_Decimal 348633.56589716213 ns/iter 266246.5319655458 ns/iter 1.31
JSON_Fast_Hash_Helm_Chart_Lock 45.78886107373657 ns/iter 34.08392260719997 ns/iter 1.34
JSON_Equality_Helm_Chart_Lock 169.99190254665746 ns/iter 128.9454487316827 ns/iter 1.32
JSON_String_Equal/10 6.658691301350002 ns/iter 5.8668197730822715 ns/iter 1.13
JSON_String_Equal/100 7.047413243639195 ns/iter 5.575746769083672 ns/iter 1.26
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0213337330179046 ns/iter 0.8302533484369213 ns/iter 1.23
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.721551813362291 ns/iter 3.81932623996929 ns/iter 1.24
JSON_String_Fast_Hash/10 2.273580003543405 ns/iter 1.993526512773231 ns/iter 1.14
JSON_String_Fast_Hash/100 2.4237079819317433 ns/iter 1.9980942461788944 ns/iter 1.21
JSON_String_Key_Hash/10 2.196523087936688 ns/iter 1.5619618491210738 ns/iter 1.41
JSON_String_Key_Hash/100 4.044876717886065 ns/iter 2.7555543002527187 ns/iter 1.47
JSON_Object_Defines_Miss_Same_Length 2.8674100714837234 ns/iter 2.0141558423583326 ns/iter 1.42
JSON_Object_Defines_Miss_Too_Small 2.6539275577786725 ns/iter 1.934261921686953 ns/iter 1.37
JSON_Object_Defines_Miss_Too_Large 2.7001145571183693 ns/iter 1.9473098430589233 ns/iter 1.39
Pointer_Object_Traverse 63.95451589415199 ns/iter 56.408447353744165 ns/iter 1.13
Pointer_Object_Try_Traverse 46.345176181372025 ns/iter 39.20205593767276 ns/iter 1.18
Pointer_Push_Back_Pointer_To_Weak_Pointer 199.21687962936903 ns/iter 165.96723698299095 ns/iter 1.20
Schema_Frame_WoT_References 11869251.728057861 ns/iter 8456904.713700457 ns/iter 1.40
Schema_Frame_OMC_References 56467254.95656332 ns/iter 42815657.2229722 ns/iter 1.32
Schema_Frame_OMC_Locations 55208396.911621094 ns/iter 39681701.099171355 ns/iter 1.39
Schema_Frame_ISO_Language_Locations 237498044.96765137 ns/iter 179479479.7897339 ns/iter 1.32
Schema_Iterator_ISO_Language 5376365.062964223 ns/iter 7021827.796070846 ns/iter 0.77
Schema_PointerWalker_ISO_Language 13397592.48675722 ns/iter 9225078.531213708 ns/iter 1.45
Schema_Frame_ISO_Language_Locations_To_JSON 222536007.5632731 ns/iter 148970031.73828125 ns/iter 1.49
Schema_Tracker_ISO_Language 63680453.7339644 ns/iter 40411220.65650092 ns/iter 1.58
Schema_Tracker_ISO_Language_To_JSON 35341823.802274816 ns/iter 26412177.96890824 ns/iter 1.34
Schema_Format_ISO_Language_To_JSON 263133684.79410806 ns/iter 169338623.68265787 ns/iter 1.55
Schema_Bundle_Meta_2020_12 2842014.982500149 ns/iter 2020418.8157227265 ns/iter 1.41
Alterschema_Check_Readibility_ISO_Language_Set_3 381541490.5548096 ns/iter 227710008.62121582 ns/iter 1.68
Alterschema_Check_Readibility_OMC 69270827.55348898 ns/iter 45799128.21451823 ns/iter 1.51

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

@jviotti jviotti changed the title move rereference Implement re-referencing for "move" lint rules Dec 25, 2025
@jviotti jviotti force-pushed the move-rereference branch 2 times, most recently from 24c3613 to 3ea1bc4 Compare December 25, 2025 19:58
Signed-off-by: Juan Cruz Viotti <[email protected]>
@jviotti jviotti marked this pull request as ready for review December 29, 2025 14:19
@augmentcode
Copy link

augmentcode bot commented Dec 29, 2025

🤖 Augment PR Summary

Summary: Implements re-referencing support for “move”-style AlterSchema lint rules so that $ref JSON Pointer fragments remain valid after automatic fixes.

Changes:

  • Extend HashJSON to hash std::reference_wrapper-wrapped JSON values and add EqualJSON to compare wrapped values.
  • Rewrite duplicate_allof_branches / duplicate_anyof_branches transforms to deduplicate while tracking an old→new index mapping.
  • Add rereference() to the duplicate-branch rules to rebase references from removed indices to retained indices.
  • Update unnecessary_allof_wrapper to avoid moving entries that are directly referenced, and add rereference() to rebase keyword-level references.
  • Adjust expected outputs where dedup order changed, and add new tests covering reference updates (2020-12 and draft-07).
  • Add JSON container tests validating unordered_set/unordered_map behavior with reference-wrapped JSON keys.

Technical Notes: Duplicate-branch deduplication now preserves first-seen order (instead of sorting) to enable deterministic reference remapping.

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

Fix All in Augment

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

/// https://en.cppreference.com/w/cpp/utility/functional/reference_wrapper/operator_cmp.html
template <typename T> struct EqualJSON {
inline auto operator()(const T &left, const T &right) const -> bool {
if constexpr (requires { left.get() == right.get(); }) {
Copy link

Choose a reason for hiding this comment

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

The requires { left.get() == right.get(); } branch can match any type with .get() (e.g. smart pointers) and then compare raw handles/pointers rather than JSON values, which could be surprising if EqualJSON is reused outside std::reference_wrapper. Consider constraining this to std::reference_wrapper-like semantics to avoid accidental misuse.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

@jviotti jviotti merged commit 94ff49b into main Dec 29, 2025
13 checks passed
@jviotti jviotti deleted the move-rereference branch December 29, 2025 14:33
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