Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Dec 26, 2025

Signed-off-by: Juan Cruz Viotti [email protected]

@jviotti jviotti force-pushed the frame-error-orphan branch 3 times, most recently from 23d2500 to fe45a0e Compare December 26, 2025 13:47
Signed-off-by: Juan Cruz Viotti <[email protected]>
@jviotti jviotti marked this pull request as ready for review December 26, 2025 15:40
@jviotti jviotti changed the title [WIP] Fix incorrect instance locations on $ref with allOf Fix incorrect instance locations on $ref with allOf Dec 26, 2025
@augmentcode
Copy link

augmentcode bot commented Dec 26, 2025

🤖 Augment PR Summary

Summary: Fixes incorrect SchemaFrame instance-location results when schemas use $ref under applicators like allOf, including recursive/self-referential shapes.

Changes:

  • Adds `PointerTemplate` helpers (`at`, `starts_with`, `ends_with`, `head`, `tail`) to support safe token/prefix/suffix operations needed by framing logic.
  • Introduces a recursion/loop-growth guard (`is_recursive_extension`) so instance-location propagation doesn’t explode when reference chains revisit prior path segments.
  • Refactors instance-location population to iterate inheritance + reference-origin tracing until a fixpoint (total instance-location count stabilizes), instead of relying on a fixed multi-pass ordering.
  • Adds multiple 2020-12 framing tests covering `$ref`→`allOf`→`$defs` chains, deep mixed reference/applicator chains, true self-recursion, and non-recursive repeated-path-segment cases.
  • Adds a benchmark for framing “Instances” over the W3C WoT TD v1.1 Draft-07 schema and vendors that schema into the benchmark fixtures.

