Skip to content

Support definitions in Draft 3#2368

Merged
jviotti merged 4 commits intomainfrom
draft3-definitions
May 5, 2026
Merged

Support definitions in Draft 3#2368
jviotti merged 4 commits intomainfrom
draft3-definitions

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented May 4, 2026

The official test suite uses it.

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

The official test suite uses it.

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: b1a7cee Previous: 7eec861 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.560999154745774 ns/iter 2.0248327094069887 ns/iter 1.76
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.557892350843894 ns/iter 2.0172462773222057 ns/iter 1.76
Regex_Period_Asterisk 3.519586539152458 ns/iter 2.017938174217466 ns/iter 1.74
Regex_Group_Period_Asterisk_Group 3.5174986705631346 ns/iter 2.019482327372814 ns/iter 1.74
Regex_Period_Plus 3.5158569244353512 ns/iter 2.306007917363089 ns/iter 1.52
Regex_Period 3.517598400143844 ns/iter 2.3063842585859247 ns/iter 1.53
Regex_Caret_Period_Plus_Dollar 3.51810853516309 ns/iter 2.3139560820865825 ns/iter 1.52
Regex_Caret_Group_Period_Plus_Group_Dollar 3.523492553302083 ns/iter 2.3079276990665565 ns/iter 1.53
Regex_Caret_Period_Asterisk_Dollar 3.516121069119113 ns/iter 2.0176405122423353 ns/iter 1.74
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.5178749726341154 ns/iter 2.018201481911597 ns/iter 1.74
Regex_Caret_X_Hyphen 11.951373332645817 ns/iter 8.652629175393688 ns/iter 1.38
Regex_Period_Md_Dollar 26.688031693613517 ns/iter 25.47989936377279 ns/iter 1.05
Regex_Caret_Slash_Period_Asterisk 7.031662398678065 ns/iter 8.89196492293495 ns/iter 0.79
Regex_Caret_Period_Range_Dollar 3.8690963992511485 ns/iter 2.467913657469948 ns/iter 1.57
Regex_Nested_Backtrack 47.098844759287985 ns/iter 44.25600259637043 ns/iter 1.06
JSON_Array_Of_Objects_Unique 440.4300045599497 ns/iter 345.8904737848617 ns/iter 1.27
JSON_Parse_1 5983.517257399794 ns/iter 5328.483803863398 ns/iter 1.12
JSON_Parse_Real 10327.758418115602 ns/iter 10097.327344100424 ns/iter 1.02
JSON_Parse_Decimal 11277.699929069857 ns/iter 10140.20428416858 ns/iter 1.11
JSON_Parse_Schema_ISO_Language 3840868.0769228856 ns/iter 3286243.245192111 ns/iter 1.17
JSON_Fast_Hash_Helm_Chart_Lock 72.85404148609757 ns/iter 49.8340205071595 ns/iter 1.46
JSON_Equality_Helm_Chart_Lock 160.7928929466215 ns/iter 124.58527245369456 ns/iter 1.29
JSON_Divisible_By_Decimal 244.81216353715493 ns/iter 248.5202708711047 ns/iter 0.99
JSON_String_Equal/10 5.630057096763179 ns/iter 4.321815823672317 ns/iter 1.30
JSON_String_Equal/100 6.333506696802494 ns/iter 5.476007159362391 ns/iter 1.16
JSON_String_Equal_Small_By_Perfect_Hash/10 1.054591165246289 ns/iter 0.6921802058857659 ns/iter 1.52
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.340449119266072 ns/iter 9.50823466983753 ns/iter 1.30
JSON_String_Fast_Hash/10 2.816052571180114 ns/iter 2.305421305478001 ns/iter 1.22
JSON_String_Fast_Hash/100 2.8151717632950497 ns/iter 2.304961574086905 ns/iter 1.22
JSON_String_Key_Hash/10 2.4619904656477454 ns/iter 1.728820909442348 ns/iter 1.42
JSON_String_Key_Hash/100 7.737055278858273 ns/iter 6.628080860784429 ns/iter 1.17
JSON_Object_Defines_Miss_Same_Length 4.219977695440898 ns/iter 3.414096427229072 ns/iter 1.24
JSON_Object_Defines_Miss_Too_Small 4.221681649071345 ns/iter 3.614278526779824 ns/iter 1.17
JSON_Object_Defines_Miss_Too_Large 4.221632757424562 ns/iter 3.4173424430596087 ns/iter 1.24
Pointer_Object_Traverse 27.212572972618833 ns/iter 24.318610020768354 ns/iter 1.12
Pointer_Object_Try_Traverse 29.582718869042672 ns/iter 28.48015769072122 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 171.61786016443776 ns/iter 183.5756903611232 ns/iter 0.93
Pointer_Walker_Schema_ISO_Language 3187542.746543585 ns/iter 3095703.820175606 ns/iter 1.03
Pointer_Maybe_Tracked_Deeply_Nested/0 1396467.5271629984 ns/iter 1195337.773037553 ns/iter 1.17
Pointer_Maybe_Tracked_Deeply_Nested/1 1697776.491400605 ns/iter 1937912.2611111496 ns/iter 0.88
Pointer_Position_Tracker_Get_Deeply_Nested 698.8146699533884 ns/iter 711.0715481976578 ns/iter 0.98
Schema_Frame_WoT_References 5322151.499999598 ns/iter 4645264.486841795 ns/iter 1.15
Schema_Frame_OMC_References 22674151.3548375 ns/iter 19954170.75000066 ns/iter 1.14
Schema_Frame_OMC_Locations 20346709.205883227 ns/iter 18120304.128204294 ns/iter 1.12
Schema_Frame_ISO_Language_Locations 102755426.83333091 ns/iter 93577889.9999897 ns/iter 1.10
Schema_Frame_KrakenD_References 41652575.294118404 ns/iter 36924291.473682344 ns/iter 1.13
Schema_Frame_KrakenD_Reachable 604013056.9999746 ns/iter 784798042.000034 ns/iter 0.77
Schema_Iterator_ISO_Language 2990588.4487179834 ns/iter 2777521.162055215 ns/iter 1.08
Schema_Frame_ISO_Language_Locations_To_JSON 110737368.20001158 ns/iter 113120459.80000675 ns/iter 0.98
Schema_Tracker_ISO_Language 4893276.482517693 ns/iter 4748721.489932758 ns/iter 1.03
Schema_Tracker_ISO_Language_To_JSON 18513542.710527536 ns/iter 19962696.529409427 ns/iter 0.93
Schema_Format_ISO_Language_To_JSON 111086528.16667093 ns/iter 98644915.42857325 ns/iter 1.13
Schema_Bundle_Meta_2020_12 1699760.0464550653 ns/iter 1544461.5739513652 ns/iter 1.10
Schema_Frame_Many_Resources_References 381423843.50004476 ns/iter 375074887.9999719 ns/iter 1.02
EditorSchema_ForEditor_EmbeddedResources 14001057.56000812 ns/iter 12502958.660720408 ns/iter 1.12
URITemplateRouter_Create 17601.372516141855 ns/iter 16002.678346769613 ns/iter 1.10
URITemplateRouter_Match 176.04120360983643 ns/iter 140.6369960989196 ns/iter 1.25
URITemplateRouter_Match_BasePath 215.56311693523944 ns/iter 160.02485930453938 ns/iter 1.35
URITemplateRouterView_Restore 6461.72434661069 ns/iter 2539.850353526699 ns/iter 2.54
URITemplateRouterView_Match 163.10649449132939 ns/iter 139.79704050189332 ns/iter 1.17
URITemplateRouterView_Match_BasePath 196.04834424105778 ns/iter 157.49906098044565 ns/iter 1.24
URITemplateRouterView_Arguments 468.88632636212185 ns/iter 427.90736087490785 ns/iter 1.10
JSONL_Parse_Large 10046436.357143711 ns/iter 9509507.753424969 ns/iter 1.06
JSONL_Parse_Large_GZIP 11371911.129031325 ns/iter 10816113.53846046 ns/iter 1.05
HTML_Build_Table_100000 88960398.50000648 ns/iter 71883950.0000033 ns/iter 1.24
HTML_Render_Table_100000 4952145.457143128 ns/iter 10284546.102941677 ns/iter 0.48

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

Comment thread test/jsonschema/jsonschema_frame_draft3_test.cc
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: b1a7cee Previous: 7eec861 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.049372339666756 ns/iter 4.121869962716644 ns/iter 0.74
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.5205156187133504 ns/iter 4.741581707012797 ns/iter 0.74
Regex_Period_Asterisk 3.304656098912784 ns/iter 4.104910766258776 ns/iter 0.81
Regex_Group_Period_Asterisk_Group 3.2111554737674237 ns/iter 4.749036607143304 ns/iter 0.68
Regex_Period_Plus 2.635449662825333 ns/iter 3.7850987723204406 ns/iter 0.70
Regex_Period 2.6289627208666086 ns/iter 3.7966216003631943 ns/iter 0.69
Regex_Caret_Period_Plus_Dollar 2.9118615362789453 ns/iter 4.452824999999905 ns/iter 0.65
Regex_Caret_Group_Period_Plus_Group_Dollar 2.915765442523263 ns/iter 4.436172500000168 ns/iter 0.66
Regex_Caret_Period_Asterisk_Dollar 3.2101495362661536 ns/iter 4.728630670698092 ns/iter 0.68
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.2349629464292207 ns/iter 4.71756563552974 ns/iter 0.69
Regex_Caret_X_Hyphen 6.452285714284959 ns/iter 7.865305803570319 ns/iter 0.82
Regex_Period_Md_Dollar 30.454803600856348 ns/iter 35.1409399432513 ns/iter 0.87
Regex_Caret_Slash_Period_Asterisk 6.407773214285887 ns/iter 7.960311383930575 ns/iter 0.80
Regex_Caret_Period_Range_Dollar 3.7646207075632927 ns/iter 4.739241943022239 ns/iter 0.79
Regex_Nested_Backtrack 90.34237096683181 ns/iter 95.7233930480639 ns/iter 0.94
JSON_Array_Of_Objects_Unique 392.7017299107303 ns/iter 492.7500892857697 ns/iter 0.80
JSON_Parse_1 7740.4218750005375 ns/iter 8163.330357141721 ns/iter 0.95
JSON_Parse_Real 14577.63839286181 ns/iter 16512.709013672324 ns/iter 0.88
JSON_Parse_Decimal 15393.5848214307 ns/iter 15970.363839287977 ns/iter 0.96
JSON_Parse_Schema_ISO_Language 7102069.999998801 ns/iter 6102498.214285593 ns/iter 1.16
JSON_Fast_Hash_Helm_Chart_Lock 50.85649000000103 ns/iter 63.61285714285308 ns/iter 0.80
JSON_Equality_Helm_Chart_Lock 233.14846428572113 ns/iter 251.9078625102748 ns/iter 0.93
JSON_Divisible_By_Decimal 274.9097142857084 ns/iter 244.78219366271725 ns/iter 1.12
JSON_String_Equal/10 9.459846386340136 ns/iter 12.276916071426415 ns/iter 0.77
JSON_String_Equal/100 11.73696250000132 ns/iter 12.936242857140964 ns/iter 0.91
JSON_String_Equal_Small_By_Perfect_Hash/10 1.4670566511306877 ns/iter 1.8839841981108867 ns/iter 0.78
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.638237903400114 ns/iter 12.857517857144428 ns/iter 0.75
JSON_String_Fast_Hash/10 2.643182006568708 ns/iter 3.8203041294642452 ns/iter 0.69
JSON_String_Fast_Hash/100 2.63034055568665 ns/iter 3.816295096100217 ns/iter 0.69
JSON_String_Key_Hash/10 2.695566671700387 ns/iter 3.7821567789612223 ns/iter 0.71
JSON_String_Key_Hash/100 13.76735618853738 ns/iter 14.420724042763704 ns/iter 0.95
JSON_Object_Defines_Miss_Same_Length 4.0889776412310965 ns/iter 3.7733769575471703 ns/iter 1.08
JSON_Object_Defines_Miss_Too_Small 3.512819771296865 ns/iter 3.831279100301384 ns/iter 0.92
JSON_Object_Defines_Miss_Too_Large 3.7332149933332897 ns/iter 3.77163642183655 ns/iter 0.99
Pointer_Object_Traverse 36.88655110512082 ns/iter 42.11440610879624 ns/iter 0.88
Pointer_Object_Try_Traverse 47.62909927742544 ns/iter 49.131069999998545 ns/iter 0.97
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.49503637246985 ns/iter 157.95296875000173 ns/iter 1.12
Pointer_Walker_Schema_ISO_Language 12859584.00000254 ns/iter 12334689.28571467 ns/iter 1.04
Pointer_Maybe_Tracked_Deeply_Nested/0 2097412.8571424447 ns/iter 2076967.8124999304 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 4005865.116279131 ns/iter 3128517.4107143884 ns/iter 1.28
Pointer_Position_Tracker_Get_Deeply_Nested 532.8642754263836 ns/iter 662.2735491070841 ns/iter 0.80
Schema_Frame_WoT_References 9810984.374997389 ns/iter 10009204.687499108 ns/iter 0.98
Schema_Frame_OMC_References 44473093.333332755 ns/iter 44691266.66667762 ns/iter 1.00
Schema_Frame_OMC_Locations 41562376.47059831 ns/iter 41588117.64706544 ns/iter 1.00
Schema_Frame_ISO_Language_Locations 191195074.999996 ns/iter 204583833.33334494 ns/iter 0.93
Schema_Frame_KrakenD_References 88264922.22220218 ns/iter 92869585.7142949 ns/iter 0.95
Schema_Frame_KrakenD_Reachable 601261300.0000329 ns/iter 544716099.9999596 ns/iter 1.10
Schema_Iterator_ISO_Language 6898726.78571492 ns/iter 6468095.53571513 ns/iter 1.07
Schema_Frame_ISO_Language_Locations_To_JSON 301506499.99995947 ns/iter 295840999.9999958 ns/iter 1.02
Schema_Tracker_ISO_Language 18158824.39024524 ns/iter 17802155.555556156 ns/iter 1.02
Schema_Tracker_ISO_Language_To_JSON 51772236.36364529 ns/iter 50461654.54545686 ns/iter 1.03
Schema_Format_ISO_Language_To_JSON 189179150.0000295 ns/iter 205858566.6666962 ns/iter 0.92
Schema_Bundle_Meta_2020_12 2803423.1060664956 ns/iter 2906536.0169472685 ns/iter 0.96
Schema_Frame_Many_Resources_References 1395953899.999995 ns/iter 1548176700.0001128 ns/iter 0.90
EditorSchema_ForEditor_EmbeddedResources 26543608.000038147 ns/iter 28944613.636357725 ns/iter 0.92
URITemplateRouter_Create 23075.019252016726 ns/iter 23649.63214285711 ns/iter 0.98
URITemplateRouter_Match 227.47340625002718 ns/iter 217.78980277725645 ns/iter 1.04
URITemplateRouter_Match_BasePath 255.15946428567662 ns/iter 251.22196428575145 ns/iter 1.02
URITemplateRouterView_Restore 24500.76071428547 ns/iter 33799.04373505972 ns/iter 0.72
URITemplateRouterView_Match 162.60015625003834 ns/iter 154.06930562190095 ns/iter 1.06
URITemplateRouterView_Match_BasePath 185.88874874007263 ns/iter 183.48023066791671 ns/iter 1.01
URITemplateRouterView_Arguments 420.90360817696455 ns/iter 443.04862499998876 ns/iter 0.95
JSONL_Parse_Large 27727723.999996673 ns/iter 28869996.000003085 ns/iter 0.96
JSONL_Parse_Large_GZIP 27303153.84615796 ns/iter 28429992.000001222 ns/iter 0.96
HTML_Build_Table_100000 94421844.4444434 ns/iter 84181077.77778357 ns/iter 1.12
HTML_Render_Table_100000 12069044.642856851 ns/iter 7070158.928572467 ns/iter 1.71

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: b1a7cee Previous: 7eec861 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.855136883623522 ns/iter 1.6092468422892299 ns/iter 1.15
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.8017718376748217 ns/iter 1.6091206082743927 ns/iter 1.12
Regex_Period_Asterisk 1.8432972340712104 ns/iter 1.5971623048190065 ns/iter 1.15
Regex_Group_Period_Asterisk_Group 1.7920473168040638 ns/iter 1.6505671861887046 ns/iter 1.09
Regex_Period_Plus 2.865075545126154 ns/iter 2.041571715190843 ns/iter 1.40
Regex_Period 2.3779099592438824 ns/iter 1.9767580744423552 ns/iter 1.20
Regex_Caret_Period_Plus_Dollar 2.2981950197943792 ns/iter 2.1202705343799977 ns/iter 1.08
Regex_Caret_Group_Period_Plus_Group_Dollar 2.192937031084042 ns/iter 2.009890352495685 ns/iter 1.09
Regex_Caret_Period_Asterisk_Dollar 1.709879365185813 ns/iter 1.617959389683615 ns/iter 1.06
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.279236614745389 ns/iter 1.7404954766525822 ns/iter 1.31
Regex_Caret_X_Hyphen 7.220174614345996 ns/iter 6.370329175651034 ns/iter 1.13
Regex_Period_Md_Dollar 21.906628724033688 ns/iter 22.112784842780563 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 4.925887851215258 ns/iter 5.270357804225819 ns/iter 0.93
Regex_Caret_Period_Range_Dollar 1.8242372737474895 ns/iter 1.7881111167199086 ns/iter 1.02
Regex_Nested_Backtrack 26.134650535042343 ns/iter 25.10598277176815 ns/iter 1.04
JSON_Array_Of_Objects_Unique 340.79911536610695 ns/iter 325.3435599960456 ns/iter 1.05
JSON_Parse_1 4170.187721882591 ns/iter 3828.7294794654354 ns/iter 1.09
JSON_Parse_Real 6491.272148844197 ns/iter 7131.103763352897 ns/iter 0.91
JSON_Parse_Decimal 8175.119484147371 ns/iter 8190.522617190963 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 4379035.899370687 ns/iter 4173648.5595246605 ns/iter 1.05
JSON_Fast_Hash_Helm_Chart_Lock 60.44585568672181 ns/iter 55.86174975417778 ns/iter 1.08
JSON_Equality_Helm_Chart_Lock 143.39237531636326 ns/iter 122.54788425580973 ns/iter 1.17
JSON_Divisible_By_Decimal 173.5996963064749 ns/iter 167.63582402684887 ns/iter 1.04
JSON_String_Equal/10 6.481143060404152 ns/iter 6.13085689090519 ns/iter 1.06
JSON_String_Equal/100 6.300780942078064 ns/iter 5.917926226003769 ns/iter 1.06
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7753830711739115 ns/iter 0.7281802526365309 ns/iter 1.06
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.3944807720741133 ns/iter 3.235765516085412 ns/iter 1.05
JSON_String_Fast_Hash/10 2.4864773244925327 ns/iter 2.2402138383829633 ns/iter 1.11
JSON_String_Fast_Hash/100 2.136171939536623 ns/iter 1.9934003424295992 ns/iter 1.07
JSON_String_Key_Hash/10 1.3861935798208882 ns/iter 1.317142008390328 ns/iter 1.05
JSON_String_Key_Hash/100 2.3886921433819364 ns/iter 2.413934212912769 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 2.4911907320459825 ns/iter 2.2524678407498455 ns/iter 1.11
JSON_Object_Defines_Miss_Too_Small 2.460009187057579 ns/iter 2.2400633641592673 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Large 3.0441101928271634 ns/iter 2.2661435521861604 ns/iter 1.34
Pointer_Object_Traverse 16.542461844363704 ns/iter 13.032002325460159 ns/iter 1.27
Pointer_Object_Try_Traverse 22.115131785507305 ns/iter 17.913595786319412 ns/iter 1.23
Pointer_Push_Back_Pointer_To_Weak_Pointer 163.49785194563677 ns/iter 146.07468226081753 ns/iter 1.12
Pointer_Walker_Schema_ISO_Language 4869361.413043869 ns/iter 3726058.773683785 ns/iter 1.31
Pointer_Maybe_Tracked_Deeply_Nested/0 1114780.9404761232 ns/iter 941240.6204187725 ns/iter 1.18
Pointer_Maybe_Tracked_Deeply_Nested/1 1527075.7158586523 ns/iter 1142654.4608206544 ns/iter 1.34
Pointer_Position_Tracker_Get_Deeply_Nested 404.5211786116357 ns/iter 334.98392378430486 ns/iter 1.21
Schema_Frame_WoT_References 5237027.173912477 ns/iter 4975553.049689552 ns/iter 1.05
Schema_Frame_OMC_References 29474185.749999527 ns/iter 30173827.68180968 ns/iter 0.98
Schema_Frame_OMC_Locations 26532625.000002623 ns/iter 23411520.833330236 ns/iter 1.13
Schema_Frame_ISO_Language_Locations 89444625.00000684 ns/iter 75506031.25000066 ns/iter 1.18
Schema_Frame_KrakenD_References 57953298.07691675 ns/iter 47051938.86666166 ns/iter 1.23
Schema_Frame_KrakenD_Reachable 563801166.0000757 ns/iter 384076500.49998665 ns/iter 1.47
Schema_Iterator_ISO_Language 2648904.7871485725 ns/iter 2350771.844660144 ns/iter 1.13
Schema_Frame_ISO_Language_Locations_To_JSON 109724242.99999754 ns/iter 86191571.42857148 ns/iter 1.27
Schema_Tracker_ISO_Language 10371873.661289366 ns/iter 8764533.2278504 ns/iter 1.18
Schema_Tracker_ISO_Language_To_JSON 15889999.108698368 ns/iter 12768355.722225048 ns/iter 1.24
Schema_Format_ISO_Language_To_JSON 80595428.57144412 ns/iter 68673683.2999486 ns/iter 1.17
Schema_Bundle_Meta_2020_12 1486326.7987959327 ns/iter 1201090.8432724646 ns/iter 1.24
Schema_Frame_Many_Resources_References 331196541.50004864 ns/iter 326987305.3332806 ns/iter 1.01
EditorSchema_ForEditor_EmbeddedResources 16443210.288884478 ns/iter 10925475.32787231 ns/iter 1.51
URITemplateRouter_Create 19771.46773999217 ns/iter 15492.481504980904 ns/iter 1.28
URITemplateRouter_Match 170.01296922934367 ns/iter 153.3691566164363 ns/iter 1.11
URITemplateRouter_Match_BasePath 197.59372847771814 ns/iter 180.77843883190735 ns/iter 1.09
URITemplateRouterView_Restore 18655.45005036764 ns/iter 12910.281604797925 ns/iter 1.45
URITemplateRouterView_Match 144.86123067169322 ns/iter 125.35511095122455 ns/iter 1.16
URITemplateRouterView_Match_BasePath 180.46540856717274 ns/iter 142.6796324603636 ns/iter 1.26
URITemplateRouterView_Arguments 423.18070264732165 ns/iter 384.85736023918014 ns/iter 1.10
JSONL_Parse_Large 14024733.836735398 ns/iter 11633396.881356698 ns/iter 1.21
JSONL_Parse_Large_GZIP 15220876.765953746 ns/iter 12405676.017237965 ns/iter 1.23
HTML_Build_Table_100000 69508262.50001682 ns/iter 61732201.41668404 ns/iter 1.13
HTML_Render_Table_100000 4059559.011560892 ns/iter 4720398.308370427 ns/iter 0.86

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: b1a7cee Previous: 7eec861 Ratio
HTML_Build_Table_100000 65025968.3636498 ns/iter 73313924.55555235 ns/iter 0.89
HTML_Render_Table_100000 4721521.195945668 ns/iter 5290158.549618327 ns/iter 0.89
JSONL_Parse_Large 12518966.053570628 ns/iter 12789866.690908723 ns/iter 0.98
JSONL_Parse_Large_GZIP 13692838.588235198 ns/iter 13860386.490192717 ns/iter 0.99
URITemplateRouter_Create 17598.07441650059 ns/iter 17158.41130902246 ns/iter 1.03
URITemplateRouter_Match 169.5639267844979 ns/iter 178.2784813796187 ns/iter 0.95
URITemplateRouter_Match_BasePath 200.19800455763155 ns/iter 207.79506548556216 ns/iter 0.96
URITemplateRouterView_Restore 6264.339715861988 ns/iter 6768.981606260743 ns/iter 0.93
URITemplateRouterView_Match 129.34338266701786 ns/iter 132.0300947605738 ns/iter 0.98
URITemplateRouterView_Match_BasePath 144.1263109487873 ns/iter 150.06794634821227 ns/iter 0.96
URITemplateRouterView_Arguments 469.39713178441934 ns/iter 477.6959714710788 ns/iter 0.98
EditorSchema_ForEditor_EmbeddedResources 14043594.419999864 ns/iter 14212877.142849071 ns/iter 0.99
Schema_Frame_WoT_References 5438040.46511581 ns/iter 5542582.039682866 ns/iter 0.98
Schema_Frame_OMC_References 22641481.032260638 ns/iter 22959026.741934776 ns/iter 0.99
Schema_Frame_OMC_Locations 20842683.529408265 ns/iter 21453350.636365388 ns/iter 0.97
Schema_Frame_ISO_Language_Locations 101109242.16663383 ns/iter 107390472.50001477 ns/iter 0.94
Schema_Frame_KrakenD_References 40755978.411759906 ns/iter 43603529.35294245 ns/iter 0.93
Schema_Frame_KrakenD_Reachable 570063699.9999915 ns/iter 586315370.0001931 ns/iter 0.97
Schema_Iterator_ISO_Language 3189777.9770634277 ns/iter 3290359.6338036777 ns/iter 0.97
Schema_Frame_ISO_Language_Locations_To_JSON 224947516.00000504 ns/iter 237844301.66665515 ns/iter 0.95
Schema_Tracker_ISO_Language 4659750.9121612795 ns/iter 4941371.139999925 ns/iter 0.94
Schema_Tracker_ISO_Language_To_JSON 22326422.80645333 ns/iter 22034661.93749648 ns/iter 1.01
Schema_Format_ISO_Language_To_JSON 107544176.16669798 ns/iter 116414624.66669357 ns/iter 0.92
Schema_Bundle_Meta_2020_12 1780539.1323164369 ns/iter 1809988.229692748 ns/iter 0.98
Schema_Frame_Many_Resources_References 371680862.000062 ns/iter 388760680.00001854 ns/iter 0.96
Pointer_Object_Traverse 27.663371700926923 ns/iter 26.078539474047098 ns/iter 1.06
Pointer_Object_Try_Traverse 22.37011285047148 ns/iter 22.383161663994613 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 184.98729123986968 ns/iter 177.55786255654795 ns/iter 1.04
Pointer_Walker_Schema_ISO_Language 3469026.472906443 ns/iter 3599360.8811879475 ns/iter 0.96
Pointer_Maybe_Tracked_Deeply_Nested/0 1529057.861538464 ns/iter 1529076.0396472386 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/1 1728989.4103194352 ns/iter 1739643.6567168082 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 431.36322086960746 ns/iter 414.6602539914104 ns/iter 1.04
JSON_Array_Of_Objects_Unique 460.1388178313064 ns/iter 439.72140233809563 ns/iter 1.05
JSON_Parse_1 7808.951801997136 ns/iter 7814.117945070884 ns/iter 1.00
JSON_Parse_Real 12213.606753147142 ns/iter 11844.841780564188 ns/iter 1.03
JSON_Parse_Decimal 16691.605430013762 ns/iter 16464.77541299217 ns/iter 1.01
JSON_Parse_Schema_ISO_Language 4566581.611843084 ns/iter 4535305.603894813 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 68.77328112245468 ns/iter 53.3739236652085 ns/iter 1.29
JSON_Equality_Helm_Chart_Lock 182.9076005634506 ns/iter 164.59019880726484 ns/iter 1.11
JSON_Divisible_By_Decimal 233.2117135915808 ns/iter 235.16986634224475 ns/iter 0.99
JSON_String_Equal/10 6.482811985762264 ns/iter 6.409943818662878 ns/iter 1.01
JSON_String_Equal/100 7.44552783662355 ns/iter 7.194045263244159 ns/iter 1.03
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7152005624248547 ns/iter 0.7130140076679462 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 21.957608162642366 ns/iter 21.96558076698216 ns/iter 1.00
JSON_String_Fast_Hash/10 1.0557191118713205 ns/iter 1.054984200624436 ns/iter 1.00
JSON_String_Fast_Hash/100 1.0556505307286448 ns/iter 1.056562524848288 ns/iter 1.00
JSON_String_Key_Hash/10 1.407479159525222 ns/iter 1.4079799122725203 ns/iter 1.00
JSON_String_Key_Hash/100 15.152819503333944 ns/iter 15.060017795771248 ns/iter 1.01
JSON_Object_Defines_Miss_Same_Length 3.878098837369658 ns/iter 3.5196367617910567 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Small 4.223128458291569 ns/iter 3.5171312102648753 ns/iter 1.20
JSON_Object_Defines_Miss_Too_Large 3.5199242831106305 ns/iter 3.5188003064831475 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 1.4068704596843855 ns/iter 1.407341906510398 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.4080943506722947 ns/iter 1.4074975988228862 ns/iter 1.00
Regex_Period_Asterisk 1.759137310119735 ns/iter 1.7620818723870995 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 1.4075292242769706 ns/iter 1.4112933439948505 ns/iter 1.00
Regex_Period_Plus 1.4079089536086538 ns/iter 1.4059515498110797 ns/iter 1.00
Regex_Period 1.4089429388745696 ns/iter 1.4084821900522846 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 1.7606018503113912 ns/iter 1.7575983087419549 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 1.760166529976896 ns/iter 1.7577762816168347 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 1.4143305032917035 ns/iter 1.4077256713879795 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.4082676585143967 ns/iter 1.407619269257666 ns/iter 1.00
Regex_Caret_X_Hyphen 11.951617545487142 ns/iter 11.609766724071035 ns/iter 1.03
Regex_Period_Md_Dollar 34.293476387493556 ns/iter 42.13997278483972 ns/iter 0.81
Regex_Caret_Slash_Period_Asterisk 3.8680217965309867 ns/iter 3.869113769822608 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.4076775895011795 ns/iter 1.4147358997686097 ns/iter 1.00
Regex_Nested_Backtrack 50.85669404110491 ns/iter 53.15325988395703 ns/iter 0.96

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

