Skip to content

Stricter $id/id framing checks across dialects#2365

Merged
jviotti merged 3 commits intomainfrom
better-id-tests
Apr 30, 2026
Merged

Stricter $id/id framing checks across dialects#2365
jviotti merged 3 commits intomainfrom
better-id-tests

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Apr 30, 2026

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

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

@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: 1cfe72f Previous: 2e2837e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.023289611569128 ns/iter 3.112945160420193 ns/iter 0.65
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0184219946347155 ns/iter 3.111038506848076 ns/iter 0.65
Regex_Period_Asterisk 2.0242194064027412 ns/iter 3.104403522230584 ns/iter 0.65
Regex_Group_Period_Asterisk_Group 2.020388704619226 ns/iter 3.098338700935034 ns/iter 0.65
Regex_Period_Plus 2.3059859399834264 ns/iter 3.1267484899147426 ns/iter 0.74
Regex_Period 2.3057825847924187 ns/iter 3.006955415003569 ns/iter 0.77
Regex_Caret_Period_Plus_Dollar 2.305674700387861 ns/iter 3.098089611773227 ns/iter 0.74
Regex_Caret_Group_Period_Plus_Group_Dollar 2.305422523837731 ns/iter 3.0971906936162306 ns/iter 0.74
Regex_Caret_Period_Asterisk_Dollar 2.0185210432784078 ns/iter 3.108356753703145 ns/iter 0.65
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.018072202951636 ns/iter 3.1066441371748863 ns/iter 0.65
Regex_Caret_X_Hyphen 9.055560652620796 ns/iter 10.285206154392842 ns/iter 0.88
Regex_Period_Md_Dollar 25.155061224827442 ns/iter 28.662542127697453 ns/iter 0.88
Regex_Caret_Slash_Period_Asterisk 8.323377108586081 ns/iter 6.1421388737007865 ns/iter 1.36
Regex_Caret_Period_Range_Dollar 2.4845784815262397 ns/iter 3.382485195776014 ns/iter 0.73
Regex_Nested_Backtrack 44.54461984430178 ns/iter 63.857713605815086 ns/iter 0.70
JSON_Array_Of_Objects_Unique 345.7663056607181 ns/iter 420.39187832043854 ns/iter 0.82
JSON_Parse_1 5125.565827700836 ns/iter 5891.416665269749 ns/iter 0.87
JSON_Parse_Real 10193.271961841989 ns/iter 11013.919581473858 ns/iter 0.93
JSON_Parse_Decimal 10052.973783255515 ns/iter 11763.567992570235 ns/iter 0.85
JSON_Parse_Schema_ISO_Language 3263303.3348839637 ns/iter 3617524.659685813 ns/iter 0.90
JSON_Fast_Hash_Helm_Chart_Lock 49.82382808308603 ns/iter 60.0994385542343 ns/iter 0.83
JSON_Equality_Helm_Chart_Lock 125.23717146867716 ns/iter 154.86422955552106 ns/iter 0.81
JSON_Divisible_By_Decimal 252.51568346039846 ns/iter 250.0846682889434 ns/iter 1.01
JSON_String_Equal/10 4.32356886166034 ns/iter 5.920953591712146 ns/iter 0.73
JSON_String_Equal/100 5.4762386558487925 ns/iter 6.547917324146127 ns/iter 0.84
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6915217915143751 ns/iter 0.9321058631923975 ns/iter 0.74
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.504642010784522 ns/iter 10.236642415562134 ns/iter 0.93
JSON_String_Fast_Hash/10 2.3053194679644013 ns/iter 2.798446979318365 ns/iter 0.82
JSON_String_Fast_Hash/100 2.3061894262379963 ns/iter 2.7997814048991123 ns/iter 0.82
JSON_String_Key_Hash/10 1.7282247069767558 ns/iter 2.1676483756513965 ns/iter 0.80
JSON_String_Key_Hash/100 6.622915468338843 ns/iter 6.464894706229843 ns/iter 1.02
JSON_Object_Defines_Miss_Same_Length 3.41514804532625 ns/iter 3.7299668462118025 ns/iter 0.92
JSON_Object_Defines_Miss_Too_Small 3.634762050417048 ns/iter 3.7387677218802375 ns/iter 0.97
JSON_Object_Defines_Miss_Too_Large 3.4127235257420194 ns/iter 3.712168582522935 ns/iter 0.92
Pointer_Object_Traverse 24.809694431955677 ns/iter 25.38447222715962 ns/iter 0.98
Pointer_Object_Try_Traverse 28.48855399031756 ns/iter 27.949015537697274 ns/iter 1.02
Pointer_Push_Back_Pointer_To_Weak_Pointer 175.9271566141816 ns/iter 198.4872013768277 ns/iter 0.89
Pointer_Walker_Schema_ISO_Language 3035314.922077537 ns/iter 3022364.688034393 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 1202838.5526769971 ns/iter 1396898.705179247 ns/iter 0.86
Pointer_Maybe_Tracked_Deeply_Nested/1 1966764.7948717473 ns/iter 1810127.028061207 ns/iter 1.09
Pointer_Position_Tracker_Get_Deeply_Nested 665.571968522505 ns/iter 602.8833654372859 ns/iter 1.10
Schema_Frame_WoT_References 4600610.927631603 ns/iter 5131255.237036688 ns/iter 0.90
Schema_Frame_OMC_References 19195804.888887044 ns/iter 21113609.09091011 ns/iter 0.91
Schema_Frame_OMC_Locations 17521514.8999996 ns/iter 19556018.02857083 ns/iter 0.90
Schema_Frame_ISO_Language_Locations 90688818.71430026 ns/iter 102836403.33333702 ns/iter 0.88
Schema_Frame_KrakenD_References 35906492.850000404 ns/iter 40951917.52941553 ns/iter 0.88
Schema_Frame_KrakenD_Reachable 780604893.0000316 ns/iter 628834726.9999121 ns/iter 1.24
Schema_Iterator_ISO_Language 2747474.0549018416 ns/iter 3004199.808695711 ns/iter 0.91
Schema_Frame_ISO_Language_Locations_To_JSON 111332568.79998043 ns/iter 110476865.20000753 ns/iter 1.01
Schema_Tracker_ISO_Language 4592016.355263096 ns/iter 5027152.459999797 ns/iter 0.91
Schema_Tracker_ISO_Language_To_JSON 19163373.97222239 ns/iter 19219936.297298085 ns/iter 1.00
Schema_Format_ISO_Language_To_JSON 95538990.42862213 ns/iter 110954420.50001717 ns/iter 0.86
Schema_Bundle_Meta_2020_12 1535738.9186832095 ns/iter 1683811.870190237 ns/iter 0.91
Schema_Frame_Many_Resources_References 365341850.9999824 ns/iter 372936996.0000213 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 12340586.350877889 ns/iter 13817645.839990292 ns/iter 0.89
URITemplateRouter_Create 16082.331399995232 ns/iter 19670.552395716797 ns/iter 0.82
URITemplateRouter_Match 143.73904848933083 ns/iter 172.46089782100103 ns/iter 0.83
URITemplateRouter_Match_BasePath 161.2802042019708 ns/iter 195.86947550998315 ns/iter 0.82
URITemplateRouterView_Restore 2507.432068744893 ns/iter 5228.977234071151 ns/iter 0.48
URITemplateRouterView_Match 141.4947529798626 ns/iter 159.83728872286153 ns/iter 0.89
URITemplateRouterView_Match_BasePath 158.73145482411192 ns/iter 179.55602480887885 ns/iter 0.88
URITemplateRouterView_Arguments 425.81577174176425 ns/iter 454.4352803415922 ns/iter 0.94
JSONL_Parse_Large 9616503.43835622 ns/iter 11088771.6031743 ns/iter 0.87
JSONL_Parse_Large_GZIP 10817367.18461588 ns/iter 12269200.84210585 ns/iter 0.88
HTML_Build_Table_100000 70964634.10000524 ns/iter 66384859.00000226 ns/iter 1.07
HTML_Render_Table_100000 10061756.84058004 ns/iter 5265947.462686511 ns/iter 1.91

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

