Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 28, 2026

See: sourcemeta/jsonschema#629
Signed-off-by: Juan Cruz Viotti jv@jviotti.com

@jviotti jviotti force-pushed the structural-reframe branch 2 times, most recently from 1f5f8bf to 37f4185 Compare January 28, 2026 16:54
@jviotti jviotti marked this pull request as ready for review January 28, 2026 16:54
@jviotti jviotti changed the title [WIP] Skip reframing when transforming non-structural rules Skip reframing when transforming non-structural rules Jan 28, 2026
@augmentcode
Copy link

augmentcode bot commented Jan 28, 2026

🤖 Augment PR Summary

Summary: Introduces a per-rule reframe_after_transform flag to optionally skip expensive reframing after certain schema transformations.

Changes:

  • Extends SchemaTransformer rule storage from a pair to a 3-tuple: (rule, mutates, reframe-after-transform)
  • Updates the transformer loop to only call analyse_frame and restart the main scan when a rule requests reframing (or when references were fixed)
  • Requires rules added via SchemaTransformer::add to declare reframe_after_transform alongside mutates
  • Annotates many AlterSchema canonicalizer/linter rules with an appropriate reframe_after_transform value
  • Adjusts iterator/test code to account for the tuple-based rule storage

🤖 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. 2 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: 23b5500 Previous: 0e035dc Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1152152629727627 ns/iter 3.122576621744779 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.1126110405600684 ns/iter 3.1070015639685242 ns/iter 1.00
Regex_Period_Asterisk 3.1186093777165063 ns/iter 3.1074383253448135 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.1074621474200685 ns/iter 3.1058407422801864 ns/iter 1.00
Regex_Period_Plus 3.0981173034832907 ns/iter 3.1061163037115516 ns/iter 1.00
Regex_Period 2.8635615661504645 ns/iter 2.866010687617783 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.8381427449117744 ns/iter 2.8332153779376252 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1045410055548115 ns/iter 3.105878086128602 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.4192164841026385 ns/iter 3.418154040406822 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.4190229103056167 ns/iter 3.418694032233835 ns/iter 1.00
Regex_Caret_X_Hyphen 10.602937370136157 ns/iter 7.462109989792499 ns/iter 1.42
Regex_Period_Md_Dollar 28.704224339354464 ns/iter 27.58329969409682 ns/iter 1.04
Regex_Caret_Slash_Period_Asterisk 5.906939157225008 ns/iter 7.1465721470131784 ns/iter 0.83
Regex_Caret_Period_Range_Dollar 3.117007125007334 ns/iter 4.040762105538408 ns/iter 0.77
Regex_Nested_Backtrack 49.75897075872402 ns/iter 50.15603110000484 ns/iter 0.99
JSON_Array_Of_Objects_Unique 442.29764059477895 ns/iter 436.34239452107363 ns/iter 1.01
JSON_Parse_1 29720.21524682804 ns/iter 29369.882385168647 ns/iter 1.01
JSON_Parse_Real 39722.21916714338 ns/iter 37920.33482890885 ns/iter 1.05
JSON_Parse_Decimal 128851.35088365518 ns/iter 129111.63832932923 ns/iter 1.00
JSON_Parse_Schema_ISO_Language 22250828.580647595 ns/iter 22261221.870966464 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.74841818812261 ns/iter 62.59793334234387 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 174.44511632595868 ns/iter 164.37296189598484 ns/iter 1.06
JSON_String_Equal/10 6.84850859838348 ns/iter 7.463600747052456 ns/iter 0.92
JSON_String_Equal/100 7.476382163890601 ns/iter 7.154022602916734 ns/iter 1.05
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9764725404706073 ns/iter 0.9334786581533239 ns/iter 1.05
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.260892466408004 ns/iter 10.256115486056725 ns/iter 1.00
JSON_String_Fast_Hash/10 2.49251465773699 ns/iter 2.492522840539714 ns/iter 1.00
JSON_String_Fast_Hash/100 2.4876247535147864 ns/iter 2.4884128263635996 ns/iter 1.00
JSON_String_Key_Hash/10 1.8690051714602751 ns/iter 1.8680671061073593 ns/iter 1.00
JSON_String_Key_Hash/100 6.530939267760414 ns/iter 6.57853208806715 ns/iter 0.99
JSON_Object_Defines_Miss_Same_Length 3.736019581577605 ns/iter 3.737089257984124 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.741868763850348 ns/iter 3.7350403332250437 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.7354759625006104 ns/iter 3.7349596822697317 ns/iter 1.00
Pointer_Object_Traverse 44.32878747317745 ns/iter 44.2354393453588 ns/iter 1.00
Pointer_Object_Try_Traverse 53.273302139926386 ns/iter 53.27717771302491 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 319.9418825613108 ns/iter 354.35441512392134 ns/iter 0.90
Pointer_Walker_Schema_ISO_Language 3162095.5475111827 ns/iter 3107905.7719300077 ns/iter 1.02
Schema_Frame_WoT_References 5967702.350427962 ns/iter 5978542.230768964 ns/iter 1.00
Schema_Frame_OMC_References 28266344.640001077 ns/iter 28068001.799997546 ns/iter 1.01
Schema_Frame_OMC_Locations 26722903.61538479 ns/iter 26532181.76922897 ns/iter 1.01
Schema_Frame_ISO_Language_Locations 129803987.39998691 ns/iter 125470841.59998576 ns/iter 1.03
Schema_Iterator_ISO_Language 2339259.4366669073 ns/iter 2361439.698996609 ns/iter 0.99
Schema_Frame_ISO_Language_Locations_To_JSON 135039095.50001937 ns/iter 134881079.99998534 ns/iter 1.00
Schema_Tracker_ISO_Language 44652124.06666221 ns/iter 45609660.86667122 ns/iter 0.98
Schema_Tracker_ISO_Language_To_JSON 21759536.874998987 ns/iter 21686953.374999262 ns/iter 1.00
Schema_Format_ISO_Language_To_JSON 133769056.59999922 ns/iter 130327934.00002447 ns/iter 1.03
Schema_Bundle_Meta_2020_12 2196494.8025078196 ns/iter 2209006.9621427725 ns/iter 0.99
Schema_Frame_Many_Resources_References 270866391.0000268 ns/iter 266307312.3333485 ns/iter 1.02
Alterschema_Check_Readibility_ISO_Language_Set_3 240368579.3333352 ns/iter 234985515.33331618 ns/iter 1.02
Alterschema_Check_Readibility_OMC 33177048.523812335 ns/iter 33038413.61904839 ns/iter 1.00
Alterschema_Apply_Readibility_KrakenD 10384127379.00012 ns/iter 19112266606.999924 ns/iter 0.54
EditorSchema_ForEditor_EmbeddedResources 14640801.687498594 ns/iter 14692799.62501228 ns/iter 1.00
URITemplateRouter_Create 16462.79174898479 ns/iter 15693.04206358214 ns/iter 1.05
URITemplateRouter_Match 169.2459296409505 ns/iter 176.19045307124685 ns/iter 0.96
URITemplateRouterView_Restore 8262.518775983066 ns/iter 8224.398225605693 ns/iter 1.00
URITemplateRouterView_Match 119.57485120763893 ns/iter 118.19100950646305 ns/iter 1.01

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (windows/msvc)

