Skip to content

Convert SchemaFrame to JSON using the old JSON Pointer notation#2329

Merged
jviotti merged 1 commit intomainfrom
frame-locations-pointers
Apr 1, 2026
Merged

Convert SchemaFrame to JSON using the old JSON Pointer notation#2329
jviotti merged 1 commit intomainfrom
frame-locations-pointers

Conversation

@jviotti
Copy link
Copy Markdown
Member

@jviotti jviotti commented Apr 1, 2026

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
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 2 files

@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Apr 1, 2026

🤖 Augment PR Summary

Summary: This PR changes SchemaFrame::to_json() to emit JSON Pointer data using the legacy string notation (RFC 6901-style) rather than the token-array representation.

Changes:

  • Serialize locations.*.*.parent as a JSON Pointer string (or null when absent) instead of an array of tokens.
  • Serialize locations.*.*.pointer as a JSON Pointer string (e.g. "/properties/foo") instead of an array.
  • Serialize locations.*.*.relativePointer as a JSON Pointer string instead of an array.
  • Serialize references[].origin as a JSON Pointer string instead of an array.
  • Keep existing tracking/position emission behavior unchanged.
  • Update jsonschema_frame_test.cc expected JSON snapshots to match the new pointer string format (including empty pointer as "").

Technical Notes: The implementation relies on sourcemeta::core::to_string(WeakPointer) for consistent pointer escaping/formatting, and preserves null for truly-missing optional parent pointers.

🤖 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. 1 suggestion posted.

Fix All in Augment

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

entry.assign_assume_new("pointer",
sourcemeta::core::to_json(location.second.pointer));
entry.assign_assume_new(
"pointer", JSON{sourcemeta::core::to_string(location.second.pointer)});
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Switching these fields from token arrays to JSON Pointer strings loses the property-vs-index token typing (e.g., an object property named "0" becomes indistinguishable from array index 0 in the serialized output). Consider whether any downstream consumer expects to round-trip these values back into Pointer/WeakPointer tokens without that ambiguity.

Other locations where this applies: src/core/jsonschema/frame.cc:355, src/core/jsonschema/frame.cc:374, src/core/jsonschema/frame.cc:409.

Severity: low

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

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: a7b92ad Previous: 57e8c91 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.1480070518446546 ns/iter 3.1280531257476936 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 3.111994620306051 ns/iter 3.1126551092388293 ns/iter 1.00
Regex_Period_Asterisk 3.112551107374036 ns/iter 3.1137317583556214 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 3.11372296079804 ns/iter 3.1164548039147495 ns/iter 1.00
Regex_Period_Plus 3.1177453584864403 ns/iter 3.114788164856425 ns/iter 1.00
Regex_Period 2.915195837627214 ns/iter 2.921475884067222 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 3.1149669474094313 ns/iter 3.1161232232889655 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1161975855485515 ns/iter 3.113870304614636 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.742320952456129 ns/iter 3.737930986120157 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1147703013001924 ns/iter 3.737411810939986 ns/iter 0.83
Regex_Caret_X_Hyphen 13.072514525271346 ns/iter 13.073785834943743 ns/iter 1.00
Regex_Period_Md_Dollar 27.239936775536858 ns/iter 27.35352335888149 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 6.533862436901547 ns/iter 6.542595521461999 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 4.0469435553080055 ns/iter 3.1188379910342037 ns/iter 1.30
Regex_Nested_Backtrack 60.55284849374275 ns/iter 64.27270040331042 ns/iter 0.94
JSON_Array_Of_Objects_Unique 393.62431437146574 ns/iter 393.3261321114585 ns/iter 1.00
JSON_Parse_1 6043.828550398524 ns/iter 6019.837084990959 ns/iter 1.00
JSON_Parse_Real 10762.70423180948 ns/iter 10684.76153422803 ns/iter 1.01
JSON_Parse_Decimal 11463.810568376848 ns/iter 11750.668292926895 ns/iter 0.98
JSON_Parse_Schema_ISO_Language 3634134.1250002068 ns/iter 3627849.585492407 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 53.62445436644485 ns/iter 53.54327762935155 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 155.46342364232993 ns/iter 156.65304193235218 ns/iter 0.99
JSON_Divisible_By_Decimal 601.7351263957316 ns/iter 596.8773303872817 ns/iter 1.01
JSON_String_Equal/10 6.23293406371225 ns/iter 6.234441568012001 ns/iter 1.00
JSON_String_Equal/100 6.867310697377712 ns/iter 6.856253760476701 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9376348265890584 ns/iter 0.93754609098282 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.630795729390988 ns/iter 14.630788056195867 ns/iter 1.00
JSON_String_Fast_Hash/10 2.180812648865622 ns/iter 2.179856679519201 ns/iter 1.00
JSON_String_Fast_Hash/100 2.180069594976086 ns/iter 2.180214591345204 ns/iter 1.00
JSON_String_Key_Hash/10 2.652362536512087 ns/iter 2.647917646792272 ns/iter 1.00
JSON_String_Key_Hash/100 9.030270866033952 ns/iter 9.026718151209796 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.73951737015607 ns/iter 3.74233978332493 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.7463479820223635 ns/iter 3.7437334607026798 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.742178815878742 ns/iter 3.7419323449989057 ns/iter 1.00
Pointer_Object_Traverse 24.994913055177253 ns/iter 25.004863044861843 ns/iter 1.00
Pointer_Object_Try_Traverse 28.014270616299363 ns/iter 28.01146839870299 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 192.1159708250839 ns/iter 185.3363841905215 ns/iter 1.04
Pointer_Walker_Schema_ISO_Language 3167227.47297277 ns/iter 3004734.978448247 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/0 1402256.9414140834 ns/iter 1452444.9511677949 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/1 1789593.7048347695 ns/iter 1789288.6889458962 ns/iter 1.00
Pointer_Position_Tracker_Get_Deeply_Nested 580.0332131048466 ns/iter 624.7237483637653 ns/iter 0.93
Schema_Frame_WoT_References 5199578.585185278 ns/iter 5191049.962962569 ns/iter 1.00
Schema_Frame_OMC_References 23268965.16666845 ns/iter 21380766.30303038 ns/iter 1.09
Schema_Frame_OMC_Locations 21268998.06060492 ns/iter 19475553.777776137 ns/iter 1.09
Schema_Frame_ISO_Language_Locations 104796802.16667475 ns/iter 96390371.33333279 ns/iter 1.09
Schema_Frame_KrakenD_References 44405679.187498495 ns/iter 37917610.352939636 ns/iter 1.17
Schema_Frame_KrakenD_Reachable 631907771.9999769 ns/iter 575903468.0000923 ns/iter 1.10
Schema_Iterator_ISO_Language 2313929.0953950146 ns/iter 2275138.720394777 ns/iter 1.02
Schema_Frame_ISO_Language_Locations_To_JSON 114537726.80001748 ns/iter 93144221.71428303 ns/iter 1.23
Schema_Tracker_ISO_Language 5033250.800000815 ns/iter 4857169.869862838 ns/iter 1.04
Schema_Tracker_ISO_Language_To_JSON 19083206.02702539 ns/iter 19215907.194447055 ns/iter 0.99
Schema_Format_ISO_Language_To_JSON 112324976.83333047 ns/iter 104721500.14288673 ns/iter 1.07
Schema_Bundle_Meta_2020_12 1671409.7105255842 ns/iter 1672816.3390231514 ns/iter 1.00
Schema_Frame_Many_Resources_References 392414518.0000096 ns/iter 370014723.4999918 ns/iter 1.06
Alterschema_Check_Readibility_ISO_Language_Set_3 218920815.3333387 ns/iter 214655373.99997935 ns/iter 1.02
Alterschema_Check_Readibility_OMC 36896511.47368223 ns/iter 33481885.095235545 ns/iter 1.10
Alterschema_Apply_Readibility_KrakenD 697531552.9998624 ns/iter 598656252.0000689 ns/iter 1.17
Alterschema_Check_Invalid_External_Refs 128098996.66666524 ns/iter 123007945.79998636 ns/iter 1.04
EditorSchema_ForEditor_EmbeddedResources 14454503.632649977 ns/iter 13822412.500003338 ns/iter 1.05
URITemplateRouter_Create 16997.13514673322 ns/iter 15958.608224382499 ns/iter 1.07
URITemplateRouter_Match 167.66632371157144 ns/iter 172.17309483245205 ns/iter 0.97
URITemplateRouterView_Restore 5001.847438936432 ns/iter 4965.693219430342 ns/iter 1.01
URITemplateRouterView_Match 153.9106709186794 ns/iter 146.32811567730798 ns/iter 1.05
URITemplateRouterView_Arguments 476.7070903910413 ns/iter 474.1837782389058 ns/iter 1.01
HTML_Build_Table_100000 64523795.18181963 ns/iter 63329904.63637212 ns/iter 1.02
HTML_Render_Table_100000 5356662.938052712 ns/iter 5349261.858208959 ns/iter 1.00

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 (windows/msvc)

