Skip to content

Register the OpenAPI v3.0 Schema Object keywords with the walker - #2932

Merged
jviotti merged 3 commits into
mainfrom
openapi-3-0-walker
Oct 4, 2026
Merged

jviotti merged 3 commits into
mainfrom
openapi-3-0-walker

Conversation

@jviotti

@jviotti jviotti commented Oct 4, 2026 •

Copy link
Copy Markdown
Member

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

Review in cubic

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Benchmark linux/llvm

Measured against main at 0f9a2a5.

3 slower, 2 faster, 105 within 5%.

Benchmark main This branch Change
JSON_Parse_String_Escape_Heavy 11.06 us 12.46 us +12.7%
JSON_Object_At_Last_Key_128 66.72 ns 71.55 ns +7.2%
JSON_Object_At_Last_Key_32 11.28 ns 11.96 ns +6.0%
JSON_Object_Defines_Miss_Too_Small 3.64 ns 3.40 ns -6.6%
Pointer_Position_Tracker_Get_Deeply_Nested 565.02 ns 500.17 ns -11.5%
All 110 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 2.23 ns 2.22 ns -0.5%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.16 ns 2.14 ns -0.6%
Regex_Period_Asterisk 1.93 ns 1.89 ns -1.9%
Regex_Group_Period_Asterisk_Group 1.85 ns 1.86 ns +0.6%
Regex_Period_Plus 2.53 ns 2.52 ns -0.2%
Regex_Period 2.48 ns 2.51 ns +1.3%
Regex_Caret_Period_Plus_Dollar 2.34 ns 2.34 ns -0.1%
Regex_Caret_Group_Period_Plus_Group_Dollar 2.18 ns 2.21 ns +0.9%
Regex_Caret_Period_Asterisk_Dollar 2.24 ns 2.23 ns -0.5%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.12 ns 2.15 ns +1.2%
Regex_Caret_X_Hyphen 4.30 ns 4.17 ns -2.9%
Regex_Period_Md_Dollar 18.95 ns 18.93 ns -0.1%
Regex_Caret_Slash_Period_Asterisk 4.47 ns 4.50 ns +0.6%
Regex_Caret_Period_Range_Dollar 2.93 ns 2.93 ns -0.0%
Regex_Nested_Backtrack 29.80 ns 29.46 ns -1.1%
JSON_Array_Of_Objects_Unique 396.14 ns 395.93 ns -0.1%
JSON_Array_Of_Integers_Unique_256 3.87 us 3.79 us -2.1%
JSON_Array_Of_Strings_Unique_Colliding_256 167.57 us 168.41 us +0.5%
JSON_Parse_1 3.58 us 3.57 us -0.3%
JSON_Parse_Real 3.68 us 3.69 us +0.3%
JSON_Parse_Decimal 6.26 us 6.38 us +2.0%
JSON_Parse_Schema_ISO_Language 2.65 ms 2.62 ms -1.1%
JSON_Parse_Integer 2.70 us 2.69 us -0.1%
JSON_Parse_String_NonSSO_Plain 2.24 us 2.24 us -0.0%
JSON_Parse_String_SSO_Plain 2.05 us 2.09 us +1.7%
JSON_Parse_String_Escape_Heavy 11.06 us 12.46 us +12.7%
JSON_Parse_Object_Short_Keys 6.16 us 6.19 us +0.5%
JSON_Parse_Object_Scalar_Properties 3.15 us 3.14 us -0.5%
JSON_Parse_Object_Array_Properties 4.27 us 4.33 us +1.4%
JSON_Parse_Object_Object_Properties 4.23 us 4.15 us -1.9%
JSON_Parse_Nested_Containers 27.49 us 27.38 us -0.4%
JSON_Fast_Hash_Helm_Chart_Lock 58.88 ns 58.49 ns -0.7%
JSON_Equality_Helm_Chart_Lock 120.81 ns 120.50 ns -0.3%
JSON_String_Equal_10 4.51 ns 4.53 ns +0.5%
JSON_String_Equal_100 5.63 ns 5.60 ns -0.4%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.58 ns 0.58 ns +0.1%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 8.72 ns 8.75 ns +0.4%
JSON_String_Fast_Hash_10 2.24 ns 2.25 ns +0.6%
JSON_String_Fast_Hash_100 2.25 ns 2.24 ns -0.3%
JSON_String_Key_Hash_10 1.68 ns 1.68 ns +0.2%
JSON_String_Key_Hash_100 6.44 ns 6.50 ns +0.9%
JSON_Object_Defines_Miss_Same_Length 4.07 ns 4.08 ns +0.2%
JSON_Object_Defines_Miss_Too_Small 3.64 ns 3.40 ns -6.6%
JSON_Object_Defines_Miss_Too_Large 3.32 ns 3.30 ns -0.5%
JSON_From_String_Copy 7.71 ns 7.66 ns -0.7%
JSON_From_String_Temporary 6.27 ns 6.28 ns +0.1%
JSON_Number_To_Double 12.05 ns 11.97 ns -0.7%
JSON_Object_At_Last_Key_8 3.96 ns 3.85 ns -3.0%
JSON_Object_At_Last_Key_32 11.28 ns 11.96 ns +6.0%
JSON_Object_At_Last_Key_128 66.72 ns 71.55 ns +7.2%
JSON_Object_At_Last_Key_512 181.74 ns 181.73 ns -0.0%
JSON_Divisible_By_Decimal 402.59 ns 398.81 ns -0.9%
JSON_PropertySet_Contains 46.13 ns 47.17 ns +2.3%
JSON_PropertySet_Filter_Object_Properties 34.51 ns 34.64 ns +0.4%
JSON_PropertySet_Insert 458.07 ns 454.50 ns -0.8%
JSON_Stringify_Schema_Web_Of_Things 48.46 us 48.58 us +0.3%
JSON_Prettify_Schema_Web_Of_Things 117.74 us 118.75 us +0.9%
Pointer_Object_Traverse 19.89 ns 19.84 ns -0.3%
Pointer_Object_Try_Traverse 26.37 ns 26.67 ns +1.2%
Pointer_Push_Back_Pointer_To_Weak_Pointer 112.11 ns 108.83 ns -2.9%
Pointer_Walker_Schema_ISO_Language 1.79 ms 1.82 ms +1.4%
Pointer_Untracked_Deeply_Nested 943.21 us 948.50 us +0.6%
Pointer_Tracked_Deeply_Nested 1.39 ms 1.39 ms +0.0%
Pointer_Position_Tracker_Get_Deeply_Nested 565.02 ns 500.17 ns -11.5%
Schema_Tracker_ISO_Language 3.57 ms 3.59 ms +0.6%
Schema_Tracker_ISO_Language_To_JSON 12.61 ms 12.69 ms +0.6%
Schema_Frame_WoT_References 1.61 ms 1.64 ms +1.6%
Schema_Frame_OMC_References 7.42 ms 7.47 ms +0.7%
Schema_Frame_OMC_Pointers 13.36 ms 13.30 ms -0.4%
Schema_Frame_OMC_Locations 6.44 ms 6.49 ms +0.8%
Schema_Frame_ISO_Language_Locations 31.10 ms 31.37 ms +0.9%
Schema_Frame_ISO_Language_Root 222.47 ns 225.46 ns +1.3%
Schema_Frame_KrakenD_References 11.92 ms 12.18 ms +2.1%
Schema_Frame_KrakenD_Reachable 105.84 ms 105.30 ms -0.5%
Schema_Frame_ISO_Language_Locations_To_JSON 22.96 ms 22.29 ms -2.9%
Schema_Frame_Many_Resources_References 112.85 ms 114.46 ms +1.4%
Schema_Frame_Deeply_Nested_References 8.39 ms 8.60 ms +2.4%
Schema_Format_ISO_Language 34.42 ms 34.52 ms +0.3%
Schema_Bundle_Meta_2020_12 409.81 us 412.18 us +0.6%
Schema_Bundle_Many_Remotes_With_Fragments 4.81 ms 4.81 ms -0.0%
OpenAPI_Format_Synthetic_3_1 36.79 ms 36.07 ms -2.0%
JSONPath_Descendant_Filter_Nested 1.16 us 1.16 us -0.4%
URITemplateRouter_Create 15.43 us 15.41 us -0.1%
URITemplateRouter_Match 147.81 ns 149.12 ns +0.9%
URITemplateRouterView_Restore 2.89 us 2.91 us +0.8%
URITemplateRouterView_Match 96.08 ns 96.40 ns +0.3%
URITemplateRouterView_Arguments 376.39 ns 379.96 ns +0.9%
URITemplateRouter_Match_BasePath 169.13 ns 167.56 ns -0.9%
URITemplateRouterView_Match_BasePath 109.40 ns 110.67 ns +1.2%
JSONL_Parse_Large 7.14 ms 7.15 ms +0.1%
JSONL_Parse_Large_GZIP 7.39 ms 7.33 ms -0.8%
JSONLD_Catalog_Annotation_List_Populate 600.73 us 605.79 us +0.8%
JSONLD_Catalog_Materialize 2.89 ms 2.91 ms +0.5%
HTML_Build_Table_100000 28.76 ms 29.05 ms +1.0%
HTML_Render_Table_100000 2.72 ms 2.73 ms +0.3%
Markdown_To_HTML_Realistic_Document 3.38 ms 3.32 ms -1.6%
Markdown_To_HTML_Pathological 10.87 ms 10.88 ms +0.1%
Markdown_To_HTML_Short_Descriptions 392.13 ns 396.71 ns +1.2%
GZIP_Compress_ISO_Language_Set_3_Locations 27.58 ms 27.00 ms -2.1%
GZIP_Decompress_ISO_Language_Set_3_Locations 3.53 ms 3.56 ms +1.0%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 5.00 ms 4.91 ms -1.8%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 6.92 ms 6.86 ms -0.9%
GZIP_Compress_ISO_Language_Set_3_Schema 2.05 ms 1.96 ms -4.6%
GZIP_Decompress_ISO_Language_Set_3_Schema 362.77 us 365.32 us +0.7%
JOSE_VerifySignature_RS256 39.59 us 39.79 us +0.5%
JOSE_VerifySignature_ES512 1.41 ms 1.38 ms -2.7%
Crypto_CRC32_Large_JSONL 45.38 us 45.49 us +0.2%
Crypto_AES_GCM_Encrypt_128_1KB 25.45 us 25.69 us +0.9%
Crypto_AES_GCM_Decrypt_128_1KB 25.51 us 25.27 us -1.0%
Crypto_AES_GCM_Encrypt_256_1KB 31.09 us 31.40 us +1.0%

@augmentcode

augmentcode Bot commented Oct 4, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Registers OpenAPI 3.0 Schema Object keywords with the schema walker.
Enables dialect-aware traversal without treating OpenAPI 3.0 as full JSON Schema Draft 4.
Adds 37 vocabulary-specific variants and expands the keyword index from 102 to 104 entries.
Registers numeric, string, array, object, and general assertions.
Recognizes $ref, composition keywords, and property/item applicators.
Models items as a single subschema rather than a tuple of schemas.
Limits additionalProperties dependencies to static properties names.
Records ordering dependencies between type, properties, and required.
Registers nullable and OpenAPI metadata/special-purpose fields.
Allows format to apply beyond strings, including numeric formats.
Recognizes x-definitions as a reserved container for embedded schemas.
Adds tests for recognized keywords, vocabulary isolation, and unsupported keywords.

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

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.

{.name = "minimumCanEqual", .offset = 502, .count = 6, .legacy_ref = false},
{.name = "multipleOf", .offset = 508, .count = 9, .legacy_ref = false},
{.name = "not", .offset = 517, .count = 9, .legacy_ref = false},
{.name = "nullable", .offset = 526, .count = 1, .legacy_ref = false},

@augmentcode augmentcode Bot Oct 4, 2026 •

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Could you check the legacy-dialect behavior at src/core/jsonschema/known_walker.cc:5275, where registering nullable changes Draft 3–7 lookups from UNKNOWN_WITH_REF_RESULT to UNKNOWN_RESULT? The keyword remains unknown in those dialects, but its $ref dependency disappears, so dependency-driven consumers lose the existing ordering that places this sibling after the overriding reference.

Other locations where this applies: src/core/jsonschema/known_walker.cc:5321 (x-definitions)

Severity: medium

Other Locations
  • src/core/jsonschema/known_walker.cc:5321

Fix This in Augment

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

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Benchmark windows/msvc

Measured against main at 0f9a2a5.

7 slower, 6 faster, 97 within 5%.

Benchmark main This branch Change
Schema_Frame_OMC_References 22.66 ms 25.46 ms +12.4%
Schema_Frame_ISO_Language_Locations 90.71 ms 98.85 ms +9.0%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 15.03 ms 16.17 ms +7.6%
JSONLD_Catalog_Materialize 7.86 ms 8.39 ms +6.7%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.71 ns 5.01 ns +6.2%
JSON_From_String_Temporary 58.02 ns 61.39 ns +5.8%
Schema_Frame_OMC_Locations 19.17 ms 20.15 ms +5.1%
Pointer_Untracked_Deeply_Nested 2.65 ms 2.50 ms -5.8%
JSON_Object_At_Last_Key_128 97.34 ns 89.18 ns -8.4%
Schema_Frame_KrakenD_References 47.22 ms 41.67 ms -11.7%
Schema_Frame_ISO_Language_Root 2.52 us 2.18 us -13.5%
JSON_Object_At_Last_Key_32 31.34 ns 23.39 ns -25.4%
Schema_Frame_KrakenD_Reachable 452.33 ms 312.69 ms -30.9%
All 110 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 4.77 ns 4.70 ns -1.5%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 4.72 ns 4.76 ns +0.8%
Regex_Period_Asterisk 4.72 ns 4.86 ns +2.9%
Regex_Group_Period_Asterisk_Group 4.73 ns 4.77 ns +0.8%
Regex_Period_Plus 4.70 ns 4.63 ns -1.4%
Regex_Period 4.49 ns 4.47 ns -0.3%
Regex_Caret_Period_Plus_Dollar 4.63 ns 4.62 ns -0.3%
Regex_Caret_Group_Period_Plus_Group_Dollar 4.46 ns 4.46 ns +0.1%
Regex_Caret_Period_Asterisk_Dollar 4.70 ns 4.70 ns -0.1%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 4.71 ns 5.01 ns +6.2%
Regex_Caret_X_Hyphen 7.92 ns 7.87 ns -0.7%
Regex_Period_Md_Dollar 46.99 ns 47.12 ns +0.3%
Regex_Caret_Slash_Period_Asterisk 7.58 ns 7.72 ns +1.9%
Regex_Caret_Period_Range_Dollar 5.34 ns 5.34 ns -0.0%
Regex_Nested_Backtrack 58.40 ns 58.31 ns -0.2%
JSON_Array_Of_Objects_Unique 538.20 ns 542.91 ns +0.9%
JSON_Array_Of_Integers_Unique_256 4.45 us 4.46 us +0.2%
JSON_Array_Of_Strings_Unique_Colliding_256 299.92 us 299.88 us -0.0%
JSON_Parse_1 8.48 us 8.90 us +4.9%
JSON_Parse_Real 8.97 us 8.93 us -0.4%
JSON_Parse_Decimal 11.98 us 11.88 us -0.8%
JSON_Parse_Schema_ISO_Language 7.66 ms 7.64 ms -0.2%
JSON_Parse_Integer 6.49 us 6.46 us -0.5%
JSON_Parse_String_NonSSO_Plain 7.83 us 7.95 us +1.5%
JSON_Parse_String_SSO_Plain 3.64 us 3.71 us +2.2%
JSON_Parse_String_Escape_Heavy 21.84 us 21.84 us +0.0%
JSON_Parse_Object_Short_Keys 13.62 us 13.34 us -2.1%
JSON_Parse_Object_Scalar_Properties 6.95 us 6.85 us -1.4%
JSON_Parse_Object_Array_Properties 11.32 us 11.50 us +1.5%
JSON_Parse_Object_Object_Properties 11.57 us 11.71 us +1.3%
JSON_Parse_Nested_Containers 81.16 us 81.29 us +0.2%
JSON_Fast_Hash_Helm_Chart_Lock 104.15 ns 102.58 ns -1.5%
JSON_Equality_Helm_Chart_Lock 216.59 ns 218.37 ns +0.8%
JSON_String_Equal_10 10.35 ns 10.40 ns +0.4%
JSON_String_Equal_100 11.64 ns 11.68 ns +0.3%
JSON_String_Equal_Small_By_Perfect_Hash_10 2.20 ns 2.19 ns -0.4%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 14.16 ns 14.21 ns +0.4%
JSON_String_Fast_Hash_10 6.34 ns 6.31 ns -0.5%
JSON_String_Fast_Hash_100 6.33 ns 6.30 ns -0.4%
JSON_String_Key_Hash_10 5.03 ns 5.06 ns +0.6%
JSON_String_Key_Hash_100 11.90 ns 11.89 ns -0.0%
JSON_Object_Defines_Miss_Same_Length 3.49 ns 3.48 ns -0.5%
JSON_Object_Defines_Miss_Too_Small 4.10 ns 4.08 ns -0.7%
JSON_Object_Defines_Miss_Too_Large 4.23 ns 4.09 ns -3.3%
JSON_From_String_Copy 63.76 ns 63.82 ns +0.1%
JSON_From_String_Temporary 58.02 ns 61.39 ns +5.8%
JSON_Number_To_Double 40.96 ns 40.86 ns -0.3%
JSON_Object_At_Last_Key_8 7.60 ns 7.23 ns -4.9%
JSON_Object_At_Last_Key_32 31.34 ns 23.39 ns -25.4%
JSON_Object_At_Last_Key_128 97.34 ns 89.18 ns -8.4%
JSON_Object_At_Last_Key_512 436.08 ns 417.93 ns -4.2%
JSON_Divisible_By_Decimal 611.71 ns 585.92 ns -4.2%
JSON_PropertySet_Contains 79.31 ns 79.53 ns +0.3%
JSON_PropertySet_Filter_Object_Properties 50.88 ns 50.14 ns -1.5%
JSON_PropertySet_Insert 1.32 us 1.30 us -1.0%
JSON_Stringify_Schema_Web_Of_Things 230.70 us 229.31 us -0.6%
JSON_Prettify_Schema_Web_Of_Things 723.21 us 724.68 us +0.2%
Pointer_Object_Traverse 66.99 ns 66.62 ns -0.6%
Pointer_Object_Try_Traverse 74.38 ns 73.92 ns -0.6%
Pointer_Push_Back_Pointer_To_Weak_Pointer 182.17 ns 186.87 ns +2.6%
Pointer_Walker_Schema_ISO_Language 13.30 ms 12.99 ms -2.3%
Pointer_Untracked_Deeply_Nested 2.65 ms 2.50 ms -5.8%
Pointer_Tracked_Deeply_Nested 3.76 ms 3.81 ms +1.3%
Pointer_Position_Tracker_Get_Deeply_Nested 592.83 ns 569.79 ns -3.9%
Schema_Tracker_ISO_Language 11.08 ms 11.20 ms +1.1%
Schema_Tracker_ISO_Language_To_JSON 65.95 ms 64.93 ms -1.6%
Schema_Frame_WoT_References 5.26 ms 5.27 ms +0.2%
Schema_Frame_OMC_References 22.66 ms 25.46 ms +12.4%
Schema_Frame_OMC_Pointers 43.13 ms 44.73 ms +3.7%
Schema_Frame_OMC_Locations 19.17 ms 20.15 ms +5.1%
Schema_Frame_ISO_Language_Locations 90.71 ms 98.85 ms +9.0%
Schema_Frame_ISO_Language_Root 2.52 us 2.18 us -13.5%
Schema_Frame_KrakenD_References 47.22 ms 41.67 ms -11.7%
Schema_Frame_KrakenD_Reachable 452.33 ms 312.69 ms -30.9%
Schema_Frame_ISO_Language_Locations_To_JSON 175.93 ms 170.56 ms -3.1%
Schema_Frame_Many_Resources_References 739.00 ms 731.61 ms -1.0%
Schema_Frame_Deeply_Nested_References 25.63 ms 25.05 ms -2.3%
Schema_Format_ISO_Language 90.73 ms 91.36 ms +0.7%
Schema_Bundle_Meta_2020_12 1.45 ms 1.41 ms -2.9%
Schema_Bundle_Many_Remotes_With_Fragments 29.67 ms 29.89 ms +0.7%
OpenAPI_Format_Synthetic_3_1 117.45 ms 120.70 ms +2.8%
JSONPath_Descendant_Filter_Nested 2.48 us 2.42 us -2.3%
URITemplateRouter_Create 39.42 us 39.14 us -0.7%
URITemplateRouter_Match 232.93 ns 231.98 ns -0.4%
URITemplateRouterView_Restore 33.41 us 33.56 us +0.4%
URITemplateRouterView_Match 214.26 ns 213.46 ns -0.4%
URITemplateRouterView_Arguments 547.88 ns 547.40 ns -0.1%
URITemplateRouter_Match_BasePath 265.70 ns 266.71 ns +0.4%
URITemplateRouterView_Match_BasePath 243.64 ns 242.79 ns -0.4%
JSONL_Parse_Large 31.95 ms 31.83 ms -0.4%
JSONL_Parse_Large_GZIP 31.37 ms 30.74 ms -2.0%
JSONLD_Catalog_Annotation_List_Populate 3.02 ms 3.03 ms +0.4%
JSONLD_Catalog_Materialize 7.86 ms 8.39 ms +6.7%
HTML_Build_Table_100000 67.89 ms 67.78 ms -0.2%
HTML_Render_Table_100000 7.99 ms 8.01 ms +0.3%
Markdown_To_HTML_Realistic_Document 5.72 ms 5.61 ms -1.9%
Markdown_To_HTML_Pathological 18.33 ms 18.30 ms -0.2%
Markdown_To_HTML_Short_Descriptions 706.61 ns 700.12 ns -0.9%
GZIP_Compress_ISO_Language_Set_3_Locations 37.36 ms 37.48 ms +0.3%
GZIP_Decompress_ISO_Language_Set_3_Locations 9.70 ms 9.87 ms +1.8%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 12.17 ms 12.26 ms +0.7%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 15.03 ms 16.17 ms +7.6%
GZIP_Compress_ISO_Language_Set_3_Schema 2.30 ms 2.31 ms +0.4%
GZIP_Decompress_ISO_Language_Set_3_Schema 628.46 us 635.80 us +1.2%
JOSE_VerifySignature_RS256 21.30 us 21.28 us -0.1%
JOSE_VerifySignature_ES512 1.37 ms 1.36 ms -0.7%
Crypto_CRC32_Large_JSONL 102.98 us 102.93 us -0.0%
Crypto_AES_GCM_Encrypt_128_1KB 2.35 us 2.37 us +0.9%
Crypto_AES_GCM_Decrypt_128_1KB 2.37 us 2.37 us +0.1%
Crypto_AES_GCM_Encrypt_256_1KB 2.43 us 2.43 us -0.4%

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

3 issues found across 2 files

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/core/jsonschema/known_walker.cc">

<violation number="1" location="src/core/jsonschema/known_walker.cc:4228">
P2: The OpenAPI `properties` entry incorrectly declares `required` as an ordering dependency. This makes consumers reorder `properties` behind `required` for no semantic reason; use an empty ordering span like the other dialect entries.</violation>

<violation number="2" location="src/core/jsonschema/known_walker.cc:5275">
P2: Preserve the legacy `$ref` dependency for `nullable` and `x-definitions` when these keywords are unknown in Draft 3–7; otherwise dependency-driven consumers can lose the sibling ordering after an overriding reference.</violation>

<violation number="3" location="src/core/jsonschema/known_walker.cc:5321">
P3: `x-definitions` is not a reserved keyword: OpenAPI 3.0 permits any `x-` prefixed extension property in a Schema Object. Registering it as `SchemaKeywordType::LocationMembers` means any document that happens to contain a user-defined `x-definitions` extension will now have its value interpreted as a schema-definitions location (traversed as subschemas) by walker-based tooling, silently changing bundling/validation behavior for schemas that never opted into this convention. Consider documenting this reservation in the OpenAPI 3.0 dialect definition, or namespacing the location keyword to make accidental collisions less likely.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

.result = {SchemaKeywordType::ApplicatorMembersTraversePropertyStatic,
Known::OPENAPI_3_0_BASE,
{},
KEYWORDS_REQUIRED,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: The OpenAPI properties entry incorrectly declares required as an ordering dependency. This makes consumers reorder properties behind required for no semantic reason; use an empty ordering span like the other dialect entries.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 4228:

<comment>The OpenAPI `properties` entry incorrectly declares `required` as an ordering dependency. This makes consumers reorder `properties` behind `required` for no semantic reason; use an empty ordering span like the other dialect entries.</comment>

<file context>
@@ -4017,6 +4220,13 @@ constexpr std::array<Variant, 691> VARIANTS{{
+     .result = {SchemaKeywordType::ApplicatorMembersTraversePropertyStatic,
+                Known::OPENAPI_3_0_BASE,
+                {},
+                KEYWORDS_REQUIRED,
+                INSTANCES_OBJECT}},
     {.vocabulary = Known::JSON_SCHEMA_2020_12_APPLICATOR,
</file context>
Suggested change
KEYWORDS_REQUIRED,
{},

{.name = "minimumCanEqual", .offset = 502, .count = 6, .legacy_ref = false},
{.name = "multipleOf", .offset = 508, .count = 9, .legacy_ref = false},
{.name = "not", .offset = 517, .count = 9, .legacy_ref = false},
{.name = "nullable", .offset = 526, .count = 1, .legacy_ref = false},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P2: Preserve the legacy $ref dependency for nullable and x-definitions when these keywords are unknown in Draft 3–7; otherwise dependency-driven consumers can lose the sibling ordering after an overriding reference.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 5275:

<comment>Preserve the legacy `$ref` dependency for `nullable` and `x-definitions` when these keywords are unknown in Draft 3–7; otherwise dependency-driven consumers can lose the sibling ordering after an overriding reference.</comment>

<file context>
@@ -4919,133 +5191,135 @@ constexpr std::array<Keyword, 102> KEYWORDS{{
+    {.name = "minimumCanEqual", .offset = 502, .count = 6, .legacy_ref = false},
+    {.name = "multipleOf", .offset = 508, .count = 9, .legacy_ref = false},
+    {.name = "not", .offset = 517, .count = 9, .legacy_ref = false},
+    {.name = "nullable", .offset = 526, .count = 1, .legacy_ref = false},
+    {.name = "oneOf", .offset = 527, .count = 9, .legacy_ref = false},
+    {.name = "optional", .offset = 536, .count = 6, .legacy_ref = false},
</file context>

{.name = "xml", .offset = 689, .count = 2, .legacy_ref = false},
{.name = "uniqueItems", .offset = 706, .count = 13, .legacy_ref = false},
{.name = "writeOnly", .offset = 719, .count = 5, .legacy_ref = true},
{.name = "x-definitions", .offset = 724, .count = 1, .legacy_ref = false},

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: x-definitions is not a reserved keyword: OpenAPI 3.0 permits any x- prefixed extension property in a Schema Object. Registering it as SchemaKeywordType::LocationMembers means any document that happens to contain a user-defined x-definitions extension will now have its value interpreted as a schema-definitions location (traversed as subschemas) by walker-based tooling, silently changing bundling/validation behavior for schemas that never opted into this convention. Consider documenting this reservation in the OpenAPI 3.0 dialect definition, or namespacing the location keyword to make accidental collisions less likely.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 5321:

<comment>`x-definitions` is not a reserved keyword: OpenAPI 3.0 permits any `x-` prefixed extension property in a Schema Object. Registering it as `SchemaKeywordType::LocationMembers` means any document that happens to contain a user-defined `x-definitions` extension will now have its value interpreted as a schema-definitions location (traversed as subschemas) by walker-based tooling, silently changing bundling/validation behavior for schemas that never opted into this convention. Consider documenting this reservation in the OpenAPI 3.0 dialect definition, or namespacing the location keyword to make accidental collisions less likely.</comment>

<file context>
@@ -4919,133 +5191,135 @@ constexpr std::array<Keyword, 102> KEYWORDS{{
-    {.name = "xml", .offset = 689, .count = 2, .legacy_ref = false},
+    {.name = "uniqueItems", .offset = 706, .count = 13, .legacy_ref = false},
+    {.name = "writeOnly", .offset = 719, .count = 5, .legacy_ref = true},
+    {.name = "x-definitions", .offset = 724, .count = 1, .legacy_ref = false},
+    {.name = "xml", .offset = 725, .count = 3, .legacy_ref = false},
 }};
</file context>

@github-actions

github-actions Bot commented Oct 4, 2026 •

Copy link
Copy Markdown

Benchmark linux/gcc

Measured against main at 0f9a2a5.

9 slower, 22 faster, 79 within 5%.

Benchmark main This branch Change
JSON_Object_Defines_Miss_Too_Small 1.36 ns 1.86 ns +37.1%
JSON_Object_At_Last_Key_128 29.99 ns 39.38 ns +31.3%
JSON_PropertySet_Filter_Object_Properties 17.42 ns 20.89 ns +20.0%
JSON_String_Key_Hash_10 1.46 ns 1.65 ns +12.4%
JSON_Prettify_Schema_Web_Of_Things 86.52 us 92.50 us +6.9%
JSON_Array_Of_Objects_Unique 234.25 ns 249.32 ns +6.4%
Pointer_Untracked_Deeply_Nested 811.92 us 855.69 us +5.4%
JSON_PropertySet_Insert 237.22 ns 249.61 ns +5.2%
Markdown_To_HTML_Pathological 7.73 ms 8.14 ms +5.2%
Regex_Period 1.25 ns 1.19 ns -5.0%
JSON_Parse_Real 3.11 us 2.96 us -5.1%
JSONPath_Descendant_Filter_Nested 971.11 ns 921.43 ns -5.1%
Regex_Period_Plus 1.24 ns 1.17 ns -5.2%
JSON_Object_At_Last_Key_8 2.28 ns 2.16 ns -5.3%
JSON_Object_At_Last_Key_512 140.92 ns 133.37 ns -5.4%
Schema_Bundle_Meta_2020_12 304.57 us 288.13 us -5.4%
JSON_Parse_1 2.88 us 2.72 us -5.6%
JSON_String_Equal_100 3.28 ns 3.10 ns -5.6%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.25 ns 1.18 ns -5.8%
Regex_Caret_Slash_Period_Asterisk 3.68 ns 3.45 ns -6.2%
Regex_Caret_Period_Asterisk_Dollar 1.24 ns 1.17 ns -6.2%
JSON_Fast_Hash_Helm_Chart_Lock 41.31 ns 38.45 ns -6.9%
URITemplateRouter_Match 70.85 ns 64.76 ns -8.6%
JSON_PropertySet_Contains 23.30 ns 21.26 ns -8.8%
JSON_Object_Defines_Miss_Same_Length 1.61 ns 1.47 ns -8.8%
URITemplateRouter_Match_BasePath 82.81 ns 75.25 ns -9.1%
Schema_Frame_KrakenD_References 10.42 ms 9.13 ms -12.4%
JSON_Array_Of_Strings_Unique_Colliding_256 114.92 us 98.88 us -14.0%
URITemplateRouterView_Match_BasePath 89.32 ns 73.94 ns -17.2%
OpenAPI_Format_Synthetic_3_1 32.63 ms 26.95 ms -17.4%
Regex_Caret_Period_Range_Dollar 1.62 ns 1.17 ns -27.8%
All 110 benchmarks
Benchmark main This branch Change
Crypto_CRC32_Large_JSONL 75.40 us 74.36 us -1.4%
Crypto_AES_GCM_Encrypt_128_1KB 637.21 ns 646.15 ns +1.4%
Crypto_AES_GCM_Decrypt_128_1KB 652.67 ns 654.96 ns +0.4%
Crypto_AES_GCM_Encrypt_256_1KB 670.05 ns 650.59 ns -2.9%
JOSE_VerifySignature_RS256 14.13 us 14.17 us +0.2%
JOSE_VerifySignature_ES512 312.81 us 315.63 us +0.9%
GZIP_Compress_ISO_Language_Set_3_Locations 18.83 ms 18.56 ms -1.5%
GZIP_Decompress_ISO_Language_Set_3_Locations 3.41 ms 3.45 ms +1.2%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 4.54 ms 4.48 ms -1.4%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 5.16 ms 4.99 ms -3.2%
GZIP_Compress_ISO_Language_Set_3_Schema 1.44 ms 1.46 ms +1.6%
GZIP_Decompress_ISO_Language_Set_3_Schema 297.00 us 296.42 us -0.2%
Markdown_To_HTML_Realistic_Document 2.62 ms 2.65 ms +1.4%
Markdown_To_HTML_Pathological 7.73 ms 8.14 ms +5.2%
Markdown_To_HTML_Short_Descriptions 329.52 ns 338.16 ns +2.6%
HTML_Build_Table_100000 20.00 ms 19.64 ms -1.8%
HTML_Render_Table_100000 1.68 ms 1.60 ms -4.4%
JSONLD_Catalog_Annotation_List_Populate 405.23 us 395.70 us -2.4%
JSONLD_Catalog_Materialize 1.90 ms 1.81 ms -4.8%
JSONL_Parse_Large 6.07 ms 5.99 ms -1.4%
JSONL_Parse_Large_GZIP 6.11 ms 6.03 ms -1.2%
URITemplateRouter_Create 10.12 us 10.10 us -0.3%
URITemplateRouter_Match 70.85 ns 64.76 ns -8.6%
URITemplateRouterView_Restore 6.99 us 7.14 us +2.2%
URITemplateRouterView_Match 69.50 ns 66.56 ns -4.2%
URITemplateRouterView_Arguments 300.43 ns 296.15 ns -1.4%
URITemplateRouter_Match_BasePath 82.81 ns 75.25 ns -9.1%
URITemplateRouterView_Match_BasePath 89.32 ns 73.94 ns -17.2%
JSONPath_Descendant_Filter_Nested 971.11 ns 921.43 ns -5.1%
OpenAPI_Format_Synthetic_3_1 32.63 ms 26.95 ms -17.4%
Schema_Frame_WoT_References 1.27 ms 1.21 ms -4.9%
Schema_Frame_OMC_References 5.60 ms 5.40 ms -3.7%
Schema_Frame_OMC_Pointers 10.60 ms 10.90 ms +2.9%
Schema_Frame_OMC_Locations 4.84 ms 4.74 ms -2.1%
Schema_Frame_ISO_Language_Locations 27.16 ms 25.81 ms -4.9%
Schema_Frame_ISO_Language_Root 161.28 ns 159.39 ns -1.2%
Schema_Frame_KrakenD_References 10.42 ms 9.13 ms -12.4%
Schema_Frame_KrakenD_Reachable 82.65 ms 80.45 ms -2.7%
Schema_Frame_ISO_Language_Locations_To_JSON 23.60 ms 22.57 ms -4.4%
Schema_Frame_Many_Resources_References 91.57 ms 88.47 ms -3.4%
Schema_Frame_Deeply_Nested_References 5.72 ms 5.68 ms -0.7%
Schema_Format_ISO_Language 30.71 ms 29.29 ms -4.6%
Schema_Bundle_Meta_2020_12 304.57 us 288.13 us -5.4%
Schema_Bundle_Many_Remotes_With_Fragments 3.88 ms 3.70 ms -4.6%
Pointer_Object_Traverse 13.35 ns 13.08 ns -2.0%
Pointer_Object_Try_Traverse 13.05 ns 13.26 ns +1.6%
Pointer_Push_Back_Pointer_To_Weak_Pointer 64.08 ns 62.14 ns -3.0%
Pointer_Walker_Schema_ISO_Language 782.72 us 775.81 us -0.9%
Pointer_Untracked_Deeply_Nested 811.92 us 855.69 us +5.4%
Pointer_Tracked_Deeply_Nested 1.04 ms 1.00 ms -3.1%
Pointer_Position_Tracker_Get_Deeply_Nested 401.84 ns 394.60 ns -1.8%
Schema_Tracker_ISO_Language 2.80 ms 2.67 ms -4.6%
Schema_Tracker_ISO_Language_To_JSON 8.16 ms 7.93 ms -2.9%
JSON_Array_Of_Objects_Unique 234.25 ns 249.32 ns +6.4%
JSON_Array_Of_Integers_Unique_256 2.50 us 2.45 us -1.8%
JSON_Array_Of_Strings_Unique_Colliding_256 114.92 us 98.88 us -14.0%
JSON_Parse_1 2.88 us 2.72 us -5.6%
JSON_Parse_Real 3.11 us 2.96 us -5.1%
JSON_Parse_Decimal 5.22 us 5.10 us -2.2%
JSON_Parse_Schema_ISO_Language 2.02 ms 1.95 ms -3.2%
JSON_Parse_Integer 2.38 us 2.41 us +1.5%
JSON_Parse_String_NonSSO_Plain 2.04 us 1.96 us -3.5%
JSON_Parse_String_SSO_Plain 1.61 us 1.58 us -2.1%
JSON_Parse_String_Escape_Heavy 8.83 us 9.20 us +4.2%
JSON_Parse_Object_Short_Keys 5.86 us 5.88 us +0.4%
JSON_Parse_Object_Scalar_Properties 2.96 us 2.98 us +0.7%
JSON_Parse_Object_Array_Properties 3.63 us 3.63 us +0.1%
JSON_Parse_Object_Object_Properties 3.65 us 3.63 us -0.5%
JSON_Parse_Nested_Containers 23.37 us 23.55 us +0.8%
JSON_Fast_Hash_Helm_Chart_Lock 41.31 ns 38.45 ns -6.9%
JSON_Equality_Helm_Chart_Lock 83.18 ns 86.25 ns +3.7%
JSON_String_Equal_10 2.60 ns 2.61 ns +0.6%
JSON_String_Equal_100 3.28 ns 3.10 ns -5.6%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.45 ns 0.47 ns +4.0%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 7.40 ns 7.47 ns +0.9%
JSON_String_Fast_Hash_10 2.29 ns 2.20 ns -3.9%
JSON_String_Fast_Hash_100 2.25 ns 2.23 ns -1.0%
JSON_String_Key_Hash_10 1.46 ns 1.65 ns +12.4%
JSON_String_Key_Hash_100 7.71 ns 7.63 ns -1.1%
JSON_Object_Defines_Miss_Same_Length 1.61 ns 1.47 ns -8.8%
JSON_Object_Defines_Miss_Too_Small 1.36 ns 1.86 ns +37.1%
JSON_Object_Defines_Miss_Too_Large 1.42 ns 1.48 ns +3.6%
JSON_From_String_Copy 4.54 ns 4.62 ns +1.8%
JSON_From_String_Temporary 4.03 ns 4.12 ns +2.4%
JSON_Number_To_Double 14.53 ns 15.00 ns +3.2%
JSON_Object_At_Last_Key_8 2.28 ns 2.16 ns -5.3%
JSON_Object_At_Last_Key_32 8.09 ns 7.72 ns -4.6%
JSON_Object_At_Last_Key_128 29.99 ns 39.38 ns +31.3%
JSON_Object_At_Last_Key_512 140.92 ns 133.37 ns -5.4%
JSON_Divisible_By_Decimal 319.96 ns 330.86 ns +3.4%
JSON_PropertySet_Contains 23.30 ns 21.26 ns -8.8%
JSON_PropertySet_Filter_Object_Properties 17.42 ns 20.89 ns +20.0%
JSON_PropertySet_Insert 237.22 ns 249.61 ns +5.2%
JSON_Stringify_Schema_Web_Of_Things 31.65 us 32.46 us +2.6%
JSON_Prettify_Schema_Web_Of_Things 86.52 us 92.50 us +6.9%
Regex_Lower_S_Or_Upper_S_Asterisk 1.20 ns 1.19 ns -0.6%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 1.23 ns 1.18 ns -4.6%
Regex_Period_Asterisk 1.24 ns 1.24 ns +0.7%
Regex_Group_Period_Asterisk_Group 1.21 ns 1.25 ns +3.1%
Regex_Period_Plus 1.24 ns 1.17 ns -5.2%
Regex_Period 1.25 ns 1.19 ns -5.0%
Regex_Caret_Period_Plus_Dollar 1.24 ns 1.24 ns +0.1%
Regex_Caret_Group_Period_Plus_Group_Dollar 1.24 ns 1.25 ns +0.9%
Regex_Caret_Period_Asterisk_Dollar 1.24 ns 1.17 ns -6.2%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.25 ns 1.18 ns -5.8%
Regex_Caret_X_Hyphen 3.40 ns 3.54 ns +4.0%
Regex_Period_Md_Dollar 13.47 ns 13.16 ns -2.3%
Regex_Caret_Slash_Period_Asterisk 3.68 ns 3.45 ns -6.2%
Regex_Caret_Period_Range_Dollar 1.62 ns 1.17 ns -27.8%
Regex_Nested_Backtrack 20.14 ns 20.05 ns -0.5%

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

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

1 issue found across 1 file (changes from recent commits).

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="src/core/jsonschema/known_walker.cc">

<violation number="1" location="src/core/jsonschema/known_walker.cc:5141">
P3: The comment contradicts itself: it opens with "every JSON Schema dialect reserves a location for exactly that", then the very next sentence says "This one reserves none". "This one" is the OpenAPI 3.0 dialect, which the comment itself treats as a JSON Schema dialect ("what it produces stays a legal schema of this dialect"), so the universal claim is false as written. Intended meaning is clearly "every other dialect" (draft-03..07 `definitions`, 2019-09/2020-12 `$defs`), so add the "other" to remove the apparent contradiction.</violation>
</file>

Reply with feedback, questions, or to request a fix.

Re-trigger cubic

Comment thread src/core/jsonschema/known_walker.cc Outdated
{},
INSTANCES_ANY}},
// Bundling has to place what it embeds somewhere a later pass reaches
// again, and every JSON Schema dialect reserves a location for exactly

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P3: The comment contradicts itself: it opens with "every JSON Schema dialect reserves a location for exactly that", then the very next sentence says "This one reserves none". "This one" is the OpenAPI 3.0 dialect, which the comment itself treats as a JSON Schema dialect ("what it produces stays a legal schema of this dialect"), so the universal claim is false as written. Intended meaning is clearly "every other dialect" (draft-03..07 definitions, 2019-09/2020-12 $defs), so add the "other" to remove the apparent contradiction.

Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. When an issue isn't valid or won't be fixed in this PR, reply in its thread with the reason and then resolve the thread. At src/core/jsonschema/known_walker.cc, line 5141:

<comment>The comment contradicts itself: it opens with "every JSON Schema dialect reserves a location for exactly that", then the very next sentence says "This one reserves none". "This one" is the OpenAPI 3.0 dialect, which the comment itself treats as a JSON Schema dialect ("what it produces stays a legal schema of this dialect"), so the universal claim is false as written. Intended meaning is clearly "every other dialect" (draft-03..07 `definitions`, 2019-09/2020-12 `$defs`), so add the "other" to remove the apparent contradiction.</comment>

<file context>
@@ -5137,12 +5137,24 @@ constexpr std::array<Variant, 728> VARIANTS{{
-    // well defined wherever the reader knows that vocabulary, unlike an
-    // undeclared one, which later JSON Schema revisions warn against
+    // Bundling has to place what it embeds somewhere a later pass reaches
+    // again, and every JSON Schema dialect reserves a location for exactly
+    // that. This one reserves none, and closes its Schema Object to every
+    // property name but its own and those carrying the extension prefix, so
</file context>
Suggested change
// again, and every JSON Schema dialect reserves a location for exactly
// again, and every other JSON Schema dialect reserves a location for exactly

Signed-off-by: Juan Cruz Viotti <[email protected]>
@jviotti
jviotti merged commit 4b0250b into main Oct 4, 2026
15 checks passed
@jviotti
jviotti deleted the openapi-3-0-walker branch October 4, 2026 17:12
@github-actions

github-actions Bot commented Oct 4, 2026

Copy link
Copy Markdown

Benchmark macos/llvm

Measured against main at 0f9a2a5.

58 slower, 31 faster, 21 within 5%.

Benchmark main This branch Change
Pointer_Tracked_Deeply_Nested 1.01 ms 1.74 ms +71.7%
Pointer_Object_Try_Traverse 34.63 ns 59.18 ns +70.9%
Schema_Frame_OMC_References 8.32 ms 14.13 ms +69.7%
Pointer_Position_Tracker_Get_Deeply_Nested 348.65 ns 577.15 ns +65.5%
Schema_Frame_OMC_Locations 6.48 ms 10.69 ms +64.8%
Schema_Frame_OMC_Pointers 16.58 ms 26.97 ms +62.7%
JSON_Prettify_Schema_Web_Of_Things 157.52 us 248.50 us +57.8%
Schema_Frame_KrakenD_References 12.55 ms 19.14 ms +52.5%
Schema_Frame_WoT_References 1.72 ms 2.60 ms +50.8%
JSON_Stringify_Schema_Web_Of_Things 63.55 us 95.72 us +50.6%
JSON_PropertySet_Filter_Object_Properties 40.13 ns 60.05 ns +49.6%
JSON_PropertySet_Insert 340.98 ns 480.02 ns +40.8%
Pointer_Walker_Schema_ISO_Language 1.53 ms 2.14 ms +40.3%
Pointer_Push_Back_Pointer_To_Weak_Pointer 155.68 ns 217.67 ns +39.8%
Markdown_To_HTML_Pathological 9.45 ms 12.96 ms +37.3%
Schema_Frame_ISO_Language_Locations 24.37 ms 33.44 ms +37.2%
Schema_Tracker_ISO_Language_To_JSON 10.29 ms 13.89 ms +35.1%
Schema_Frame_KrakenD_Reachable 167.81 ms 226.39 ms +34.9%
JSON_Divisible_By_Decimal 445.06 ns 591.75 ns +33.0%
Schema_Frame_Deeply_Nested_References 11.77 ms 15.65 ms +32.9%
Pointer_Untracked_Deeply_Nested 873.22 us 1.14 ms +30.4%
Schema_Frame_ISO_Language_Locations_To_JSON 20.05 ms 25.86 ms +29.0%
Schema_Tracker_ISO_Language 2.74 ms 3.52 ms +28.4%
Markdown_To_HTML_Short_Descriptions 319.59 ns 406.10 ns +27.1%
HTML_Render_Table_100000 1.65 ms 2.08 ms +26.1%
Schema_Frame_Many_Resources_References 94.55 ms 117.71 ms +24.5%
Markdown_To_HTML_Realistic_Document 3.04 ms 3.76 ms +23.7%
Pointer_Object_Traverse 20.98 ns 25.93 ns +23.6%
JSON_Object_At_Last_Key_512 201.55 ns 248.50 ns +23.3%
Schema_Frame_ISO_Language_Root 105.67 ns 129.94 ns +23.0%
URITemplateRouterView_Arguments 536.15 ns 652.99 ns +21.8%
JSON_PropertySet_Contains 51.26 ns 61.77 ns +20.5%
OpenAPI_Format_Synthetic_3_1 39.91 ms 48.09 ms +20.5%
JSON_From_String_Temporary 7.41 ns 8.91 ns +20.2%
URITemplateRouter_Create 17.42 us 20.68 us +18.7%
JSON_Object_At_Last_Key_32 14.02 ns 16.61 ns +18.5%
JSON_Object_At_Last_Key_128 71.76 ns 83.77 ns +16.7%
Schema_Format_ISO_Language 23.37 ms 27.11 ms +16.0%
GZIP_Decompress_ISO_Language_Set_3_Schema 314.24 us 360.67 us +14.8%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 4.23 ms 4.79 ms +13.2%
JOSE_VerifySignature_RS256 21.78 us 24.57 us +12.8%
JSONLD_Catalog_Materialize 2.03 ms 2.28 ms +12.2%
JSONLD_Catalog_Annotation_List_Populate 504.30 us 564.39 us +11.9%
JSON_Number_To_Double 11.44 ns 12.80 ns +11.9%
HTML_Build_Table_100000 26.52 ms 29.59 ms +11.6%
GZIP_Compress_ISO_Language_Set_3_Locations 27.53 ms 30.70 ms +11.5%
JSON_String_Fast_Hash_100 2.29 ns 2.54 ns +10.8%
Regex_Period 2.92 ns 3.20 ns +9.7%
JSON_Equality_Helm_Chart_Lock 172.12 ns 188.50 ns +9.5%
URITemplateRouter_Match 171.48 ns 187.14 ns +9.1%
JSON_Object_Defines_Miss_Same_Length 3.30 ns 3.58 ns +8.5%
JSONL_Parse_Large 6.30 ms 6.82 ms +8.3%
Schema_Bundle_Many_Remotes_With_Fragments 5.40 ms 5.83 ms +7.9%
URITemplateRouterView_Match 125.22 ns 134.24 ns +7.2%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 4.16 ns 4.45 ns +7.1%
GZIP_Decompress_ISO_Language_Set_3_Locations 2.96 ms 3.16 ms +6.7%
JSON_String_Equal_100 7.10 ns 7.49 ns +5.5%
Crypto_AES_GCM_Encrypt_256_1KB 3.68 us 3.86 us +5.1%
JSON_Parse_Object_Array_Properties 3.53 us 3.34 us -5.5%
URITemplateRouterView_Match_BasePath 158.19 ns 148.82 ns -5.9%
Regex_Period_Plus 2.66 ns 2.48 ns -6.6%
Regex_Caret_Period_Plus_Dollar 2.95 ns 2.71 ns -8.0%
JSON_Object_At_Last_Key_8 5.27 ns 4.80 ns -8.9%
Regex_Caret_X_Hyphen 8.09 ns 7.33 ns -9.4%
JSON_Array_Of_Objects_Unique 478.43 ns 433.56 ns -9.4%
Regex_Caret_Slash_Period_Asterisk 6.58 ns 5.93 ns -9.9%
JSON_Parse_Object_Scalar_Properties 3.51 us 3.15 us -10.3%
JSON_Array_Of_Integers_Unique_256 5.56 us 4.93 us -11.3%
JSON_Parse_Integer 3.28 us 2.90 us -11.5%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.81 ns 2.46 ns -12.3%
Crypto_CRC32_Large_JSONL 24.28 us 20.96 us -13.6%
JSON_Parse_String_NonSSO_Plain 3.80 us 3.22 us -15.1%
Regex_Period_Asterisk 2.56 ns 2.13 ns -16.7%
JOSE_VerifySignature_ES512 1.17 ms 973.75 us -17.0%
JSON_Parse_Object_Short_Keys 6.69 us 5.55 us -17.0%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.71 ns 2.21 ns -18.5%
JSON_Array_Of_Strings_Unique_Colliding_256 205.10 us 166.36 us -18.9%
JSON_Parse_Schema_ISO_Language 2.96 ms 2.37 ms -20.0%
JSON_String_Key_Hash_10 2.46 ns 1.96 ns -20.2%
Regex_Nested_Backtrack 44.67 ns 35.53 ns -20.5%
JSON_Parse_String_SSO_Plain 2.27 us 1.79 us -21.0%
JSON_Parse_String_Escape_Heavy 22.48 us 17.66 us -21.4%
Regex_Period_Md_Dollar 30.35 ns 23.60 ns -22.3%
Regex_Lower_S_Or_Upper_S_Asterisk 2.92 ns 2.27 ns -22.3%
Regex_Caret_Group_Period_Plus_Group_Dollar 3.07 ns 2.36 ns -23.2%
Regex_Caret_Period_Range_Dollar 3.09 ns 2.27 ns -26.5%
Regex_Group_Period_Asterisk_Group 2.75 ns 1.99 ns -27.5%
JSON_Parse_Decimal 7.18 us 5.20 us -27.6%
Regex_Caret_Period_Asterisk_Dollar 2.84 ns 1.86 ns -34.5%
All 110 benchmarks
Benchmark main This branch Change
Regex_Lower_S_Or_Upper_S_Asterisk 2.92 ns 2.27 ns -22.3%
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.81 ns 2.46 ns -12.3%
Regex_Period_Asterisk 2.56 ns 2.13 ns -16.7%
Regex_Group_Period_Asterisk_Group 2.75 ns 1.99 ns -27.5%
Regex_Period_Plus 2.66 ns 2.48 ns -6.6%
Regex_Period 2.92 ns 3.20 ns +9.7%
Regex_Caret_Period_Plus_Dollar 2.95 ns 2.71 ns -8.0%
Regex_Caret_Group_Period_Plus_Group_Dollar 3.07 ns 2.36 ns -23.2%
Regex_Caret_Period_Asterisk_Dollar 2.84 ns 1.86 ns -34.5%
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.71 ns 2.21 ns -18.5%
Regex_Caret_X_Hyphen 8.09 ns 7.33 ns -9.4%
Regex_Period_Md_Dollar 30.35 ns 23.60 ns -22.3%
Regex_Caret_Slash_Period_Asterisk 6.58 ns 5.93 ns -9.9%
Regex_Caret_Period_Range_Dollar 3.09 ns 2.27 ns -26.5%
Regex_Nested_Backtrack 44.67 ns 35.53 ns -20.5%
JSON_Array_Of_Objects_Unique 478.43 ns 433.56 ns -9.4%
JSON_Array_Of_Integers_Unique_256 5.56 us 4.93 us -11.3%
JSON_Array_Of_Strings_Unique_Colliding_256 205.10 us 166.36 us -18.9%
JSON_Parse_1 3.46 us 3.45 us -0.5%
JSON_Parse_Real 3.69 us 3.52 us -4.6%
JSON_Parse_Decimal 7.18 us 5.20 us -27.6%
JSON_Parse_Schema_ISO_Language 2.96 ms 2.37 ms -20.0%
JSON_Parse_Integer 3.28 us 2.90 us -11.5%
JSON_Parse_String_NonSSO_Plain 3.80 us 3.22 us -15.1%
JSON_Parse_String_SSO_Plain 2.27 us 1.79 us -21.0%
JSON_Parse_String_Escape_Heavy 22.48 us 17.66 us -21.4%
JSON_Parse_Object_Short_Keys 6.69 us 5.55 us -17.0%
JSON_Parse_Object_Scalar_Properties 3.51 us 3.15 us -10.3%
JSON_Parse_Object_Array_Properties 3.53 us 3.34 us -5.5%
JSON_Parse_Object_Object_Properties 3.64 us 3.55 us -2.6%
JSON_Parse_Nested_Containers 27.20 us 26.05 us -4.2%
JSON_Fast_Hash_Helm_Chart_Lock 62.82 ns 61.80 ns -1.6%
JSON_Equality_Helm_Chart_Lock 172.12 ns 188.50 ns +9.5%
JSON_String_Equal_10 7.26 ns 7.21 ns -0.6%
JSON_String_Equal_100 7.10 ns 7.49 ns +5.5%
JSON_String_Equal_Small_By_Perfect_Hash_10 0.38 ns 0.40 ns +5.0%
JSON_String_Equal_Small_By_Runtime_Perfect_Hash_10 4.16 ns 4.45 ns +7.1%
JSON_String_Fast_Hash_10 2.98 ns 3.04 ns +2.0%
JSON_String_Fast_Hash_100 2.29 ns 2.54 ns +10.8%
JSON_String_Key_Hash_10 2.46 ns 1.96 ns -20.2%
JSON_String_Key_Hash_100 2.53 ns 2.47 ns -2.1%
JSON_Object_Defines_Miss_Same_Length 3.30 ns 3.58 ns +8.5%
JSON_Object_Defines_Miss_Too_Small 5.59 ns 5.62 ns +0.4%
JSON_Object_Defines_Miss_Too_Large 3.21 ns 3.24 ns +0.8%
JSON_From_String_Copy 12.66 ns 12.59 ns -0.6%
JSON_From_String_Temporary 7.41 ns 8.91 ns +20.2%
JSON_Number_To_Double 11.44 ns 12.80 ns +11.9%
JSON_Object_At_Last_Key_8 5.27 ns 4.80 ns -8.9%
JSON_Object_At_Last_Key_32 14.02 ns 16.61 ns +18.5%
JSON_Object_At_Last_Key_128 71.76 ns 83.77 ns +16.7%
JSON_Object_At_Last_Key_512 201.55 ns 248.50 ns +23.3%
JSON_Divisible_By_Decimal 445.06 ns 591.75 ns +33.0%
JSON_PropertySet_Contains 51.26 ns 61.77 ns +20.5%
JSON_PropertySet_Filter_Object_Properties 40.13 ns 60.05 ns +49.6%
JSON_PropertySet_Insert 340.98 ns 480.02 ns +40.8%
JSON_Stringify_Schema_Web_Of_Things 63.55 us 95.72 us +50.6%
JSON_Prettify_Schema_Web_Of_Things 157.52 us 248.50 us +57.8%
Pointer_Object_Traverse 20.98 ns 25.93 ns +23.6%
Pointer_Object_Try_Traverse 34.63 ns 59.18 ns +70.9%
Pointer_Push_Back_Pointer_To_Weak_Pointer 155.68 ns 217.67 ns +39.8%
Pointer_Walker_Schema_ISO_Language 1.53 ms 2.14 ms +40.3%
Pointer_Untracked_Deeply_Nested 873.22 us 1.14 ms +30.4%
Pointer_Tracked_Deeply_Nested 1.01 ms 1.74 ms +71.7%
Pointer_Position_Tracker_Get_Deeply_Nested 348.65 ns 577.15 ns +65.5%
Schema_Tracker_ISO_Language 2.74 ms 3.52 ms +28.4%
Schema_Tracker_ISO_Language_To_JSON 10.29 ms 13.89 ms +35.1%
Schema_Frame_WoT_References 1.72 ms 2.60 ms +50.8%
Schema_Frame_OMC_References 8.32 ms 14.13 ms +69.7%
Schema_Frame_OMC_Pointers 16.58 ms 26.97 ms +62.7%
Schema_Frame_OMC_Locations 6.48 ms 10.69 ms +64.8%
Schema_Frame_ISO_Language_Locations 24.37 ms 33.44 ms +37.2%
Schema_Frame_ISO_Language_Root 105.67 ns 129.94 ns +23.0%
Schema_Frame_KrakenD_References 12.55 ms 19.14 ms +52.5%
Schema_Frame_KrakenD_Reachable 167.81 ms 226.39 ms +34.9%
Schema_Frame_ISO_Language_Locations_To_JSON 20.05 ms 25.86 ms +29.0%
Schema_Frame_Many_Resources_References 94.55 ms 117.71 ms +24.5%
Schema_Frame_Deeply_Nested_References 11.77 ms 15.65 ms +32.9%
Schema_Format_ISO_Language 23.37 ms 27.11 ms +16.0%
Schema_Bundle_Meta_2020_12 428.49 us 418.13 us -2.4%
Schema_Bundle_Many_Remotes_With_Fragments 5.40 ms 5.83 ms +7.9%
OpenAPI_Format_Synthetic_3_1 39.91 ms 48.09 ms +20.5%
JSONPath_Descendant_Filter_Nested 1.24 us 1.30 us +4.8%
URITemplateRouter_Create 17.42 us 20.68 us +18.7%
URITemplateRouter_Match 171.48 ns 187.14 ns +9.1%
URITemplateRouterView_Restore 11.71 us 11.46 us -2.1%
URITemplateRouterView_Match 125.22 ns 134.24 ns +7.2%
URITemplateRouterView_Arguments 536.15 ns 652.99 ns +21.8%
URITemplateRouter_Match_BasePath 204.67 ns 210.21 ns +2.7%
URITemplateRouterView_Match_BasePath 158.19 ns 148.82 ns -5.9%
JSONL_Parse_Large 6.30 ms 6.82 ms +8.3%
JSONL_Parse_Large_GZIP 6.27 ms 6.36 ms +1.4%
JSONLD_Catalog_Annotation_List_Populate 504.30 us 564.39 us +11.9%
JSONLD_Catalog_Materialize 2.03 ms 2.28 ms +12.2%
HTML_Build_Table_100000 26.52 ms 29.59 ms +11.6%
HTML_Render_Table_100000 1.65 ms 2.08 ms +26.1%
Markdown_To_HTML_Realistic_Document 3.04 ms 3.76 ms +23.7%
Markdown_To_HTML_Pathological 9.45 ms 12.96 ms +37.3%
Markdown_To_HTML_Short_Descriptions 319.59 ns 406.10 ns +27.1%
GZIP_Compress_ISO_Language_Set_3_Locations 27.53 ms 30.70 ms +11.5%
GZIP_Decompress_ISO_Language_Set_3_Locations 2.96 ms 3.16 ms +6.7%
GZIP_Decompress_Default_Level_ISO_Language_Set_3_Locations 4.23 ms 4.79 ms +13.2%
GZIP_Decompress_Stream_Default_Level_ISO_Language_Set_3_Locations 5.30 ms 5.36 ms +1.0%
GZIP_Compress_ISO_Language_Set_3_Schema 1.89 ms 1.90 ms +0.8%
GZIP_Decompress_ISO_Language_Set_3_Schema 314.24 us 360.67 us +14.8%
JOSE_VerifySignature_RS256 21.78 us 24.57 us +12.8%
JOSE_VerifySignature_ES512 1.17 ms 973.75 us -17.0%
Crypto_CRC32_Large_JSONL 24.28 us 20.96 us -13.6%
Crypto_AES_GCM_Encrypt_128_1KB 3.69 us 3.72 us +0.8%
Crypto_AES_GCM_Decrypt_128_1KB 3.87 us 4.02 us +3.8%
Crypto_AES_GCM_Encrypt_256_1KB 3.68 us 3.86 us +5.1%

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