Details
Benchmark suite Current: 23b5500 Previous: 0e035dc Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 4.152556605288979 ns/iter 4.105974560904213 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.2332097397017385 ns/iter 4.085232596581044 ns/iter 1.04
Regex_Period_Asterisk 4.742270948177563 ns/iter 4.814961518931906 ns/iter 0.98
Regex_Group_Period_Asterisk_Group 4.5215712499995675 ns/iter 4.661195234091323 ns/iter 0.97
Regex_Period_Plus 5.10383499999989 ns/iter 5.4216569999994135 ns/iter 0.94
Regex_Period 5.1612412065089215 ns/iter 5.038165178571522 ns/iter 1.02
Regex_Caret_Period_Plus_Dollar 4.750179464285306 ns/iter 4.964351785714273 ns/iter 0.96
Regex_Caret_Group_Period_Plus_Group_Dollar 4.549377499999707 ns/iter 4.593709821429164 ns/iter 0.99
Regex_Caret_Period_Asterisk_Dollar 4.45471673908264 ns/iter 4.630171707381955 ns/iter 0.96
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.085858801938582 ns/iter 4.1835468378279606 ns/iter 0.98
Regex_Caret_X_Hyphen 7.571756250001727 ns/iter 7.889213169643179 ns/iter 0.96
Regex_Period_Md_Dollar 34.927789909424874 ns/iter 37.91335937499696 ns/iter 0.92
Regex_Caret_Slash_Period_Asterisk 7.264713392856947 ns/iter 7.541424999999436 ns/iter 0.96
Regex_Caret_Period_Range_Dollar 4.187776538308641 ns/iter 4.340387408776462 ns/iter 0.96
Regex_Nested_Backtrack 99.50299999999856 ns/iter 99.4071250264621 ns/iter 1.00
JSON_Array_Of_Objects_Unique 523.2505000001311 ns/iter 512.874910714142 ns/iter 1.02
JSON_Parse_1 73347.9464285734 ns/iter 79500.04464285192 ns/iter 0.92
JSON_Parse_Real 94404.52658362503 ns/iter 96321.89285712555 ns/iter 0.98
JSON_Parse_Decimal 340114.0471512199 ns/iter 349814.34184681275 ns/iter 0.97
JSON_Parse_Schema_ISO_Language 58663190.909101106 ns/iter 57842218.1818248 ns/iter 1.01
JSON_Fast_Hash_Helm_Chart_Lock 71.27227678570388 ns/iter 71.73237500000238 ns/iter 0.99
JSON_Equality_Helm_Chart_Lock 291.9402191098626 ns/iter 293.0679110237396 ns/iter 1.00
JSON_String_Equal/10 12.945342857140727 ns/iter 13.094453571430417 ns/iter 0.99
JSON_String_Equal/100 14.37366288225911 ns/iter 14.230787882896815 ns/iter 1.01
JSON_String_Equal_Small_By_Perfect_Hash/10 2.197028124999889 ns/iter 2.2110603124993133 ns/iter 0.99
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 12.600507142857557 ns/iter 12.876916683587753 ns/iter 0.98
JSON_String_Fast_Hash/10 3.770922382500032 ns/iter 3.7867360646664885 ns/iter 1.00
JSON_String_Fast_Hash/100 3.7725755289784653 ns/iter 3.7763649553568257 ns/iter 1.00
JSON_String_Key_Hash/10 3.857165350254786 ns/iter 3.764819993278181 ns/iter 1.02
JSON_String_Key_Hash/100 16.323379464284116 ns/iter 13.809694357990534 ns/iter 1.18
JSON_Object_Defines_Miss_Same_Length 4.731855144491663 ns/iter 4.954238999998779 ns/iter 0.96
JSON_Object_Defines_Miss_Too_Small 3.784457136098915 ns/iter 3.782706957530828 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.726003974269902 ns/iter 4.74368573766541 ns/iter 1.00
Pointer_Object_Traverse 51.4953000000105 ns/iter 51.09010322930632 ns/iter 1.01
Pointer_Object_Try_Traverse 75.79456473213294 ns/iter 76.61011160714334 ns/iter 0.99
Pointer_Push_Back_Pointer_To_Weak_Pointer 172.7989624642115 ns/iter 167.20486607145597 ns/iter 1.03
Pointer_Walker_Schema_ISO_Language 11628910.666668162 ns/iter 9995648.437499227 ns/iter 1.16
Schema_Frame_WoT_References 12177585.937500624 ns/iter 11451419.642855043 ns/iter 1.06
Schema_Frame_OMC_References 61118827.272718005 ns/iter 58445681.81818101 ns/iter 1.05
Schema_Frame_OMC_Locations 57911990.9090919 ns/iter 54945800 ns/iter 1.05
Schema_Frame_ISO_Language_Locations 265736250.00003177 ns/iter 252283666.6666232 ns/iter 1.05
Schema_Iterator_ISO_Language 4816759.090909704 ns/iter 4171001.1173182474 ns/iter 1.15
Schema_Frame_ISO_Language_Locations_To_JSON 264476900.0000906 ns/iter 266966949.9999827 ns/iter 0.99
Schema_Tracker_ISO_Language 102277733.33330484 ns/iter 102218266.66664432 ns/iter 1.00
Schema_Tracker_ISO_Language_To_JSON 57211063.63636284 ns/iter 54539829.99999879 ns/iter 1.05
Schema_Format_ISO_Language_To_JSON 264516799.9999103 ns/iter 265782333.3332393 ns/iter 1.00
Schema_Bundle_Meta_2020_12 4210389.534874636 ns/iter 4211417.469875129 ns/iter 1.00
Schema_Frame_Many_Resources_References 546714100.0001447 ns/iter 544480199.9999527 ns/iter 1.00
Alterschema_Check_Readibility_ISO_Language_Set_3 394382699.99993736 ns/iter 398765199.9999571 ns/iter 0.99
Alterschema_Check_Readibility_OMC 71132322.2222341 ns/iter 65990777.777794085 ns/iter 1.08
Alterschema_Apply_Readibility_KrakenD 23997401200.00001 ns/iter 43549332900.000084 ns/iter 0.55
EditorSchema_ForEditor_EmbeddedResources 28357865.624997202 ns/iter 26555310.000010952 ns/iter 1.07
URITemplateRouter_Create 22531.713931763858 ns/iter 23198.630595645107 ns/iter 0.97
URITemplateRouter_Match 210.83293749995846 ns/iter 212.43452846269878 ns/iter 0.99
URITemplateRouterView_Restore 33078.41964285225 ns/iter 34600.46874999583 ns/iter 0.96
URITemplateRouterView_Match 143.30594895952 ns/iter 172.5940383433554 ns/iter 0.83

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: 23b5500 Previous: 421f999 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.4284316908487535 ns/iter 2.0980685485177175 ns/iter 1.16
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.2017187596339047 ns/iter 1.8909890926930972 ns/iter 1.16
Regex_Period_Asterisk 2.3531893858049484 ns/iter 1.9454174713494086 ns/iter 1.21
Regex_Group_Period_Asterisk_Group 2.177178118980711 ns/iter 1.9015356228403573 ns/iter 1.14
Regex_Period_Plus 2.5893947478979467 ns/iter 2.498348921534349 ns/iter 1.04
Regex_Period 2.6924764417349336 ns/iter 2.616721780919506 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 2.8396538833789537 ns/iter 2.74792230672283 ns/iter 1.03
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1538917606430767 ns/iter 2.557775541265525 ns/iter 1.23
Regex_Caret_Period_Asterisk_Dollar 2.4862520755951687 ns/iter 2.0839249410602076 ns/iter 1.19
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.384774495279631 ns/iter 2.1203426719619785 ns/iter 1.12
Regex_Caret_X_Hyphen 8.99055012384549 ns/iter 7.541843717344996 ns/iter 1.19
Regex_Period_Md_Dollar 26.607081754926345 ns/iter 29.320869074419196 ns/iter 0.91
Regex_Caret_Slash_Period_Asterisk 7.304856270166488 ns/iter 7.408654641916357 ns/iter 0.99
Regex_Caret_Period_Range_Dollar 2.5039395599201733 ns/iter 2.0875396681748417 ns/iter 1.20
Regex_Nested_Backtrack 44.76260813175887 ns/iter 34.973927831842104 ns/iter 1.28
JSON_Array_Of_Objects_Unique 535.7430790772247 ns/iter 361.38792769102747 ns/iter 1.48
JSON_Parse_1 33100.387324883195 ns/iter 22098.230201624465 ns/iter 1.50
JSON_Parse_Real 38906.986855303236 ns/iter 35288.49349790087 ns/iter 1.10
JSON_Parse_Decimal 349269.4921316618 ns/iter 387979.92755414604 ns/iter 0.90
JSON_Parse_Schema_ISO_Language 23544212.387099423 ns/iter 23158994.07143109 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 83.68982416496384 ns/iter 70.19763143566813 ns/iter 1.19
JSON_Equality_Helm_Chart_Lock 175.1714573409777 ns/iter 169.45549458760337 ns/iter 1.03
JSON_String_Equal/10 9.706392779034461 ns/iter 8.567285683743682 ns/iter 1.13
JSON_String_Equal/100 10.65700704462556 ns/iter 7.1327522285888065 ns/iter 1.49
JSON_String_Equal_Small_By_Perfect_Hash/10 0.4947438932409632 ns/iter 0.39021437117857927 ns/iter 1.27
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 5.223180000000411 ns/iter 5.28605164482926 ns/iter 0.99
JSON_String_Fast_Hash/10 3.3117566449004485 ns/iter 2.733675235659131 ns/iter 1.21
JSON_String_Fast_Hash/100 3.123664205197987 ns/iter 2.5379093423512726 ns/iter 1.23
JSON_String_Key_Hash/10 2.4445433954246463 ns/iter 1.723963656471523 ns/iter 1.42
JSON_String_Key_Hash/100 3.634397760657229 ns/iter 2.8666167679619377 ns/iter 1.27
JSON_Object_Defines_Miss_Same_Length 5.011233133503502 ns/iter 3.45830817770974 ns/iter 1.45
JSON_Object_Defines_Miss_Too_Small 4.050453618672386 ns/iter 3.234033911268603 ns/iter 1.25
JSON_Object_Defines_Miss_Too_Large 5.527861660000327 ns/iter 3.794714566172621 ns/iter 1.46
Pointer_Object_Traverse 24.908588938662934 ns/iter 21.99456176035521 ns/iter 1.13
Pointer_Object_Try_Traverse 34.41396571936637 ns/iter 33.322278336953765 ns/iter 1.03
Pointer_Push_Back_Pointer_To_Weak_Pointer 249.8990165888165 ns/iter 217.6993686781271 ns/iter 1.15
Pointer_Walker_Schema_ISO_Language 7472292.414415999 ns/iter 8169762.461537362 ns/iter 0.91
Schema_Frame_WoT_References 9188774.89024309 ns/iter 9496732.773335073 ns/iter 0.97
Schema_Frame_OMC_References 51770183.40000359 ns/iter 45807786.76471281 ns/iter 1.13
Schema_Frame_OMC_Locations 45391675.00000379 ns/iter 36177791.66667232 ns/iter 1.25
Schema_Frame_ISO_Language_Locations 144573885.49999452 ns/iter 128152825.00000648 ns/iter 1.13
Schema_Iterator_ISO_Language 3091481.583691379 ns/iter 2959912.644787244 ns/iter 1.04
Schema_Frame_ISO_Language_Locations_To_JSON 139213691.59997994 ns/iter 112505374.99999307 ns/iter 1.24
Schema_Tracker_ISO_Language 56943791.599996984 ns/iter 52790370.89999293 ns/iter 1.08
Schema_Tracker_ISO_Language_To_JSON 19660648.43750104 ns/iter 18030144.317075297 ns/iter 1.09
Schema_Format_ISO_Language_To_JSON 162233724.80008036 ns/iter 129631541.60006526 ns/iter 1.25
Schema_Bundle_Meta_2020_12 2624892.252422997 ns/iter 2042127.6954192272 ns/iter 1.29
Schema_Frame_Many_Resources_References 353563916.500093 ns/iter 271407041.6667103 ns/iter 1.30
Alterschema_Check_Readibility_ISO_Language_Set_3 267200736.33335534 ns/iter 228725444.3333495 ns/iter 1.17
Alterschema_Check_Readibility_OMC 61196954.83333013 ns/iter 42657208.31249098 ns/iter 1.43
Alterschema_Apply_Readibility_KrakenD 16744200791.00014 ns/iter
EditorSchema_ForEditor_EmbeddedResources 18691666.72501592 ns/iter 13056447.48000759 ns/iter 1.43
URITemplateRouter_Create 23554.8915206527 ns/iter 17446.05815366305 ns/iter 1.35
URITemplateRouter_Match 226.74458221652574 ns/iter 187.0982359107445 ns/iter 1.21
URITemplateRouterView_Restore 19163.644182954282 ns/iter 9902.950042226454 ns/iter 1.94
URITemplateRouterView_Match 161.24431989980928 ns/iter 114.68986017142933 ns/iter 1.41

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: 23b5500 Previous: 0e035dc Ratio
URITemplateRouter_Create 12367.783185841641 ns/iter 15000.01165927073 ns/iter 0.82
URITemplateRouter_Match 150.92973859320364 ns/iter 155.92785831920327 ns/iter 0.97
URITemplateRouterView_Restore 3745.4595555459377 ns/iter 8337.301767570847 ns/iter 0.45
URITemplateRouterView_Match 103.27651187523207 ns/iter 142.5494746213354 ns/iter 0.72
EditorSchema_ForEditor_EmbeddedResources 13863115.431394916 ns/iter 15784941.636354687 ns/iter 0.88
Alterschema_Check_Readibility_ISO_Language_Set_3 222934561.0000261 ns/iter 245889028.33337066 ns/iter 0.91
Alterschema_Check_Readibility_OMC 33168380.761903137 ns/iter 37789996.222222224 ns/iter 0.88
Alterschema_Apply_Readibility_KrakenD 11360645221.999903 ns/iter 22394391649 ns/iter 0.51
Schema_Frame_WoT_References 5748768.180328475 ns/iter 6559875.61682221 ns/iter 0.88
Schema_Frame_OMC_References 28132571.11999519 ns/iter 31961701.227280833 ns/iter 0.88
Schema_Frame_OMC_Locations 25930398.960008457 ns/iter 29408239.208332058 ns/iter 0.88
Schema_Frame_ISO_Language_Locations 129602542.20001844 ns/iter 136151339.19997787 ns/iter 0.95
Schema_Iterator_ISO_Language 2539423.4744519955 ns/iter 2798188.9169955985 ns/iter 0.91
Schema_Frame_ISO_Language_Locations_To_JSON 334596589.4999381 ns/iter 312718388.99999696 ns/iter 1.07
Schema_Tracker_ISO_Language 53302971.84615609 ns/iter 50605470.21428517 ns/iter 1.05
Schema_Tracker_ISO_Language_To_JSON 48425122.26667471 ns/iter 35975820.15000853 ns/iter 1.35
Schema_Format_ISO_Language_To_JSON 139426222.00002006 ns/iter 145043923.00004837 ns/iter 0.96
Schema_Bundle_Meta_2020_12 2296840.2491716887 ns/iter 2423724.8442897224 ns/iter 0.95
Schema_Frame_Many_Resources_References 269582639.9999532 ns/iter 294967871.0000399 ns/iter 0.91
Pointer_Object_Traverse 45.45602395375637 ns/iter 47.18151342300592 ns/iter 0.96
Pointer_Object_Try_Traverse 27.519728253843713 ns/iter 28.574680575925004 ns/iter 0.96
Pointer_Push_Back_Pointer_To_Weak_Pointer 166.78485685848926 ns/iter 174.2103976075689 ns/iter 0.96
Pointer_Walker_Schema_ISO_Language 3568963.414506937 ns/iter 3645943.4136125916 ns/iter 0.98
JSON_Array_Of_Objects_Unique 325.51892941247763 ns/iter 419.6490390380908 ns/iter 0.78
JSON_Parse_1 31459.8769017297 ns/iter 33262.42244898147 ns/iter 0.95
JSON_Parse_Real 42637.07826298539 ns/iter 44131.12384369029 ns/iter 0.97
JSON_Parse_Decimal 151876.04350660887 ns/iter 159881.97554346587 ns/iter 0.95
JSON_Parse_Schema_ISO_Language 22630422.290317696 ns/iter 22667240.90322309 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 52.11071005566852 ns/iter 61.307089746505824 ns/iter 0.85
JSON_Equality_Helm_Chart_Lock 145.22429019592158 ns/iter 152.10858552757765 ns/iter 0.95
JSON_String_Equal/10 5.813049368038115 ns/iter 6.262148451229652 ns/iter 0.93
JSON_String_Equal/100 7.056870115640953 ns/iter 6.884361241976845 ns/iter 1.03
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8654530370512641 ns/iter 0.9331333500966464 ns/iter 0.93
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 9.542841712062213 ns/iter 14.915051627331485 ns/iter 0.64
JSON_String_Fast_Hash/10 2.590338127803539 ns/iter 2.2538778708457667 ns/iter 1.15
JSON_String_Fast_Hash/100 2.5744080023015536 ns/iter 2.2539201114285183 ns/iter 1.14
JSON_String_Key_Hash/10 1.4407794425794715 ns/iter 1.245590344084206 ns/iter 1.16
JSON_String_Key_Hash/100 11.81786287111187 ns/iter 12.422247328801506 ns/iter 0.95
JSON_Object_Defines_Miss_Same_Length 3.0223840551976155 ns/iter 2.796579239090597 ns/iter 1.08
JSON_Object_Defines_Miss_Too_Small 2.9785744994210224 ns/iter 2.7985390367583594 ns/iter 1.06
JSON_Object_Defines_Miss_Too_Large 3.011814611746895 ns/iter 2.8008562838859046 ns/iter 1.08
Regex_Lower_S_Or_Upper_S_Asterisk 2.3628863406289464 ns/iter 3.110038519192696 ns/iter 0.76
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.309403576974244 ns/iter 3.107853253869462 ns/iter 0.74
Regex_Period_Asterisk 2.3720972791452355 ns/iter 3.108385169577142 ns/iter 0.76
Regex_Group_Period_Asterisk_Group 2.4605491967695006 ns/iter 3.109379615664153 ns/iter 0.79
Regex_Period_Plus 2.3146650128085366 ns/iter 3.107817823233986 ns/iter 0.74
Regex_Period 2.308965526477069 ns/iter 3.1171345476647194 ns/iter 0.74
Regex_Caret_Period_Plus_Dollar 2.308626933585019 ns/iter 3.1093337943256434 ns/iter 0.74
Regex_Caret_Group_Period_Plus_Group_Dollar 2.3070090785563613 ns/iter 3.1076680300004877 ns/iter 0.74
Regex_Caret_Period_Asterisk_Dollar 2.3681340206850074 ns/iter 4.352329146972338 ns/iter 0.54
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.430484822552382 ns/iter 4.351016665228532 ns/iter 0.56
Regex_Caret_X_Hyphen 8.870152819130261 ns/iter 13.06925599663976 ns/iter 0.68
Regex_Period_Md_Dollar 30.40935633206596 ns/iter 35.811282165947624 ns/iter 0.85
Regex_Caret_Slash_Period_Asterisk 8.63617590155957 ns/iter 8.080004918648923 ns/iter 1.07
Regex_Caret_Period_Range_Dollar 2.5980193656170663 ns/iter 4.662742342607584 ns/iter 0.56
Regex_Nested_Backtrack 48.87141252761175 ns/iter 57.7669523574429 ns/iter 0.85

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