Details
Benchmark suite Current: a7b92ad Previous: 57e8c91 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 3.9365677302442625 ns/iter 4.5098437500001864 ns/iter 0.87
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.649330367520054 ns/iter 5.065001999998913 ns/iter 0.92
Regex_Period_Asterisk 3.9121177455354275 ns/iter 4.411922341780859 ns/iter 0.89
Regex_Group_Period_Asterisk_Group 4.610843313864117 ns/iter 5.062072000000626 ns/iter 0.91
Regex_Period_Plus 3.773493207546608 ns/iter 4.088221873175847 ns/iter 0.92
Regex_Period 3.7602968750010444 ns/iter 4.100222641249968 ns/iter 0.92
Regex_Caret_Period_Plus_Dollar 4.2633228998829615 ns/iter 4.750442421319062 ns/iter 0.90
Regex_Caret_Group_Period_Plus_Group_Dollar 4.2841475000003015 ns/iter 4.736398671286325 ns/iter 0.90
Regex_Caret_Period_Asterisk_Dollar 4.984330000002046 ns/iter 5.058524999999463 ns/iter 0.99
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.624406260323587 ns/iter 5.058555999999044 ns/iter 0.91
Regex_Caret_X_Hyphen 7.36324218749981 ns/iter 8.101438616071123 ns/iter 0.91
Regex_Period_Md_Dollar 34.593206790516476 ns/iter 35.447045298346595 ns/iter 0.98
Regex_Caret_Slash_Period_Asterisk 7.1409580357137 ns/iter 7.895902901786655 ns/iter 0.90
Regex_Caret_Period_Range_Dollar 4.907912733484641 ns/iter 5.034641964284349 ns/iter 0.97
Regex_Nested_Backtrack 88.21458088328649 ns/iter 99.72385937498274 ns/iter 0.88
JSON_Array_Of_Objects_Unique 538.2735714286063 ns/iter 497.24109999988286 ns/iter 1.08
JSON_Parse_1 7711.886160716323 ns/iter 8115.591517857521 ns/iter 0.95
JSON_Parse_Real 14019.942544899985 ns/iter 16360.912451283712 ns/iter 0.86
JSON_Parse_Decimal 14959.339467236581 ns/iter 16324.0798487463 ns/iter 0.92
JSON_Parse_Schema_ISO_Language 6448078.571427881 ns/iter 6137338.3928570645 ns/iter 1.05
JSON_Fast_Hash_Helm_Chart_Lock 71.62685267859204 ns/iter 68.29474999999466 ns/iter 1.05
JSON_Equality_Helm_Chart_Lock 294.1756948465371 ns/iter 278.06495187210254 ns/iter 1.06
JSON_Divisible_By_Decimal 1135.1775000001396 ns/iter 1193.4576562499187 ns/iter 0.95
JSON_String_Equal/10 13.008206191930126 ns/iter 13.372648214288217 ns/iter 0.97
JSON_String_Equal/100 14.304178571429864 ns/iter 13.740048214287981 ns/iter 1.04
JSON_String_Equal_Small_By_Perfect_Hash/10 1.8113194208558323 ns/iter 1.899292743415571 ns/iter 0.95
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 11.985712499998563 ns/iter 12.632958928573348 ns/iter 0.95
JSON_String_Fast_Hash/10 4.347113904309114 ns/iter 3.7903124932317587 ns/iter 1.15
JSON_String_Fast_Hash/100 4.448696874999314 ns/iter 3.7853560646680515 ns/iter 1.18
JSON_String_Key_Hash/10 3.9391023143945683 ns/iter 3.7919169575145153 ns/iter 1.04
JSON_String_Key_Hash/100 17.43398827611464 ns/iter 16.708280468473404 ns/iter 1.04
JSON_Object_Defines_Miss_Same_Length 3.9088677455355127 ns/iter 3.812824218749305 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Small 3.918106584821501 ns/iter 3.801686778926493 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Large 3.8874193749990127 ns/iter 3.85572879464264 ns/iter 1.01
Pointer_Object_Traverse 43.88189959219601 ns/iter 41.94468042905663 ns/iter 1.05
Pointer_Object_Try_Traverse 55.11675892855854 ns/iter 52.740839285710145 ns/iter 1.05
Pointer_Push_Back_Pointer_To_Weak_Pointer 172.0617905398634 ns/iter 177.86902976802259 ns/iter 0.97
Pointer_Walker_Schema_ISO_Language 13248330.000001261 ns/iter 12262867.857141862 ns/iter 1.08
Pointer_Maybe_Tracked_Deeply_Nested/0 2275080.7228920124 ns/iter 2183949.285714399 ns/iter 1.04
Pointer_Maybe_Tracked_Deeply_Nested/1 3196628.5714284074 ns/iter 3255502.4509796496 ns/iter 0.98
Pointer_Position_Tracker_Get_Deeply_Nested 632.0258928571576 ns/iter 600.9396205356613 ns/iter 1.05
Schema_Frame_WoT_References 10364267.187501498 ns/iter 10193018.749998117 ns/iter 1.02
Schema_Frame_OMC_References 45988579.999993816 ns/iter 44816166.666669235 ns/iter 1.03
Schema_Frame_OMC_Locations 43275506.250012085 ns/iter 40708200.00000215 ns/iter 1.06
Schema_Frame_ISO_Language_Locations 215432933.33335593 ns/iter 197604433.33332965 ns/iter 1.09
Schema_Frame_KrakenD_References 108702771.42859258 ns/iter 90335671.42854996 ns/iter 1.20
Schema_Frame_KrakenD_Reachable 564265200.0001363 ns/iter 527833499.9998151 ns/iter 1.07
Schema_Iterator_ISO_Language 5331853.571429893 ns/iter 5079731.00000072 ns/iter 1.05
Schema_Frame_ISO_Language_Locations_To_JSON 336757499.99997604 ns/iter 251281900.00001875 ns/iter 1.34
Schema_Tracker_ISO_Language 16794155.555554528 ns/iter 16531304.87804957 ns/iter 1.02
Schema_Tracker_ISO_Language_To_JSON 52671781.81818301 ns/iter 50563370.00000895 ns/iter 1.04
Schema_Format_ISO_Language_To_JSON 217357900.00002453 ns/iter 205916599.9999853 ns/iter 1.06
Schema_Bundle_Meta_2020_12 2876555.5084704426 ns/iter 3163184.97652901 ns/iter 0.91
Schema_Frame_Many_Resources_References 1468313299.9998634 ns/iter 1530318800.000032 ns/iter 0.96
Alterschema_Check_Readibility_ISO_Language_Set_3 337035300.00002503 ns/iter 332551449.99998266 ns/iter 1.01
Alterschema_Check_Readibility_OMC 62429822.22223266 ns/iter 62592963.63635837 ns/iter 1.00
Alterschema_Apply_Readibility_KrakenD 1027737299.9996715 ns/iter 1027009700.0000077 ns/iter 1.00
Alterschema_Check_Invalid_External_Refs 137763519.99999863 ns/iter 146000200.00000313 ns/iter 0.94
EditorSchema_ForEditor_EmbeddedResources 30309442.307681747 ns/iter 28064041.666681305 ns/iter 1.08
URITemplateRouter_Create 20593.146073937845 ns/iter 22999.005591456116 ns/iter 0.90
URITemplateRouter_Match 217.53488091357124 ns/iter 205.59742832154268 ns/iter 1.06
URITemplateRouterView_Restore 24297.31428571813 ns/iter 31598.47321428393 ns/iter 0.77
URITemplateRouterView_Match 161.34720982142272 ns/iter 170.81832393874865 ns/iter 0.94
URITemplateRouterView_Arguments 445.8260725465144 ns/iter 444.23838770389835 ns/iter 1.00
HTML_Build_Table_100000 93392857.14284934 ns/iter 88137642.85715868 ns/iter 1.06
HTML_Render_Table_100000 8340817.7777780825 ns/iter 7882246.666665398 ns/iter 1.06

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: a7b92ad Previous: 57e8c91 Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2155573754904383 ns/iter 1.7101742784054383 ns/iter 1.30
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.224185239535137 ns/iter 1.718208613892979 ns/iter 1.29
Regex_Period_Asterisk 2.3331357283822576 ns/iter 1.6924050861917048 ns/iter 1.38
Regex_Group_Period_Asterisk_Group 2.1283133158935756 ns/iter 1.7680202825242464 ns/iter 1.20
Regex_Period_Plus 2.77949809529543 ns/iter 2.048092012376816 ns/iter 1.36
Regex_Period 2.745470868716682 ns/iter 2.158432405396186 ns/iter 1.27
Regex_Caret_Period_Plus_Dollar 2.6786961312320385 ns/iter 2.1079139393171906 ns/iter 1.27
Regex_Caret_Group_Period_Plus_Group_Dollar 2.5731108325657 ns/iter 1.9409457669903523 ns/iter 1.33
Regex_Caret_Period_Asterisk_Dollar 2.1941698208327662 ns/iter 1.6674302208871257 ns/iter 1.32
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.146100085827054 ns/iter 1.7449764684693403 ns/iter 1.23
Regex_Caret_X_Hyphen 8.02598088022733 ns/iter 6.566113385129091 ns/iter 1.22
Regex_Period_Md_Dollar 28.676895244290446 ns/iter 25.544452470384748 ns/iter 1.12
Regex_Caret_Slash_Period_Asterisk 6.1500486899541205 ns/iter 5.497452920001252 ns/iter 1.12
Regex_Caret_Period_Range_Dollar 2.396793111101843 ns/iter 1.8022090554539754 ns/iter 1.33
Regex_Nested_Backtrack 40.097379615313024 ns/iter 27.246848606211394 ns/iter 1.47
JSON_Array_Of_Objects_Unique 496.69030582840065 ns/iter 395.77097336557006 ns/iter 1.25
JSON_Parse_1 6260.036333654024 ns/iter 4261.574239444162 ns/iter 1.47
JSON_Parse_Real 9075.297397577691 ns/iter 7277.0613749563945 ns/iter 1.25
JSON_Parse_Decimal 11122.113304418848 ns/iter 7801.008918946962 ns/iter 1.43
JSON_Parse_Schema_ISO_Language 5823448.096491216 ns/iter 3186333.1038260334 ns/iter 1.83
JSON_Fast_Hash_Helm_Chart_Lock 74.62339297011513 ns/iter 58.048214648786306 ns/iter 1.29
JSON_Equality_Helm_Chart_Lock 206.98014926481514 ns/iter 127.29989465815413 ns/iter 1.63
JSON_Divisible_By_Decimal 564.1764601364422 ns/iter 432.4619532639519 ns/iter 1.30
JSON_String_Equal/10 8.091126162337316 ns/iter 6.422026009271628 ns/iter 1.26
JSON_String_Equal/100 7.6293890650193905 ns/iter 6.040157894174085 ns/iter 1.26
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8899360969272075 ns/iter 0.7324223072271426 ns/iter 1.22
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 4.840641173507598 ns/iter 3.2148545023250277 ns/iter 1.51
JSON_String_Fast_Hash/10 2.990313375763742 ns/iter 2.2429718651452655 ns/iter 1.33
JSON_String_Fast_Hash/100 2.3806700004498906 ns/iter 2.0907555776687645 ns/iter 1.14
JSON_String_Key_Hash/10 1.6961614886465364 ns/iter 1.700374277093008 ns/iter 1.00
JSON_String_Key_Hash/100 2.7267080117588223 ns/iter 2.6272614341530245 ns/iter 1.04
JSON_Object_Defines_Miss_Same_Length 3.0122502338073214 ns/iter 2.27134913027759 ns/iter 1.33
JSON_Object_Defines_Miss_Too_Small 2.957545837468312 ns/iter 2.505598820757799 ns/iter 1.18
JSON_Object_Defines_Miss_Too_Large 3.102931604785301 ns/iter 2.4782666335017227 ns/iter 1.25
Pointer_Object_Traverse 19.616256651674682 ns/iter 14.888687207065578 ns/iter 1.32
Pointer_Object_Try_Traverse 26.837252618404488 ns/iter 19.782598910155524 ns/iter 1.36
Pointer_Push_Back_Pointer_To_Weak_Pointer 187.95819264660702 ns/iter 149.98986830418661 ns/iter 1.25
Pointer_Walker_Schema_ISO_Language 5739041.660713643 ns/iter 3689482.3212123537 ns/iter 1.56
Pointer_Maybe_Tracked_Deeply_Nested/0 1471950.3264922788 ns/iter 995364.8969851781 ns/iter 1.48
Pointer_Maybe_Tracked_Deeply_Nested/1 1833025.324675247 ns/iter 1393433.2662602433 ns/iter 1.32
Pointer_Position_Tracker_Get_Deeply_Nested 537.9863604043285 ns/iter 375.27823437727636 ns/iter 1.43
Schema_Frame_WoT_References 7610338.731482173 ns/iter 5862672.910000129 ns/iter 1.30
Schema_Frame_OMC_References 41558541.649999365 ns/iter 34444158.35000427 ns/iter 1.21
Schema_Frame_OMC_Locations 33066755.952382836 ns/iter 24064648.148152158 ns/iter 1.37
Schema_Frame_ISO_Language_Locations 127216116.59999326 ns/iter 79114744.0000129 ns/iter 1.61
Schema_Frame_KrakenD_References 76988279.20000894 ns/iter 50820705.35713358 ns/iter 1.51
Schema_Frame_KrakenD_Reachable 709158666.0001212 ns/iter 556223667.0000402 ns/iter 1.27
Schema_Iterator_ISO_Language 3096325.8547009327 ns/iter 1822097.6388060516 ns/iter 1.70
Schema_Frame_ISO_Language_Locations_To_JSON 137019187.50001597 ns/iter 84416494.14284517 ns/iter 1.62
Schema_Tracker_ISO_Language 14677698.369565485 ns/iter 8260642.700000176 ns/iter 1.78
Schema_Tracker_ISO_Language_To_JSON 21256044.354840335 ns/iter 13423855.428569295 ns/iter 1.58
Schema_Format_ISO_Language_To_JSON 112724437.16669993 ns/iter 77469666.66665381 ns/iter 1.46
Schema_Bundle_Meta_2020_12 1880648.6772301293 ns/iter 1199779.0519070895 ns/iter 1.57
Schema_Frame_Many_Resources_References 446767666.50002265 ns/iter 263897555.6666689 ns/iter 1.69
Alterschema_Check_Readibility_ISO_Language_Set_3 222335264.00001815 ns/iter 175885991.5999892 ns/iter 1.26
Alterschema_Check_Readibility_OMC 45343315.91666311 ns/iter 38427644.46665873 ns/iter 1.18
Alterschema_Apply_Readibility_KrakenD 677096957.9997654 ns/iter 516719959.0000564 ns/iter 1.31
Alterschema_Check_Invalid_External_Refs 95303922.71426535 ns/iter 70250483.29999208 ns/iter 1.36
EditorSchema_ForEditor_EmbeddedResources 13837291.680853555 ns/iter 10943811.878787942 ns/iter 1.26
URITemplateRouter_Create 20835.89414820439 ns/iter 15535.55098848391 ns/iter 1.34
URITemplateRouter_Match 201.4901558746135 ns/iter 157.63119406329275 ns/iter 1.28
URITemplateRouterView_Restore 18761.04533876273 ns/iter 12025.498114590813 ns/iter 1.56
URITemplateRouterView_Match 177.84814139629475 ns/iter 128.7200298552171 ns/iter 1.38
URITemplateRouterView_Arguments 519.8379159999149 ns/iter 396.4026639040322 ns/iter 1.31
HTML_Build_Table_100000 85492995.33332387 ns/iter 72064995.89999565 ns/iter 1.19
HTML_Render_Table_100000 6071049.878786735 ns/iter 3090178.6582728704 ns/iter 1.96

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