Copy link
Copy Markdown

@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: 1cfe72f Previous: 2e2837e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.169328726980053 ns/iter 1.6011428482572905 ns/iter 1.35
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.8005844237367976 ns/iter 1.6096403585851289 ns/iter 1.12
Regex_Period_Asterisk 1.9374149886485585 ns/iter 1.5873441473682293 ns/iter 1.22
Regex_Group_Period_Asterisk_Group 2.004549990300941 ns/iter 1.5813354818119785 ns/iter 1.27
Regex_Period_Plus 2.3675261067943936 ns/iter 1.9357507141220165 ns/iter 1.22
Regex_Period 2.2363381761929553 ns/iter 1.888918364127989 ns/iter 1.18
Regex_Caret_Period_Plus_Dollar 2.3398790776266885 ns/iter 2.180769660844033 ns/iter 1.07
Regex_Caret_Group_Period_Plus_Group_Dollar 2.3023726348195965 ns/iter 1.965517429356249 ns/iter 1.17
Regex_Caret_Period_Asterisk_Dollar 2.0830163118388825 ns/iter 1.6073157108845109 ns/iter 1.30
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.8163427012869204 ns/iter 1.6556344765897908 ns/iter 1.10
Regex_Caret_X_Hyphen 6.975700884721278 ns/iter 6.117403751238659 ns/iter 1.14
Regex_Period_Md_Dollar 25.50759816800946 ns/iter 19.826907084155838 ns/iter 1.29
Regex_Caret_Slash_Period_Asterisk 5.705609139655485 ns/iter 4.657562673865195 ns/iter 1.23
Regex_Caret_Period_Range_Dollar 2.189671770559082 ns/iter 1.737148938193738 ns/iter 1.26
Regex_Nested_Backtrack 28.498389627408176 ns/iter 24.48634750767827 ns/iter 1.16
JSON_Array_Of_Objects_Unique 409.6457725753368 ns/iter 326.4331853095603 ns/iter 1.25
JSON_Parse_1 5241.892389902389 ns/iter 3925.518355206619 ns/iter 1.34
JSON_Parse_Real 7462.826155601269 ns/iter 6501.121888481961 ns/iter 1.15
JSON_Parse_Decimal 10579.165640647037 ns/iter 9288.433170550727 ns/iter 1.14
JSON_Parse_Schema_ISO_Language 5554042.500000378 ns/iter 4454628.703704791 ns/iter 1.25
JSON_Fast_Hash_Helm_Chart_Lock 60.769842848076536 ns/iter 55.7204117209538 ns/iter 1.09
JSON_Equality_Helm_Chart_Lock 159.0893228870807 ns/iter 118.94303047705623 ns/iter 1.34
JSON_Divisible_By_Decimal 202.81119653776693 ns/iter 163.91077711972426 ns/iter 1.24
JSON_String_Equal/10 7.179095415360812 ns/iter 6.094700140625685 ns/iter 1.18
JSON_String_Equal/100 7.896670534498396 ns/iter 5.789663146607569 ns/iter 1.36
JSON_String_Equal_Small_By_Perfect_Hash/10 1.0134669731044414 ns/iter 0.7128570490362205 ns/iter 1.42
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.402823459250515 ns/iter 3.2098806342340107 ns/iter 1.37
JSON_String_Fast_Hash/10 2.6262265130491675 ns/iter 2.316345272328175 ns/iter 1.13
JSON_String_Fast_Hash/100 2.261461006821368 ns/iter 1.952886265497583 ns/iter 1.16
JSON_String_Key_Hash/10 1.8632144095910197 ns/iter 1.3187900294448893 ns/iter 1.41
JSON_String_Key_Hash/100 2.679402467887839 ns/iter 2.0351227338704714 ns/iter 1.32
JSON_Object_Defines_Miss_Same_Length 2.604012076165777 ns/iter 2.700605073227933 ns/iter 0.96
JSON_Object_Defines_Miss_Too_Small 2.439450533082803 ns/iter 2.385871243751138 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Large 2.6620177236134848 ns/iter 2.3404137145619655 ns/iter 1.14
Pointer_Object_Traverse 15.491336312172686 ns/iter 13.691403916650941 ns/iter 1.13
Pointer_Object_Try_Traverse 26.54914179404565 ns/iter 18.616105631092474 ns/iter 1.43
Pointer_Push_Back_Pointer_To_Weak_Pointer 189.92957669733468 ns/iter 145.45050102000891 ns/iter 1.31
Pointer_Walker_Schema_ISO_Language 5234689.1592921885 ns/iter 3778148.047873169 ns/iter 1.39
Pointer_Maybe_Tracked_Deeply_Nested/0 1210776.2044026426 ns/iter 953616.154731517 ns/iter 1.27
Pointer_Maybe_Tracked_Deeply_Nested/1 1829900.7422223843 ns/iter 1263821.195381952 ns/iter 1.45
Pointer_Position_Tracker_Get_Deeply_Nested 373.282878800881 ns/iter 336.80979379287675 ns/iter 1.11
Schema_Frame_WoT_References 6167126.627450911 ns/iter 4344863.754601474 ns/iter 1.42
Schema_Frame_OMC_References 27948404.499999434 ns/iter 25894920.965521153 ns/iter 1.08
Schema_Frame_OMC_Locations 31214604.15384438 ns/iter 28242516.03845614 ns/iter 1.11
Schema_Frame_ISO_Language_Locations 91705052.12499335 ns/iter 78815481.4444321 ns/iter 1.16
Schema_Frame_KrakenD_References 64287458.3749915 ns/iter 44618815.49999751 ns/iter 1.44
Schema_Frame_KrakenD_Reachable 712873312.5000508 ns/iter 334941458.4999977 ns/iter 2.13
Schema_Iterator_ISO_Language 3945072.393939238 ns/iter 2033899.4140844771 ns/iter 1.94
Schema_Frame_ISO_Language_Locations_To_JSON 93369380.25001018 ns/iter 92575071.42855762 ns/iter 1.01
Schema_Tracker_ISO_Language 9464670.082191532 ns/iter 8874974.802324686 ns/iter 1.07
Schema_Tracker_ISO_Language_To_JSON 16919911.6599998 ns/iter 13300195.754718 ns/iter 1.27
Schema_Format_ISO_Language_To_JSON 88704428.28569075 ns/iter 70149351.55555373 ns/iter 1.26
Schema_Bundle_Meta_2020_12 1368607.6420851198 ns/iter 1274975.980835756 ns/iter 1.07
Schema_Frame_Many_Resources_References 295941062.5000487 ns/iter 282553749.99995786 ns/iter 1.05
EditorSchema_ForEditor_EmbeddedResources 10872533.187495038 ns/iter 10282195.739719475 ns/iter 1.06
URITemplateRouter_Create 16186.283307857237 ns/iter 17289.684174137084 ns/iter 0.94
URITemplateRouter_Match 171.03477653602636 ns/iter 154.65571254034876 ns/iter 1.11
URITemplateRouter_Match_BasePath 195.15612919159926 ns/iter 181.37568477049396 ns/iter 1.08
URITemplateRouterView_Restore 20516.922864479024 ns/iter 12918.596357976347 ns/iter 1.59
URITemplateRouterView_Match 142.6120858348575 ns/iter 121.503859599803 ns/iter 1.17
URITemplateRouterView_Match_BasePath 152.28636950166612 ns/iter 140.8211449865846 ns/iter 1.08
URITemplateRouterView_Arguments 418.5704020858371 ns/iter 390.3234889318195 ns/iter 1.07
JSONL_Parse_Large 12131269.736841476 ns/iter 11363694.450002035 ns/iter 1.07
JSONL_Parse_Large_GZIP 12388031.982143031 ns/iter 12306065.37931102 ns/iter 1.01
HTML_Build_Table_100000 81260135.41667022 ns/iter 60491750.00000353 ns/iter 1.34
HTML_Render_Table_100000 3899107.8539825385 ns/iter 2423599.999999769 ns/iter 1.61

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

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

@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: 1cfe72f Previous: 2e2837e Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.129180141301936 ns/iter 4.112628355558976 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.743850457016396 ns/iter 4.736128795700659 ns/iter 1.00
Regex_Period_Asterisk 4.110186793053589 ns/iter 4.094617498172192 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 4.741616528441663 ns/iter 4.730264742701465 ns/iter 1.00
Regex_Period_Plus 3.7992438616082524 ns/iter 3.8330924931552777 ns/iter 0.99
Regex_Period 3.80319695749464 ns/iter 3.7954949932226962 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 4.43568625000097 ns/iter 4.418151283794581 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 4.435628962323124 ns/iter 4.414276417731999 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 4.820479698259609 ns/iter 4.75133438560482 ns/iter 1.01
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.738746283006609 ns/iter 4.719007510734102 ns/iter 1.00
Regex_Caret_X_Hyphen 7.916079241072944 ns/iter 7.860527678571674 ns/iter 1.01
Regex_Period_Md_Dollar 35.28200955860853 ns/iter 35.05036204207845 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 7.913781250000592 ns/iter 7.860231026786124 ns/iter 1.01
Regex_Caret_Period_Range_Dollar 4.7450142963845146 ns/iter 4.751780335881991 ns/iter 1.00
Regex_Nested_Backtrack 97.20441530335283 ns/iter 99.30245312499864 ns/iter 0.98
JSON_Array_Of_Objects_Unique 490.77493097645345 ns/iter 504.15540000017245 ns/iter 0.97
JSON_Parse_1 8039.8448660723425 ns/iter 8069.812499998465 ns/iter 1.00
JSON_Parse_Real 16379.90767795444 ns/iter 16310.973214288537 ns/iter 1.00
JSON_Parse_Decimal 16006.410980431952 ns/iter 15914.279017858387 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 6128388.392858548 ns/iter 6088368.749999518 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 65.49277678571131 ns/iter 68.35551339285928 ns/iter 0.96
JSON_Equality_Helm_Chart_Lock 256.2749642856943 ns/iter 260.3768928571526 ns/iter 0.98
JSON_Divisible_By_Decimal 252.66249999999349 ns/iter 251.25710714283807 ns/iter 1.01
JSON_String_Equal/10 12.394807142856376 ns/iter 12.549682142857169 ns/iter 0.99
JSON_String_Equal/100 12.972724999997354 ns/iter 13.254682142855602 ns/iter 0.98
JSON_String_Equal_Small_By_Perfect_Hash/10 1.9329737701641014 ns/iter 1.883354733824068 ns/iter 1.03
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.604567857144794 ns/iter 12.595117857143482 ns/iter 1.00
JSON_String_Fast_Hash/10 3.7990655289310316 ns/iter 3.808678571428002 ns/iter 1.00
JSON_String_Fast_Hash/100 3.828515350306415 ns/iter 3.777588207539189 ns/iter 1.01
JSON_String_Key_Hash/10 3.8216544574612445 ns/iter 3.774486421830356 ns/iter 1.01
JSON_String_Key_Hash/100 16.657452120597455 ns/iter 16.61321640660464 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.805596957489167 ns/iter 3.875366243080065 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Small 3.8026183035722028 ns/iter 3.78558077533485 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7981841517861374 ns/iter 3.783824776785342 ns/iter 1.00
Pointer_Object_Traverse 40.81314652874555 ns/iter 40.56303000753737 ns/iter 1.01
Pointer_Object_Try_Traverse 49.92240999999922 ns/iter 49.572946428558645 ns/iter 1.01
Pointer_Push_Back_Pointer_To_Weak_Pointer 188.19990073209357 ns/iter 170.95727260873218 ns/iter 1.10
Pointer_Walker_Schema_ISO_Language 12877275.999999257 ns/iter 12072869.642858159 ns/iter 1.07
Pointer_Maybe_Tracked_Deeply_Nested/0 2034508.9285716054 ns/iter 2024652.1428573162 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 3315162.745098753 ns/iter 3231393.8967129877 ns/iter 1.03
Pointer_Position_Tracker_Get_Deeply_Nested 618.9524553570992 ns/iter 609.6872767855643 ns/iter 1.02
Schema_Frame_WoT_References 10068168.749999274 ns/iter 10029822.666665494 ns/iter 1.00
Schema_Frame_OMC_References 45501453.333326936 ns/iter 44961012.4999964 ns/iter 1.01
Schema_Frame_OMC_Locations 42250058.82352996 ns/iter 40845294.11765663 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 210087966.6666818 ns/iter 199675900.00002626 ns/iter 1.05
Schema_Frame_KrakenD_References 96661314.28574382 ns/iter 92015714.28570786 ns/iter 1.05
Schema_Frame_KrakenD_Reachable 584197900.000163 ns/iter 530766999.9999689 ns/iter 1.10
Schema_Iterator_ISO_Language 7200692.857141786 ns/iter 6672277.777776496 ns/iter 1.08
Schema_Frame_ISO_Language_Locations_To_JSON 315355000.0000678 ns/iter 292705149.99996066 ns/iter 1.08
Schema_Tracker_ISO_Language 17390519.512191087 ns/iter 16617962.222219123 ns/iter 1.05
Schema_Tracker_ISO_Language_To_JSON 51831340.00001246 ns/iter 50648519.999981545 ns/iter 1.02
Schema_Format_ISO_Language_To_JSON 215133333.3334454 ns/iter 202599966.66663936 ns/iter 1.06
Schema_Bundle_Meta_2020_12 2928687.288135541 ns/iter 2983941.9491424253 ns/iter 0.98
Schema_Frame_Many_Resources_References 1576274499.999954 ns/iter 1545201000.0001338 ns/iter 1.02
EditorSchema_ForEditor_EmbeddedResources 28883655.99997087 ns/iter 29846460.00000794 ns/iter 0.97
URITemplateRouter_Create 24194.110556797546 ns/iter 24044.517857143026 ns/iter 1.01
URITemplateRouter_Match 218.24618750002858 ns/iter 245.9558765674383 ns/iter 0.89
URITemplateRouter_Match_BasePath 248.3276428571506 ns/iter 273.5116351111254 ns/iter 0.91
URITemplateRouterView_Restore 34523.296012570405 ns/iter 32397.45536282535 ns/iter 1.07
URITemplateRouterView_Match 153.13832589285425 ns/iter 154.50188819185848 ns/iter 0.99
URITemplateRouterView_Match_BasePath 179.77635132430217 ns/iter 178.76471956009686 ns/iter 1.01
URITemplateRouterView_Arguments 455.51634227234615 ns/iter 445.48524999996175 ns/iter 1.02
JSONL_Parse_Large 28871218.18181723 ns/iter 28563304.00000843 ns/iter 1.01
JSONL_Parse_Large_GZIP 28291960.000005927 ns/iter 28369972.000000414 ns/iter 1.00
HTML_Build_Table_100000 87884285.71428345 ns/iter 86683199.99998987 ns/iter 1.01
HTML_Render_Table_100000 8090231.111112997 ns/iter 7830882.2222222965 ns/iter 1.03

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

Copy link
Copy Markdown

@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: 1cfe72f Previous: 2e2837e Ratio
HTML_Build_Table_100000 63879707.90910912 ns/iter 63611801.54544854 ns/iter 1.00
HTML_Render_Table_100000 5518774.90000076 ns/iter 5503696.899224042 ns/iter 1.00
JSONL_Parse_Large 12876320.81481307 ns/iter 12831907.036363853 ns/iter 1.00
JSONL_Parse_Large_GZIP 14120551.400001204 ns/iter 13968287.780003266 ns/iter 1.01
URITemplateRouter_Create 17837.32929282786 ns/iter 18320.238960089853 ns/iter 0.97
URITemplateRouter_Match 165.58507763938087 ns/iter 172.8253180955183 ns/iter 0.96
URITemplateRouter_Match_BasePath 188.62653626727223 ns/iter 192.9656458559818 ns/iter 0.98
URITemplateRouterView_Restore 6644.115380550768 ns/iter 6684.417003120053 ns/iter 0.99
URITemplateRouterView_Match 133.34726053648916 ns/iter 135.97164203656183 ns/iter 0.98
URITemplateRouterView_Match_BasePath 151.48989634049616 ns/iter 151.40549630037816 ns/iter 1.00
URITemplateRouterView_Arguments 458.376162917465 ns/iter 452.5694770565421 ns/iter 1.01
EditorSchema_ForEditor_EmbeddedResources 13849954.00002142 ns/iter 14025759.90000514 ns/iter 0.99
Schema_Frame_WoT_References 5385207.376924392 ns/iter 5460733.875968643 ns/iter 0.99
Schema_Frame_OMC_References 22705307.903225407 ns/iter 22714383.466662485 ns/iter 1.00
Schema_Frame_OMC_Locations 20650152.29411796 ns/iter 20901900.617646415 ns/iter 0.99
Schema_Frame_ISO_Language_Locations 105238235.00000162 ns/iter 104794682.33332531 ns/iter 1.00
Schema_Frame_KrakenD_References 40439859.35294693 ns/iter 41238412.764695406 ns/iter 0.98
Schema_Frame_KrakenD_Reachable 525606088.0001314 ns/iter 553407868.9997841 ns/iter 0.95
Schema_Iterator_ISO_Language 3300220.3427231037 ns/iter 3155509.339366212 ns/iter 1.05
Schema_Frame_ISO_Language_Locations_To_JSON 218437164.00000325 ns/iter 214391684.666604 ns/iter 1.02
Schema_Tracker_ISO_Language 4856643.503495383 ns/iter 4800533.33333418 ns/iter 1.01
Schema_Tracker_ISO_Language_To_JSON 22070545.312502075 ns/iter 21976595.687497992 ns/iter 1.00
Schema_Format_ISO_Language_To_JSON 111842432.1666301 ns/iter 109841940.1666509 ns/iter 1.02
Schema_Bundle_Meta_2020_12 1806999.0181397605 ns/iter 1812675.093259162 ns/iter 1.00
Schema_Frame_Many_Resources_References 372675923.000088 ns/iter 387227277.5000738 ns/iter 0.96
Pointer_Object_Traverse 26.544846419616547 ns/iter 26.16430125241797 ns/iter 1.01
Pointer_Object_Try_Traverse 19.939197129282732 ns/iter 19.93854010243866 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 172.5884676927225 ns/iter 160.60434259667278 ns/iter 1.07
Pointer_Walker_Schema_ISO_Language 3426425.0382779883 ns/iter 3303506.1502347854 ns/iter 1.04
Pointer_Maybe_Tracked_Deeply_Nested/0 1581710.2409911214 ns/iter 1561841.5176991583 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1821833.4663209328 ns/iter 1786231.3959395916 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 405.7701681627202 ns/iter 414.4147905048412 ns/iter 0.98
JSON_Array_Of_Objects_Unique 398.63008848653305 ns/iter 403.8325296728913 ns/iter 0.99
JSON_Parse_1 8022.204658634485 ns/iter 7973.854886093122 ns/iter 1.01
JSON_Parse_Real 11912.785679029032 ns/iter 12217.405069263701 ns/iter 0.98
JSON_Parse_Decimal 19380.442551284636 ns/iter 17587.709711659754 ns/iter 1.10
JSON_Parse_Schema_ISO_Language 4656567.695364602 ns/iter 4602766.185430091 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 65.98155570298285 ns/iter 67.57068196271929 ns/iter 0.98
JSON_Equality_Helm_Chart_Lock 155.0232640399285 ns/iter 158.89935297061592 ns/iter 0.98
JSON_Divisible_By_Decimal 241.04946440773926 ns/iter 243.01192494378105 ns/iter 0.99
JSON_String_Equal/10 6.624073352773436 ns/iter 6.652053600914396 ns/iter 1.00
JSON_String_Equal/100 6.740269161104484 ns/iter 6.988286948565399 ns/iter 0.96
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7491189943871113 ns/iter 0.6256866238153774 ns/iter 1.20
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.198315601322573 ns/iter 25.206378596912817 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9347940341008173 ns/iter 0.9346321375075084 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9345201244913577 ns/iter 0.934607891601273 ns/iter 1.00
JSON_String_Key_Hash/10 1.2492269834966079 ns/iter 1.5611071474877687 ns/iter 0.80
JSON_String_Key_Hash/100 12.444952912708567 ns/iter 12.447551828900052 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.113856069990878 ns/iter 3.427445340733935 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Small 3.120194363989114 ns/iter 3.116546269524385 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.430299122456106 ns/iter 3.7381510996174923 ns/iter 0.92
Regex_Lower_S_Or_Upper_S_Asterisk 1.55755978062984 ns/iter 1.5582778831042736 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.5565508814057036 ns/iter 1.5574618259565876 ns/iter 1.00
Regex_Period_Asterisk 1.5571933055854352 ns/iter 1.2500450256977125 ns/iter 1.25
Regex_Group_Period_Asterisk_Group 1.2467101111922696 ns/iter 1.2465814970191373 ns/iter 1.00
Regex_Period_Plus 1.2460068185889455 ns/iter 1.5586188942237573 ns/iter 0.80
Regex_Period 1.5564278210112488 ns/iter 1.5582716212350456 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.5606487151784925 ns/iter 1.2474335131599592 ns/iter 1.25
Regex_Caret_Group_Period_Plus_Group_Dollar 1.5586000872216885 ns/iter 1.2463188793222448 ns/iter 1.25
Regex_Caret_Period_Asterisk_Dollar 1.2459976830673076 ns/iter 1.2460722907662876 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.2466135089135164 ns/iter 1.2453929190061248 ns/iter 1.00
Regex_Caret_X_Hyphen 12.142024695308525 ns/iter 12.75607330549891 ns/iter 0.95
Regex_Period_Md_Dollar 30.88555716359252 ns/iter 33.26014229444956 ns/iter 0.93
Regex_Caret_Slash_Period_Asterisk 4.356645877526086 ns/iter 4.669867586303895 ns/iter 0.93
Regex_Caret_Period_Range_Dollar 1.557013310750843 ns/iter 1.56483246261138 ns/iter 1.00
Regex_Nested_Backtrack 52.65610365656919 ns/iter 51.18672467035903 ns/iter 1.03

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti changed the title Stricter $id framing checks in 2019-09 and 2020-12 Stricter $id/id framing checks across dialects Apr 30, 2026
@jviotti jviotti marked this pull request as ready for review April 30, 2026 15:37
Copy link
Copy Markdown

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