Technical Notes: Convergence is detected by summing per-subschema instance-location counts (std::transform_reduce) and looping until stable; recursive extension detection prevents unbounded growth while still allowing expected one-step recursive locations.

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

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: 50a5f98 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.130038550705087 ns/iter 3.153757134480479 ns/iter 0.99
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.108453627247018 ns/iter 3.1095541580660204 ns/iter 1.00
Regex_Period_Asterisk 3.1250647814159254 ns/iter 3.1104178211971565 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.106759722139007 ns/iter 3.108821345527177 ns/iter 1.00
Regex_Period_Plus 2.9083708266589468 ns/iter 2.8817160085967255 ns/iter 1.01
Regex_Period 3.1016272729319616 ns/iter 3.108529180159894 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.045793620962764 ns/iter 3.1087725512357616 ns/iter 0.98
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1068595766719556 ns/iter 2.900353619108522 ns/iter 1.07
Regex_Caret_Period_Asterisk_Dollar 3.107941735541689 ns/iter 3.731503827545664 ns/iter 0.83
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1073773269502274 ns/iter 3.7298358779818144 ns/iter 0.83
Regex_Caret_X_Hyphen 12.440889732457771 ns/iter 12.43285883152315 ns/iter 1.00
Regex_Period_Md_Dollar 28.95543672493491 ns/iter 27.652512065444494 ns/iter 1.05
Regex_Caret_Slash_Period_Asterisk 6.56047011459112 ns/iter 6.5292419461646904 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 3.1215218869110233 ns/iter 4.04176103347443 ns/iter 0.77
Regex_Nested_Backtrack 55.28286670981854 ns/iter 49.54324863074503 ns/iter 1.12
JSON_Array_Of_Objects_Unique 433.0284437988115 ns/iter 437.1791090637249 ns/iter 0.99
JSON_Parse_1 29159.608164790603 ns/iter 29014.40595247941 ns/iter 1.01
JSON_Parse_Real 38154.75040739126 ns/iter 37818.62193875101 ns/iter 1.01
JSON_Parse_Decimal 129229.10084807748 ns/iter 129204.67860438077 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 62.467590410880746 ns/iter 62.17160009761987 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 166.156826445662 ns/iter 164.29273785357339 ns/iter 1.01
JSON_String_Equal/10 7.1597453299224005 ns/iter 6.845738083410754 ns/iter 1.05
JSON_String_Equal/100 7.778920101486542 ns/iter 7.463461701334823 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9400412199646485 ns/iter 0.9361629966190337 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.626157152061113 ns/iter 14.603907267111635 ns/iter 1.00
JSON_String_Fast_Hash/10 2.4876486832364924 ns/iter 2.8004998886412604 ns/iter 0.89
JSON_String_Fast_Hash/100 2.4889133047411383 ns/iter 2.7992222476469317 ns/iter 0.89
JSON_String_Key_Hash/10 2.698937290827088 ns/iter 2.6918943737091556 ns/iter 1.00
JSON_String_Key_Hash/100 9.016138412764047 ns/iter 9.024388517078545 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.819994866348957 ns/iter 3.735049679042204 ns/iter 1.02
JSON_Object_Defines_Miss_Too_Small 3.7339887508867715 ns/iter 3.733735809798218 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7415225588532306 ns/iter 3.7360829795726036 ns/iter 1.00
Pointer_Object_Traverse 46.05845711098821 ns/iter 44.301421508230156 ns/iter 1.04
Pointer_Object_Try_Traverse 53.57037479247816 ns/iter 53.51904696725839 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 308.18714896686544 ns/iter 308.76029756864267 ns/iter 1.00
Schema_Frame_WoT_Instances 116089554.49999787 ns/iter
Schema_Frame_OMC_Instances 12408825482.999987 ns/iter 200896078.00002798 ns/iter 61.77
Schema_Frame_OMC_References 35088077.39999611 ns/iter 38465697.47368353 ns/iter 0.91
Schema_Frame_OMC_Locations 32308684.136363685 ns/iter 34782838.849997684 ns/iter 0.93
Schema_Frame_ISO_Language_Locations 173964192.99998912 ns/iter 174303135.24999973 ns/iter 1.00
Schema_Iterator_ISO_Language 6154992.236842741 ns/iter 6158405.946903016 ns/iter 1.00
Schema_PointerWalker_ISO_Language 4644204.1933331285 ns/iter 4688018.993287975 ns/iter 0.99
Schema_Frame_ISO_Language_Locations_To_JSON 149656132.60001191 ns/iter 149004634.40001205 ns/iter 1.00
Schema_Tracker_ISO_Language 44218032.46667271 ns/iter 48262087.78571786 ns/iter 0.92
Schema_Tracker_ISO_Language_To_JSON 21204429.999997817 ns/iter 24471318.931032643 ns/iter 0.87
Schema_Format_ISO_Language_To_JSON 178662916.0000075 ns/iter 180436705.0000053 ns/iter 0.99
Schema_Bundle_Meta_2020_12 2263732.419351072 ns/iter 2254709.366563293 ns/iter 1.00
Alterschema_Check_Readibility_ISO_Language_Set_3 292075920.4999968 ns/iter 303246445.5000081 ns/iter 0.96
Alterschema_Check_Readibility_OMC 12120033244.999945 ns/iter 209898669.9999917 ns/iter 57.74

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: 50a5f98 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.663467524524716 ns/iter 1.6000358732160735 ns/iter 1.04
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.6724231701123122 ns/iter 1.609029341057054 ns/iter 1.04
Regex_Period_Asterisk 1.6753722762079515 ns/iter 1.6131867823099926 ns/iter 1.04
Regex_Group_Period_Asterisk_Group 1.6553108337150277 ns/iter 1.6082627591048861 ns/iter 1.03
Regex_Period_Plus 1.8907956730342335 ns/iter 1.9296087092307006 ns/iter 0.98
Regex_Period 1.887095313068446 ns/iter 1.9098557124044846 ns/iter 0.99
Regex_Caret_Period_Plus_Dollar 1.943330469442081 ns/iter 1.9366421660536466 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 1.9731523609699222 ns/iter 1.9102078439130548 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 1.6445166454322842 ns/iter 1.6074249436917991 ns/iter 1.02
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.6408841655997042 ns/iter 1.6036922643171512 ns/iter 1.02
Regex_Caret_X_Hyphen 6.250526148822913 ns/iter 6.3791029502966206 ns/iter 0.98
Regex_Period_Md_Dollar 19.39914866726498 ns/iter 20.419276248676354 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 4.821057894901958 ns/iter 5.267682827691062 ns/iter 0.92
Regex_Caret_Period_Range_Dollar 1.7012170870009515 ns/iter 1.834708179113876 ns/iter 0.93
Regex_Nested_Backtrack 26.668345266605236 ns/iter 29.414846261786405 ns/iter 0.91
JSON_Array_Of_Objects_Unique 347.07505516280526 ns/iter 360.9964167915341 ns/iter 0.96
JSON_Parse_1 20748.007049430456 ns/iter 21442.148613043428 ns/iter 0.97
JSON_Parse_Real 24900.147882891346 ns/iter 25694.32310401983 ns/iter 0.97
JSON_Parse_Decimal 248623.00281988195 ns/iter 248873.80642891937 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 57.16561104444454 ns/iter 56.719872866599395 ns/iter 1.01
JSON_Equality_Helm_Chart_Lock 131.1203576296748 ns/iter 125.73346254841796 ns/iter 1.04
JSON_String_Equal/10 6.650812813121031 ns/iter 6.32912193391008 ns/iter 1.05
JSON_String_Equal/100 6.443371073327709 ns/iter 6.191137481516241 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 0.33183858984974557 ns/iter 0.3176420856233203 ns/iter 1.04
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.158151725185675 ns/iter 3.1306922593292894 ns/iter 1.01
JSON_String_Fast_Hash/10 2.3064437266770956 ns/iter 2.2240553810345642 ns/iter 1.04
JSON_String_Fast_Hash/100 1.9694923722552797 ns/iter 1.9061888778647211 ns/iter 1.03
JSON_String_Key_Hash/10 1.3121347335762363 ns/iter 1.2610515449460955 ns/iter 1.04
JSON_String_Key_Hash/100 2.084814859712232 ns/iter 2.0382181434555577 ns/iter 1.02
JSON_Object_Defines_Miss_Same_Length 2.637479869681752 ns/iter 2.644399957683702 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.63797466886912 ns/iter 2.6998671414375397 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Large 2.589608337896249 ns/iter 2.7914477963855857 ns/iter 0.93
Pointer_Object_Traverse 13.587272545511974 ns/iter 15.60088841438379 ns/iter 0.87
Pointer_Object_Try_Traverse 17.893444810004993 ns/iter 19.585013298681307 ns/iter 0.91
Pointer_Push_Back_Pointer_To_Weak_Pointer 143.3516213009232 ns/iter 155.9483718769611 ns/iter 0.92
Schema_Frame_WoT_Instances 105097440.57143117 ns/iter
Schema_Frame_OMC_Instances 11704641250.000122 ns/iter 188622551.9999698 ns/iter 62.05
Schema_Frame_OMC_References 35161939.550005175 ns/iter 34208389.600007646 ns/iter 1.03
Schema_Frame_OMC_Locations 33243400.809516016 ns/iter 32359780.318198647 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 112402766.59996197 ns/iter 117830991.79992859 ns/iter 0.95
Schema_Iterator_ISO_Language 5809526.639174608 ns/iter 6048712.719300391 ns/iter 0.96
Schema_PointerWalker_ISO_Language 5720571.8503932385 ns/iter 5539472.219305408 ns/iter 1.03
Schema_Frame_ISO_Language_Locations_To_JSON 85082822.8749947 ns/iter 78694291.66668043 ns/iter 1.08
Schema_Tracker_ISO_Language 38638027.777778916 ns/iter 36990840.27776836 ns/iter 1.04
Schema_Tracker_ISO_Language_To_JSON 14797907.979167728 ns/iter 13566386.68001324 ns/iter 1.09
Schema_Format_ISO_Language_To_JSON 119500034.66665749 ns/iter 110045437.49974497 ns/iter 1.09
Schema_Bundle_Meta_2020_12 1645387.7712253742 ns/iter 1542569.678805258 ns/iter 1.07
Alterschema_Check_Readibility_ISO_Language_Set_3 207431097.0000018 ns/iter 196171583.49979037 ns/iter 1.06
Alterschema_Check_Readibility_OMC 12482434917.000092 ns/iter 202699718.74995464 ns/iter 61.58

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: 50a5f98 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.8503473399333927 ns/iter 3.7718314218374154 ns/iter 0.76
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.216648755026686 ns/iter 4.44574375000002 ns/iter 0.72
Regex_Period_Asterisk 3.0617004464293784 ns/iter 3.76840122767825 ns/iter 0.81
Regex_Group_Period_Asterisk_Group 3.236651255057745 ns/iter 4.395797499995524 ns/iter 0.74
Regex_Period_Plus 2.9233781657279008 ns/iter 3.775193564690541 ns/iter 0.77
Regex_Period 2.9404268487388663 ns/iter 3.771143654821548 ns/iter 0.78
Regex_Caret_Period_Plus_Dollar 3.5362637883286894 ns/iter 4.394075624998095 ns/iter 0.80
Regex_Caret_Group_Period_Plus_Group_Dollar 3.5196484096773957 ns/iter 4.397029375002148 ns/iter 0.80
Regex_Caret_Period_Asterisk_Dollar 3.2497437499979958 ns/iter 4.467083750000711 ns/iter 0.73
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.2649590676013824 ns/iter 4.39064375000271 ns/iter 0.74
Regex_Caret_X_Hyphen 6.443106250003439 ns/iter 7.84791852678625 ns/iter 0.82
Regex_Period_Md_Dollar 30.74772321428197 ns/iter 38.83620535713054 ns/iter 0.79
Regex_Caret_Slash_Period_Asterisk 6.444665178573165 ns/iter 7.8332723214304325 ns/iter 0.82
Regex_Caret_Period_Range_Dollar 3.780785886103107 ns/iter 4.724681260544559 ns/iter 0.80
Regex_Nested_Backtrack 88.58687550947563 ns/iter 112.07741017514992 ns/iter 0.79
JSON_Array_Of_Objects_Unique 416.6282057231873 ns/iter 456.6141343894238 ns/iter 0.91
JSON_Parse_1 75200.72321426596 ns/iter 75918.8169642552 ns/iter 0.99
JSON_Parse_Real 93152.1762421616 ns/iter 100181.29101381112 ns/iter 0.93
JSON_Parse_Decimal 314000.28129417135 ns/iter 340766.0164273066 ns/iter 0.92
JSON_Fast_Hash_Helm_Chart_Lock 49.81625999998869 ns/iter 57.621999999992106 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 242.82917857135544 ns/iter 275.99342517886254 ns/iter 0.88
JSON_String_Equal/10 10.32959062499117 ns/iter 12.857264285701472 ns/iter 0.80
JSON_String_Equal/100 13.457613555992296 ns/iter 14.154498820746149 ns/iter 0.95
JSON_String_Equal_Small_By_Perfect_Hash/10 1.4660011600601572 ns/iter 1.8864208945421506 ns/iter 0.78
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.65550624999878 ns/iter 12.545503571426966 ns/iter 0.77
JSON_String_Fast_Hash/10 2.632373725327994 ns/iter 3.1361843749989147 ns/iter 0.84
JSON_String_Fast_Hash/100 2.633543613720347 ns/iter 3.136741071431613 ns/iter 0.84
JSON_String_Key_Hash/10 3.2231437500018143 ns/iter 4.506504832680796 ns/iter 0.72
JSON_String_Key_Hash/100 13.73094435833994 ns/iter 16.228314623468194 ns/iter 0.85
JSON_Object_Defines_Miss_Same_Length 4.286406875002058 ns/iter 3.7629058861392504 ns/iter 1.14
JSON_Object_Defines_Miss_Too_Small 4.1053025073289255 ns/iter 3.7622485647105286 ns/iter 1.09
JSON_Object_Defines_Miss_Too_Large 4.221044998115292 ns/iter 3.7680954241078473 ns/iter 1.12
Pointer_Object_Traverse 45.804483296401145 ns/iter 50.7969299999786 ns/iter 0.90
Pointer_Object_Try_Traverse 64.30511607147439 ns/iter 66.20436607144192 ns/iter 0.97
Pointer_Push_Back_Pointer_To_Weak_Pointer 172.99477720954482 ns/iter 170.20544220129938 ns/iter 1.02
Schema_Frame_WoT_Instances 230214200.0001671 ns/iter
Schema_Frame_OMC_Instances 21289477000.00026 ns/iter 390929650.00008917 ns/iter 54.46
Schema_Frame_OMC_References 80143622.22214307 ns/iter 75887366.66669624 ns/iter 1.06
Schema_Frame_OMC_Locations 74301322.22230491 ns/iter 71896677.77775969 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 309351249.99996334 ns/iter 300950150.0000624 ns/iter 1.03
Schema_Iterator_ISO_Language 14598724.444436407 ns/iter 12448297.999999339 ns/iter 1.17
Schema_PointerWalker_ISO_Language 12063378.125006352 ns/iter 9788614.66666179 ns/iter 1.23
Schema_Frame_ISO_Language_Locations_To_JSON 221569233.33326027 ns/iter 221804833.33340815 ns/iter 1.00
Schema_Tracker_ISO_Language 105967683.33334695 ns/iter 100820950.00007029 ns/iter 1.05
Schema_Tracker_ISO_Language_To_JSON 54096669.999944426 ns/iter 53051172.72729893 ns/iter 1.02
Schema_Format_ISO_Language_To_JSON 319980999.99964327 ns/iter 315061350.00063294 ns/iter 1.02
Schema_Bundle_Meta_2020_12 3875692.513383667 ns/iter 3835882.352926573 ns/iter 1.01
Alterschema_Check_Readibility_ISO_Language_Set_3 467085250.0003093 ns/iter 470674050.0000706 ns/iter 0.99
Alterschema_Check_Readibility_OMC 21175213800.000164 ns/iter 382659849.9999818 ns/iter 55.34

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: d89edd9 Previous: a49bdc7 Ratio
Alterschema_Check_Readibility_ISO_Language_Set_3 307417364.9999921 ns/iter 306563556.0000146 ns/iter 1.00
Alterschema_Check_Readibility_OMC 148826335776.99973 ns/iter 202601030.3333502 ns/iter 734.58
Schema_Frame_WoT_Instances 798206267.0002961 ns/iter
Schema_Frame_OMC_Instances 141261056439.00018 ns/iter 198316078.49999955 ns/iter 712.30
Schema_Frame_OMC_References 40353337.6111227 ns/iter 40125028.77777832 ns/iter 1.01
Schema_Frame_OMC_Locations 38763978.055562295 ns/iter 37547067.94445105 ns/iter 1.03
Schema_Frame_ISO_Language_Locations 167880965.75010058 ns/iter 175860650.25000152 ns/iter 0.95
Schema_Iterator_ISO_Language 7328093.216491437 ns/iter 6853948.69306983 ns/iter 1.07
Schema_PointerWalker_ISO_Language 4344696.734178106 ns/iter 4410884.7721518725 ns/iter 0.98
Schema_Frame_ISO_Language_Locations_To_JSON 197848605.66672555 ns/iter 270052636.0000216 ns/iter 0.73
Schema_Tracker_ISO_Language 51615354.30768429 ns/iter 49870561.928563416 ns/iter 1.03
Schema_Tracker_ISO_Language_To_JSON 36989596.15789327 ns/iter 33199138.190476723 ns/iter 1.11
Schema_Format_ISO_Language_To_JSON 183444854.49995318 ns/iter 181148445.49995723 ns/iter 1.01
Schema_Bundle_Meta_2020_12 2459132.484218891 ns/iter 2451482.762235746 ns/iter 1.00
Pointer_Object_Traverse 49.927438047672325 ns/iter 49.25254416886729 ns/iter 1.01
Pointer_Object_Try_Traverse 26.17188500093872 ns/iter 22.725121348928578 ns/iter 1.15
Pointer_Push_Back_Pointer_To_Weak_Pointer 175.23099684544275 ns/iter 158.30908724696542 ns/iter 1.11
JSON_Array_Of_Objects_Unique 398.79221303225114 ns/iter 415.1209930491512 ns/iter 0.96
JSON_Parse_1 32910.382239581435 ns/iter 32710.553659900525 ns/iter 1.01
JSON_Parse_Real 44588.215739127474 ns/iter 43983.23881914095 ns/iter 1.01
JSON_Parse_Decimal 154726.4398755068 ns/iter 153940.8128025026 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 53.3545664468755 ns/iter 71.1420140510328 ns/iter 0.75
JSON_Equality_Helm_Chart_Lock 158.89226225000192 ns/iter 157.99722894239687 ns/iter 1.01
JSON_String_Equal/10 6.612378324924113 ns/iter 7.233844904635994 ns/iter 0.91
JSON_String_Equal/100 7.237484831887398 ns/iter 7.8596101307984085 ns/iter 0.92
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6236710985730238 ns/iter 0.9344057060126142 ns/iter 0.67
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 13.787063041904045 ns/iter 13.374518533326011 ns/iter 1.03
JSON_String_Fast_Hash/10 2.165663660943541 ns/iter 1.9428583142133082 ns/iter 1.11
JSON_String_Fast_Hash/100 2.1658867925104617 ns/iter 1.9445619113474701 ns/iter 1.11
JSON_String_Key_Hash/10 2.921162269491009 ns/iter 1.5571706062279456 ns/iter 1.88
JSON_String_Key_Hash/100 13.368664741311077 ns/iter 12.429057756658697 ns/iter 1.08
JSON_Object_Defines_Miss_Same_Length 2.7994671391351305 ns/iter 2.7986660148610785 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 2.7983644916153483 ns/iter 2.8005626816753213 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 2.799337087870306 ns/iter 2.7997432740969166 ns/iter 1.00
Regex_Lower_S_Or_Upper_S_Asterisk 3.1095675109318393 ns/iter 3.1114223625679784 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1093968406553407 ns/iter 3.11069574159413 ns/iter 1.00
Regex_Period_Asterisk 3.1199769975782017 ns/iter 3.109829580789386 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.108592237775997 ns/iter 3.1086675131806945 ns/iter 1.00
Regex_Period_Plus 3.1093730006624973 ns/iter 2.8067755665417566 ns/iter 1.11
Regex_Period 3.116696587570237 ns/iter 2.798066357993793 ns/iter 1.11
Regex_Caret_Period_Plus_Dollar 3.1082873685056738 ns/iter 2.7982551255022 ns/iter 1.11
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1089084262146582 ns/iter 2.7998627948064816 ns/iter 1.11
Regex_Caret_Period_Asterisk_Dollar 4.35154621012232 ns/iter 4.047464112725437 ns/iter 1.08
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.352018280393351 ns/iter 4.040174389849032 ns/iter 1.08
Regex_Caret_X_Hyphen 13.061988570868445 ns/iter 13.704720906443242 ns/iter 0.95
Regex_Period_Md_Dollar 35.67136085890207 ns/iter 35.363651759609354 ns/iter 1.01
Regex_Caret_Slash_Period_Asterisk 9.022961142098735 ns/iter 8.701966896642096 ns/iter 1.04
Regex_Caret_Period_Range_Dollar 4.665395023830851 ns/iter 3.818386901436186 ns/iter 1.22
Regex_Nested_Backtrack 59.93128449976372 ns/iter 56.800645214058264 ns/iter 1.06

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (macos/gcc)