@jviotti jviotti merged commit a42061e into main Apr 1, 2026
13 checks passed
@jviotti jviotti deleted the frame-locations-pointers branch April 1, 2026 14:28
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: a7b92ad Previous: 57e8c91 Ratio
HTML_Build_Table_100000 63927715.09089553 ns/iter 63361133.27273035 ns/iter 1.01
HTML_Render_Table_100000 5689002.105691913 ns/iter 5363982.806452515 ns/iter 1.06
URITemplateRouter_Create 14803.885517678802 ns/iter 14732.405541404825 ns/iter 1.00
URITemplateRouter_Match 162.11697923358298 ns/iter 157.78185301963097 ns/iter 1.03
URITemplateRouterView_Restore 6218.552275697559 ns/iter 6286.852243525588 ns/iter 0.99
URITemplateRouterView_Match 127.09555349088616 ns/iter 126.04018210135679 ns/iter 1.01
URITemplateRouterView_Arguments 466.3415287913006 ns/iter 472.05875065144545 ns/iter 0.99
EditorSchema_ForEditor_EmbeddedResources 14497361.208318202 ns/iter 14147804.183675343 ns/iter 1.02
Alterschema_Check_Readibility_ISO_Language_Set_3 216423174.6667156 ns/iter 204714598.00000957 ns/iter 1.06
Alterschema_Check_Readibility_OMC 37850906.31578513 ns/iter 34009376.85714347 ns/iter 1.11
Alterschema_Apply_Readibility_KrakenD 652358626.0000229 ns/iter 563436421.9997679 ns/iter 1.16
Alterschema_Check_Invalid_External_Refs 130972432.39999442 ns/iter 124889783.8333202 ns/iter 1.05
Schema_Frame_WoT_References 5554804.674604369 ns/iter 5441698.604651416 ns/iter 1.02
Schema_Frame_OMC_References 24976822.249998678 ns/iter 23230664.064517587 ns/iter 1.08
Schema_Frame_OMC_Locations 23337679.000002436 ns/iter 20957615.666668173 ns/iter 1.11
Schema_Frame_ISO_Language_Locations 107151841.8333426 ns/iter 98737464.999983 ns/iter 1.09
Schema_Frame_KrakenD_References 46635948.3333387 ns/iter 39070750.22223378 ns/iter 1.19
Schema_Frame_KrakenD_Reachable 616050830.9999386 ns/iter 525213777.00009 ns/iter 1.17
Schema_Iterator_ISO_Language 2619082.625467902 ns/iter 2571591.7619046583 ns/iter 1.02
Schema_Frame_ISO_Language_Locations_To_JSON 223485448.66667905 ns/iter 223317141.3333821 ns/iter 1.00
Schema_Tracker_ISO_Language 5403449.828124352 ns/iter 5059366.093525745 ns/iter 1.07
Schema_Tracker_ISO_Language_To_JSON 22765448.32257939 ns/iter 22445166.774193034 ns/iter 1.01
Schema_Format_ISO_Language_To_JSON 114600667.99994214 ns/iter 102872479.1427911 ns/iter 1.11
Schema_Bundle_Meta_2020_12 1832546.8612511507 ns/iter 1823084.4000087231 ns/iter 1.01
Schema_Frame_Many_Resources_References 402505746.49996907 ns/iter 376421095.50006354 ns/iter 1.07
Pointer_Object_Traverse 26.62292681240855 ns/iter 26.00809720567348 ns/iter 1.02
Pointer_Object_Try_Traverse 25.305906319196342 ns/iter 24.42003249199963 ns/iter 1.04
Pointer_Push_Back_Pointer_To_Weak_Pointer 160.0826496549973 ns/iter 161.1034853778249 ns/iter 0.99
Pointer_Walker_Schema_ISO_Language 3611357.510204025 ns/iter 3348321.71291851 ns/iter 1.08
Pointer_Maybe_Tracked_Deeply_Nested/0 1575739.9794048013 ns/iter 1552903.0488884624 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1806812.5129533364 ns/iter 1769534.87088604 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 401.5019863133659 ns/iter 427.41776030765215 ns/iter 0.94
JSON_Array_Of_Objects_Unique 433.28411188465253 ns/iter 431.8701198982538 ns/iter 1.00
JSON_Parse_1 8122.0435898339865 ns/iter 8178.299140214444 ns/iter 0.99
JSON_Parse_Real 12422.93557626961 ns/iter 12317.204085985952 ns/iter 1.01
JSON_Parse_Decimal 17923.70413354174 ns/iter 18312.187241393513 ns/iter 0.98
JSON_Parse_Schema_ISO_Language 4840168.805556131 ns/iter 4762283.918367125 ns/iter 1.02
JSON_Fast_Hash_Helm_Chart_Lock 74.56694097255361 ns/iter 72.32741430113416 ns/iter 1.03
JSON_Equality_Helm_Chart_Lock 152.6635298275668 ns/iter 169.81108298633856 ns/iter 0.90
JSON_Divisible_By_Decimal 567.3988906208856 ns/iter 589.216246356003 ns/iter 0.96
JSON_String_Equal/10 6.3124570675454095 ns/iter 6.703844970411237 ns/iter 0.94
JSON_String_Equal/100 6.938741891544904 ns/iter 7.442928141013114 ns/iter 0.93
JSON_String_Equal_Small_By_Perfect_Hash/10 0.623813403204591 ns/iter 0.6242136520926703 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 28.074104035554832 ns/iter 28.05374726096632 ns/iter 1.00
JSON_String_Fast_Hash/10 0.9343736057490202 ns/iter 0.9369831843231278 ns/iter 1.00
JSON_String_Fast_Hash/100 0.9343409333153959 ns/iter 0.9353824550079282 ns/iter 1.00
JSON_String_Key_Hash/10 1.2512106942753676 ns/iter 1.5601666446167186 ns/iter 0.80
JSON_String_Key_Hash/100 12.44368951936167 ns/iter 12.450932706940296 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.426948160547637 ns/iter 3.427562522238556 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.1174767001563444 ns/iter 3.427869971495065 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 3.1134555394854764 ns/iter 3.4399435745264224 ns/iter 0.91
Regex_Lower_S_Or_Upper_S_Asterisk 1.557306206986281 ns/iter 1.246946753371341 ns/iter 1.25
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.2454635292835339 ns/iter 1.55913010884121 ns/iter 0.80
Regex_Period_Asterisk 1.245474764120072 ns/iter 1.5582959989265928 ns/iter 0.80
Regex_Group_Period_Asterisk_Group 1.2468647709673908 ns/iter 1.5588641090433961 ns/iter 0.80
Regex_Period_Plus 1.2465751139274361 ns/iter 1.5578770622526732 ns/iter 0.80
Regex_Period 1.2466971978209291 ns/iter 1.5579924396487927 ns/iter 0.80
Regex_Caret_Period_Plus_Dollar 1.2460385394637195 ns/iter 1.5584668066257796 ns/iter 0.80
Regex_Caret_Group_Period_Plus_Group_Dollar 1.2451667686827026 ns/iter 1.5586590593014795 ns/iter 0.80
Regex_Caret_Period_Asterisk_Dollar 1.2464302818959725 ns/iter 1.557506086263222 ns/iter 0.80
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.5601177767107883 ns/iter 1.246861846282914 ns/iter 1.25
Regex_Caret_X_Hyphen 12.134654521292449 ns/iter 12.14490166074232 ns/iter 1.00
Regex_Period_Md_Dollar 30.04927325721846 ns/iter 31.76600867189419 ns/iter 0.95
Regex_Caret_Slash_Period_Asterisk 4.67282808975879 ns/iter 4.6768397985613674 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.2517359354875954 ns/iter 1.5599993902381513 ns/iter 0.80
Regex_Nested_Backtrack 50.083727047067036 ns/iter 53.952192649612115 ns/iter 0.93

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.

1 participant