No issues found across 14 files

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented Apr 30, 2026

🤖 Augment PR Summary

Summary: This PR tightens how schema identifiers are interpreted when they carry no effective information (empty string / bare #) and adds coverage to ensure consistent behavior across supported dialects.

Changes:

  • Treats a bare # in legacy $id/id-as-anchor forms as “no anchor” (avoids creating an empty-name anchor).
  • Updates sourcemeta::core::identify() to treat $id/id values of "" and "#" as if no identifier was declared (returns the provided default/base id instead).
  • Adds additional spec commentary around fragment constraints for newer drafts during framing analysis.
  • Adds extensive SchemaFrame tests for 2019-09 and 2020-12 covering non-empty fragment rejection and empty $id/# behavior (top-level and nested).
  • Adds SchemaFrame tests for Draft 3/4/6/7 covering top-level empty-string and bare-# identifiers.
  • Adds identify() tests across Draft 3/4/6/7 and 2019-09/2020-12 for empty-string and bare-# identifiers, including default-id fallback cases.

Technical Notes: The net effect is that empty or bare-fragment identifiers no longer introduce a new schema resource, and legacy anchor extraction no longer emits an empty anchor name.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@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 merged commit 4ae36db into main Apr 30, 2026
13 checks passed
@jviotti jviotti deleted the better-id-tests branch April 30, 2026 15:51
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