jviotti added 3 commits May 4, 2026 21:06
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti marked this pull request as ready for review May 5, 2026 01:22
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 6 files

@augmentcode
Copy link
Copy Markdown

augmentcode Bot commented May 5, 2026

🤖 Augment PR Summary

Summary: Adds Draft 3 support for the non-standard-but-common definitions keyword so the official JSON Schema test suite can be bundled/framed correctly.

Changes:

  • Enable definitions as the bundling container keyword for Draft 3 / Draft 3 Hyper (definitions_keyword).
  • Teach the known schema walker that definitions contains subschemas for Draft 3 / Draft 3 Hyper (with $ref dependency).
  • Adjust bundling of standalone $ref schemas under Draft 3 to rewrite into extends (instead of allOf) so bundling can add sibling keywords.
  • Add/expand Draft 3 bundling tests for id resolution, idempotency, pre-embedded definitions, taken keys, recursion, and standalone ref with a default dialect.
  • Add Draft 3 framing tests to ensure definitions subschemas are discovered and references into definitions are tracked.
  • Add Draft 3 walker tests asserting definitions is classified as LocationMembers with the expected dependencies.

Technical Notes: The Draft 3 standalone $ref rewrite uses extends to avoid $ref-sibling override behavior while still allowing a definitions container to be introduced during bundling.

🤖 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 45a8ba7 into main May 5, 2026
13 checks passed
@jviotti jviotti deleted the draft3-definitions branch May 5, 2026 01: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.

1 participant