Details
Benchmark suite Current: d89edd9 Previous: a49bdc7 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.110640546270517 ns/iter 2.147905259207392 ns/iter 0.98
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.0838674915183772 ns/iter 2.1503622823782442 ns/iter 0.97
Regex_Period_Asterisk 2.0859386641588884 ns/iter 2.1884181466041452 ns/iter 0.95
Regex_Group_Period_Asterisk_Group 2.0848583112997456 ns/iter 2.2202547065432228 ns/iter 0.94
Regex_Period_Plus 2.2646354658691967 ns/iter 2.297738273696676 ns/iter 0.99
Regex_Period 2.155426178954819 ns/iter 2.3527267496474162 ns/iter 0.92
Regex_Caret_Period_Plus_Dollar 2.298811859433578 ns/iter 2.656426867433941 ns/iter 0.87
Regex_Caret_Group_Period_Plus_Group_Dollar 2.288661161940637 ns/iter 2.228380144580531 ns/iter 1.03
Regex_Caret_Period_Asterisk_Dollar 2.41226102590715 ns/iter 2.164429935851479 ns/iter 1.11
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.376019469917413 ns/iter 2.1600304239523456 ns/iter 1.10
Regex_Caret_X_Hyphen 7.262078446967921 ns/iter 6.645628845532071 ns/iter 1.09
Regex_Period_Md_Dollar 24.62457947223683 ns/iter 21.135922276617837 ns/iter 1.17
Regex_Caret_Slash_Period_Asterisk 5.851415865498322 ns/iter 4.77403959846143 ns/iter 1.23
Regex_Caret_Period_Range_Dollar 3.0419909014913693 ns/iter 2.1599618465414014 ns/iter 1.41
Regex_Nested_Backtrack 55.447927232796424 ns/iter 43.9095926546355 ns/iter 1.26
JSON_Array_Of_Objects_Unique 284.1399005879893 ns/iter 259.374169034043 ns/iter 1.10
JSON_Parse_1 24646.082725764736 ns/iter 23609.82080068927 ns/iter 1.04
JSON_Parse_Real 26191.111372773787 ns/iter 24496.626185820434 ns/iter 1.07
JSON_Parse_Decimal 263316.924144297 ns/iter 259788.86344087694 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 34.25840677132444 ns/iter 32.59118797113001 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 124.51151824898578 ns/iter 122.48233206246113 ns/iter 1.02
JSON_String_Equal/10 5.458048369558947 ns/iter 5.817193777921539 ns/iter 0.94
JSON_String_Equal/100 5.198069231690491 ns/iter 5.524824464137582 ns/iter 0.94
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7537367864270328 ns/iter 0.795320617023189 ns/iter 0.95
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.4979980067876943 ns/iter 3.6556130456657883 ns/iter 0.96
JSON_String_Fast_Hash/10 1.833107011818741 ns/iter 1.9246030899994657 ns/iter 0.95
JSON_String_Fast_Hash/100 1.9444190903710972 ns/iter 1.9162809631285906 ns/iter 1.01
JSON_String_Key_Hash/10 1.550811728971166 ns/iter 1.5212885242907466 ns/iter 1.02
JSON_String_Key_Hash/100 2.7899202181637026 ns/iter 2.7184964888300978 ns/iter 1.03
JSON_Object_Defines_Miss_Same_Length 2.0591163109240704 ns/iter 1.8772844966807358 ns/iter 1.10
JSON_Object_Defines_Miss_Too_Small 2.0939936633014486 ns/iter 1.79048011873879 ns/iter 1.17
JSON_Object_Defines_Miss_Too_Large 2.071472893942728 ns/iter 1.783477378805577 ns/iter 1.16
Pointer_Object_Traverse 60.19800573504984 ns/iter 49.96860134546936 ns/iter 1.20
Pointer_Object_Try_Traverse 40.97172297175281 ns/iter 35.58957447118954 ns/iter 1.15
Pointer_Push_Back_Pointer_To_Weak_Pointer 176.72065147082768 ns/iter 159.0123791821537 ns/iter 1.11
Schema_Frame_WoT_Instances 923938035.9649658 ns/iter
Schema_Frame_OMC_Instances 160275328159.33228 ns/iter 184548020.362854 ns/iter 868.47
Schema_Frame_OMC_References 45756936.07330322 ns/iter 39464433.98793539 ns/iter 1.16
Schema_Frame_OMC_Locations 41711582.85701976 ns/iter 37306785.583496094 ns/iter 1.12
Schema_Frame_ISO_Language_Locations 173077523.7083435 ns/iter 158005952.835083 ns/iter 1.10
Schema_Iterator_ISO_Language 6234069.841097942 ns/iter 6449108.823723749 ns/iter 0.97
Schema_PointerWalker_ISO_Language 10972574.353218079 ns/iter 8469871.985606657 ns/iter 1.30
Schema_Frame_ISO_Language_Locations_To_JSON 182179927.82592773 ns/iter 137751197.8149414 ns/iter 1.32
Schema_Tracker_ISO_Language 42483553.29036713 ns/iter 37426392.237345375 ns/iter 1.14
Schema_Tracker_ISO_Language_To_JSON 23354620.76910611 ns/iter 24619102.478027344 ns/iter 0.95
Schema_Format_ISO_Language_To_JSON 165235638.61846924 ns/iter 165259838.10424805 ns/iter 1.00
Schema_Bundle_Meta_2020_12 1856557.060690487 ns/iter 1932050.104010595 ns/iter 0.96
Alterschema_Check_Readibility_ISO_Language_Set_3 258724371.59220377 ns/iter 241150379.1809082 ns/iter 1.07
Alterschema_Check_Readibility_OMC 177564007997.51282 ns/iter 187406480.3123474 ns/iter 947.48

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

Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
Signed-off-by: Juan Cruz Viotti <[email protected]>
@jviotti
Copy link
Member Author

jviotti commented Dec 26, 2025

augment review

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

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

Review completed. No suggestions at this time.

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

@jviotti
Copy link
Member Author

jviotti commented Dec 26, 2025

Closing in favour of #2148

@jviotti jviotti closed this Dec 26, 2025
@jviotti jviotti deleted the frame-error-orphan branch December 26, 2025 20: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