@jviotti jviotti force-pushed the structural-reframe branch from 37f4185 to 23b5500 Compare January 28, 2026 17:32
@jviotti jviotti merged commit 6db6600 into main Jan 28, 2026
13 checks passed
@jviotti jviotti deleted the structural-reframe branch January 28, 2026 17:47
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: 23b5500 Previous: 421f999 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.55462465108738 ns/iter 2.538362235765262 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.513023902061484 ns/iter 2.3946393064418747 ns/iter 1.05
Regex_Period_Asterisk 2.4085428233219695 ns/iter 2.6373503701602763 ns/iter 0.91
Regex_Group_Period_Asterisk_Group 2.521451575518198 ns/iter 2.2355415855381873 ns/iter 1.13
Regex_Period_Plus 2.4359534290352745 ns/iter 2.638563477600102 ns/iter 0.92
Regex_Period 2.3972905859829288 ns/iter 2.334657118975744 ns/iter 1.03
Regex_Caret_Period_Plus_Dollar 2.448148134895697 ns/iter 2.340092872355974 ns/iter 1.05
Regex_Caret_Group_Period_Plus_Group_Dollar 3.308135189070113 ns/iter 2.3260780120922133 ns/iter 1.42
Regex_Caret_Period_Asterisk_Dollar 3.3761860265177464 ns/iter 2.2488886886498167 ns/iter 1.50
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.7543206255122774 ns/iter 2.34145592817321 ns/iter 1.18
Regex_Caret_X_Hyphen 10.535293338078061 ns/iter 6.954024997335592 ns/iter 1.51
Regex_Period_Md_Dollar 41.2559043965209 ns/iter 23.261094848264516 ns/iter 1.77
Regex_Caret_Slash_Period_Asterisk 7.122637187510589 ns/iter 5.127719672787364 ns/iter 1.39
Regex_Caret_Period_Range_Dollar 3.2126455145736275 ns/iter 2.338978989968072 ns/iter 1.37
Regex_Nested_Backtrack 68.13747921340818 ns/iter 47.69833702241328 ns/iter 1.43
JSON_Array_Of_Objects_Unique 350.8155311076032 ns/iter 309.6954863481747 ns/iter 1.13
JSON_Parse_1 39332.546376956176 ns/iter 27733.28243880694 ns/iter 1.42
JSON_Parse_Real 39839.57183706515 ns/iter 26856.506406400935 ns/iter 1.48
JSON_Parse_Decimal 372141.2312921319 ns/iter 269207.2711115809 ns/iter 1.38
JSON_Parse_Schema_ISO_Language 24356529.116630554 ns/iter 20245972.801657286 ns/iter 1.20
JSON_Fast_Hash_Helm_Chart_Lock 41.19589582013499 ns/iter 35.875933928451026 ns/iter 1.15
JSON_Equality_Helm_Chart_Lock 143.62621513871323 ns/iter 132.2263530967478 ns/iter 1.09
JSON_String_Equal/10 6.599571535809138 ns/iter 6.009171209220074 ns/iter 1.10
JSON_String_Equal/100 5.685649452479952 ns/iter 5.680361160300968 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8665958862356002 ns/iter 0.8175030413037673 ns/iter 1.06
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.900973329001105 ns/iter 3.776201617885875 ns/iter 1.03
JSON_String_Fast_Hash/10 2.1175902132024276 ns/iter 2.152367828602675 ns/iter 0.98
JSON_String_Fast_Hash/100 2.602934707294892 ns/iter 2.1764255863029067 ns/iter 1.20
JSON_String_Key_Hash/10 1.9246341145665884 ns/iter 1.6123980532016906 ns/iter 1.19
JSON_String_Key_Hash/100 3.6726037165300167 ns/iter 2.8541286832070902 ns/iter 1.29
JSON_Object_Defines_Miss_Same_Length 2.518385326384137 ns/iter 1.9840349451820272 ns/iter 1.27
JSON_Object_Defines_Miss_Too_Small 2.2961096174249587 ns/iter 1.959337613670754 ns/iter 1.17
JSON_Object_Defines_Miss_Too_Large 2.489167084279887 ns/iter 1.933320995054789 ns/iter 1.29
Pointer_Object_Traverse 70.75208134834888 ns/iter 54.49620030379024 ns/iter 1.30
Pointer_Object_Try_Traverse 50.30602602994949 ns/iter 40.94331347776082 ns/iter 1.23
Pointer_Push_Back_Pointer_To_Weak_Pointer 216.08228919201161 ns/iter 165.20322169548302 ns/iter 1.31
Pointer_Walker_Schema_ISO_Language 5079063.875921842 ns/iter 4237843.884362115 ns/iter 1.20
Schema_Frame_WoT_References 6762662.06513851 ns/iter 5382371.671272047 ns/iter 1.26
Schema_Frame_OMC_References 40957951.54571533 ns/iter 36011377.9703776 ns/iter 1.14
Schema_Frame_OMC_Locations 32951882.01101203 ns/iter 38267737.940738074 ns/iter 0.86
Schema_Frame_ISO_Language_Locations 129500985.14556885 ns/iter 135039806.3659668 ns/iter 0.96
Schema_Iterator_ISO_Language 2163438.6296857866 ns/iter 2404935.8983193673 ns/iter 0.90
Schema_Frame_ISO_Language_Locations_To_JSON 243532339.7318522 ns/iter 206788380.94075522 ns/iter 1.18
Schema_Tracker_ISO_Language 68354996.76791105 ns/iter 54850084.441048756 ns/iter 1.25
Schema_Tracker_ISO_Language_To_JSON 38035735.48793793 ns/iter 32003684.4773726 ns/iter 1.19
Schema_Format_ISO_Language_To_JSON 174924532.57242838 ns/iter 152595579.62417603 ns/iter 1.15
Schema_Bundle_Meta_2020_12 2516844.9772514314 ns/iter 2118266.6034818445 ns/iter 1.19
Schema_Frame_Many_Resources_References 607352972.0306396 ns/iter 633919000.6256104 ns/iter 0.96
Alterschema_Check_Readibility_ISO_Language_Set_3 315832972.5265503 ns/iter 237718164.92080688 ns/iter 1.33
Alterschema_Check_Readibility_OMC 79619778.52715386 ns/iter 38215994.8348999 ns/iter 2.08
Alterschema_Apply_Readibility_KrakenD 15480133295.059204 ns/iter
EditorSchema_ForEditor_EmbeddedResources 14533742.268880209 ns/iter 12670243.779818216 ns/iter 1.15
URITemplateRouter_Create 18569.581971861207 ns/iter 14657.953810934467 ns/iter 1.27
URITemplateRouter_Match 229.10920166419683 ns/iter 187.30550185196535 ns/iter 1.22
URITemplateRouterView_Restore 14244.329749706025 ns/iter 10376.514858740718 ns/iter 1.37
URITemplateRouterView_Match 156.29580950489273 ns/iter 111.30023612586493 ns/iter 1.40

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants