Skip to content

Detect duplicate mapping keys introduced through aliases - #2725

Merged
jviotti merged 4 commits into
mainfrom
yaml-fixes
Aug 13, 2026
Merged

Detect duplicate mapping keys introduced through aliases #2725
jviotti merged 4 commits into
mainfrom
yaml-fixes

Conversation

@jviotti

@jviotti jviotti commented Aug 13, 2026

Copy link
Copy Markdown
Member

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

Review in cubic

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

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

No issues found across 2 files

Re-trigger cubic

@augmentcode

augmentcode Bot commented Aug 13, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds regression coverage for integer parsing that encounters invalid trailing characters.

Changes:

  • Tests strict `to_int64_t` rejection for invalid digits, letters, and trailing whitespace.
  • Covers octal, hexadecimal, explicit decimal, and default decimal parsing paths.
  • Adds YAML cases ensuring malformed `0o` and `0x` scalars remain strings.
  • The tests protect against accepting a valid numeric prefix while ignoring invalid suffixes.

🤖 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. No suggestions at this time.

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

Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti changed the title Add tests for integers with invalid trailing characters Detect duplicate mapping keys introduced through aliases Aug 13, 2026

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

All reported issues were addressed across 2 files (changes from recent commits).

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

Re-trigger cubic

Comment thread src/core/yaml/parser.h Outdated
Comment thread src/core/yaml/parser.h Outdated

@github-actions github-actions 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.

Benchmark (linux/llvm)

Details
Benchmark suite Current: 2df2bb8 Previous: 950304f Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.2336781790297158 ns/iter 2.2087138341708363 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.182344771957238 ns/iter 2.1918562456895523 ns/iter 1.00
Regex_Period_Asterisk 2.177642351693872 ns/iter 2.198968601979298 ns/iter 0.99
Regex_Group_Period_Asterisk_Group 2.180963951869104 ns/iter 2.2130139528510373 ns/iter 0.99
Regex_Period_Plus 3.115343778165859 ns/iter 3.121595356935863 ns/iter 1.00
Regex_Period 2.80079582836217 ns/iter 2.8010329747340146 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 2.8111808161086915 ns/iter 2.799572984728463 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 3.1157830266892725 ns/iter 3.1116963347210094 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 3.423926376952685 ns/iter 3.421790916579397 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1106240738843494 ns/iter 3.1100545344439827 ns/iter 1.00
Regex_Caret_X_Hyphen 6.5423234607574585 ns/iter 6.550432791338568 ns/iter 1.00
Regex_Period_Md_Dollar 28.552478768336453 ns/iter 28.456838053125107 ns/iter 1.00
Regex_Caret_Slash_Period_Asterisk 7.166798522288912 ns/iter 5.915057266560721 ns/iter 1.21
Regex_Caret_Period_Range_Dollar 3.734696734580164 ns/iter 2.801163221581428 ns/iter 1.33
Regex_Nested_Backtrack 38.58561504672438 ns/iter 39.02061160880356 ns/iter 0.99
JSON_Array_Of_Objects_Unique 403.19703866330576 ns/iter 402.37110984175763 ns/iter 1.00
JSON_Parse_1 4814.3029410762565 ns/iter 4918.8783396748095 ns/iter 0.98
JSON_Parse_Real 5267.767031876949 ns/iter 5164.198597353272 ns/iter 1.02
JSON_Parse_Decimal 7635.625242106357 ns/iter 7431.177995995673 ns/iter 1.03
JSON_Parse_Schema_ISO_Language 3509210.5678394493 ns/iter 3557733.7397961514 ns/iter 0.99
JSON_Parse_Integer 3852.686132666693 ns/iter 3712.140070554642 ns/iter 1.04
JSON_Parse_String_NonSSO_Plain 5135.483619048064 ns/iter 5087.152076444833 ns/iter 1.01
JSON_Parse_String_SSO_Plain 2843.4185007339092 ns/iter 2720.4634033862694 ns/iter 1.05
JSON_Parse_String_Escape_Heavy 14258.562467339556 ns/iter 14212.867726803292 ns/iter 1.00
JSON_Parse_Object_Short_Keys 10454.736333254412 ns/iter 10435.631983521302 ns/iter 1.00
JSON_Parse_Object_Scalar_Properties 4074.52588532131 ns/iter 4032.0250983063424 ns/iter 1.01
JSON_Parse_Object_Array_Properties 5752.590414371261 ns/iter 5687.088585975316 ns/iter 1.01
JSON_Parse_Object_Object_Properties 5794.617544004051 ns/iter 5476.507878204173 ns/iter 1.06
JSON_Parse_Nested_Containers 44962.97619966498 ns/iter 45279.51838709639 ns/iter 0.99
JSON_From_String_Copy 19.960801557046654 ns/iter 19.94195494421122 ns/iter 1.00
JSON_From_String_Temporary 17.460972072158228 ns/iter 17.45457625101845 ns/iter 1.00
JSON_Number_To_Double 24.051902384989596 ns/iter 24.00520337860297 ns/iter 1.00
JSON_Object_At_Last_Key/8 3.9373142330853685 ns/iter 3.8423571738800524 ns/iter 1.02
JSON_Object_At_Last_Key/32 12.31604986290903 ns/iter 12.414619168498632 ns/iter 0.99
JSON_Object_At_Last_Key/128 49.22194850577894 ns/iter 49.47453684600887 ns/iter 0.99
JSON_Object_At_Last_Key/512 393.02964813983147 ns/iter 392.40465592036287 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.021846951586745 ns/iter 61.01812690506752 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 160.94205651213144 ns/iter 158.4924096793883 ns/iter 1.02
JSON_Divisible_By_Decimal 255.771543468539 ns/iter 249.53727554277802 ns/iter 1.02
JSON_String_Equal/10 5.6089291822566665 ns/iter 5.608448052575472 ns/iter 1.00
JSON_String_Equal/100 6.237112515898436 ns/iter 6.231026616488174 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9353008932492897 ns/iter 0.9350708075220908 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.982427695027333 ns/iter 10.583547966949004 ns/iter 1.42
JSON_String_Fast_Hash/10 2.4905430556198223 ns/iter 2.4890887029994553 ns/iter 1.00
JSON_String_Fast_Hash/100 2.506107999068865 ns/iter 2.4888068442046705 ns/iter 1.01
JSON_String_Key_Hash/10 2.7517987525473417 ns/iter 2.179620549226353 ns/iter 1.26
JSON_String_Key_Hash/100 9.030447992362113 ns/iter 6.538082668642173 ns/iter 1.38
JSON_Object_Defines_Miss_Same_Length 3.4277878508268596 ns/iter 3.424962740389097 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.1715697553798132 ns/iter 3.2110648163951714 ns/iter 0.99
JSON_Object_Defines_Miss_Too_Large 2.7441104110467163 ns/iter 2.6972930006962477 ns/iter 1.02
Pointer_Object_Traverse 29.062694784823837 ns/iter 28.98005391865793 ns/iter 1.00
Pointer_Object_Try_Traverse 31.171721202429207 ns/iter 31.21653850007766 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 180.4008056826935 ns/iter 158.15481013724042 ns/iter 1.14
Pointer_Walker_Schema_ISO_Language 2590849.0261193193 ns/iter 2577513.7388059157 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/0 1266361.931283909 ns/iter 1257330.3644523819 ns/iter 1.01
Pointer_Maybe_Tracked_Deeply_Nested/1 1646510.103529609 ns/iter 1621135.369767608 ns/iter 1.02
Pointer_Position_Tracker_Get_Deeply_Nested 656.43589236502 ns/iter 692.6121877718749 ns/iter 0.95
JSONPath_Descendant_Filter_Nested 1619.8833996656256 ns/iter 1611.3586189772066 ns/iter 1.01
URITemplateRouter_Create 32211.71370114984 ns/iter 32750.15566258584 ns/iter 0.98
URITemplateRouter_Match 176.41706463304155 ns/iter 178.15642947224055 ns/iter 0.99
URITemplateRouter_Match_BasePath 207.3808282570999 ns/iter 201.8855452284399 ns/iter 1.03
URITemplateRouterView_Restore 8308.70816376471 ns/iter 8647.748870128169 ns/iter 0.96
URITemplateRouterView_Match 139.9110612628939 ns/iter 141.58741634919505 ns/iter 0.99
URITemplateRouterView_Match_BasePath 163.89954772639794 ns/iter 163.81627269138014 ns/iter 1.00
URITemplateRouterView_Arguments 422.89765954221207 ns/iter 435.00637244595066 ns/iter 0.97
JSONL_Parse_Large 9707332.958904373 ns/iter 9867962.47222325 ns/iter 0.98
JSONL_Parse_Large_GZIP 11227701.951613212 ns/iter 11334201.435482966 ns/iter 0.99
JSONLD_Catalog_Annotation_List_Populate 1311268.09005623 ns/iter 1325579.537735891 ns/iter 0.99
JSONLD_Catalog_Materialize 4488782.19480492 ns/iter 4347249.8819875615 ns/iter 1.03
HTML_Build_Table_100000 64369393.27272739 ns/iter 63693450.45454173 ns/iter 1.01
HTML_Render_Table_100000 5392930.589147182 ns/iter 5449013.81250007 ns/iter 0.99
GZIP_Compress_ISO_Language_Set_3_Locations 33273907.76190614 ns/iter 33385697.238096714 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Locations 4245414.590361935 ns/iter 4057839.3801172366 ns/iter 1.05
GZIP_Compress_ISO_Language_Set_3_Schema 1882876.7385443372 ns/iter 1886881.4231805694 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 353984.1558704312 ns/iter 353613.24974721577 ns/iter 1.00
JOSE_VerifySignature_RS256 58088.0724709788 ns/iter 57982.09101497494 ns/iter 1.00
JOSE_VerifySignature_ES512 2368006.0405407203 ns/iter 2377909.3457625415 ns/iter 1.00

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

@github-actions github-actions 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.

Benchmark (macos/llvm)

Details
Benchmark suite Current: 2df2bb8 Previous: 950304f Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.3177023646039747 ns/iter 2.5096230072756174 ns/iter 0.92
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.4424502686265197 ns/iter 2.661726192327008 ns/iter 0.92
Regex_Period_Asterisk 2.3237233749406543 ns/iter 3.533572132028948 ns/iter 0.66
Regex_Group_Period_Asterisk_Group 2.4557888805541586 ns/iter 2.625255079411322 ns/iter 0.94
Regex_Period_Plus 2.778214376168467 ns/iter 2.952890105302542 ns/iter 0.94
Regex_Period 3.017641320514659 ns/iter 3.3140752495377845 ns/iter 0.91
Regex_Caret_Period_Plus_Dollar 3.1542489885545404 ns/iter 2.8927620845640925 ns/iter 1.09
Regex_Caret_Group_Period_Plus_Group_Dollar 2.7236952898395788 ns/iter 3.0785565899259373 ns/iter 0.88
Regex_Caret_Period_Asterisk_Dollar 2.1372225182194007 ns/iter 2.6812698741031022 ns/iter 0.80
Regex_Caret_Group_Period_Asterisk_Group_Dollar 2.0255348432038502 ns/iter 2.995522139299497 ns/iter 0.68
Regex_Caret_X_Hyphen 7.078270767439808 ns/iter 9.593521845524622 ns/iter 0.74
Regex_Period_Md_Dollar 23.895129891816573 ns/iter 26.795074287096536 ns/iter 0.89
Regex_Caret_Slash_Period_Asterisk 5.896797083338319 ns/iter 7.722643006438325 ns/iter 0.76
Regex_Caret_Period_Range_Dollar 2.381173519320992 ns/iter 3.371596404662197 ns/iter 0.71
Regex_Nested_Backtrack 37.341138712973 ns/iter 43.26220432826653 ns/iter 0.86
JSON_Array_Of_Objects_Unique 461.1042483417379 ns/iter 503.7783983610813 ns/iter 0.92
JSON_Parse_1 5909.634636780138 ns/iter 7934.5320799996 ns/iter 0.74
JSON_Parse_Real 6623.464151181169 ns/iter 8976.609714120486 ns/iter 0.74
JSON_Parse_Decimal 7732.476312551228 ns/iter 9976.716864063277 ns/iter 0.78
JSON_Parse_Schema_ISO_Language 2601105.577689876 ns/iter 3487027.777777661 ns/iter 0.75
JSON_Parse_Integer 4524.778334351938 ns/iter 5149.01436761794 ns/iter 0.88
JSON_Parse_String_NonSSO_Plain 4870.9104223531 ns/iter 5772.612982279412 ns/iter 0.84
JSON_Parse_String_SSO_Plain 2505.1373986476483 ns/iter 2652.714560070915 ns/iter 0.94
JSON_Parse_String_Escape_Heavy 21700.01804551694 ns/iter 26812.168872454447 ns/iter 0.81
JSON_Parse_Object_Short_Keys 6720.236081306716 ns/iter 7604.199287806527 ns/iter 0.88
JSON_Parse_Object_Scalar_Properties 3736.096678932683 ns/iter 4699.5099546335905 ns/iter 0.79
JSON_Parse_Object_Array_Properties 5144.533660193478 ns/iter 5568.580639453186 ns/iter 0.92
JSON_Parse_Object_Object_Properties 6080.909170000268 ns/iter 5759.083686203508 ns/iter 1.06
JSON_Parse_Nested_Containers 42574.09923471151 ns/iter 46860.65446913608 ns/iter 0.91
JSON_From_String_Copy 28.345009272527843 ns/iter 34.98133756641094 ns/iter 0.81
JSON_From_String_Temporary 23.36566015630462 ns/iter 34.79648212867309 ns/iter 0.67
JSON_Number_To_Double 44.14563891446966 ns/iter 50.191032368620135 ns/iter 0.88
JSON_Object_At_Last_Key/8 4.8961477033189285 ns/iter 6.142030344062729 ns/iter 0.80
JSON_Object_At_Last_Key/32 17.646489294786704 ns/iter 17.049160029074926 ns/iter 1.04
JSON_Object_At_Last_Key/128 64.10308548812954 ns/iter 81.09934777809443 ns/iter 0.79
JSON_Object_At_Last_Key/512 229.35965710133252 ns/iter 307.6557905544923 ns/iter 0.75
JSON_Fast_Hash_Helm_Chart_Lock 69.21679612241412 ns/iter 80.79616239090205 ns/iter 0.86
JSON_Equality_Helm_Chart_Lock 166.14191777106788 ns/iter 194.23841356263523 ns/iter 0.86
JSON_Divisible_By_Decimal 234.24523215306664 ns/iter 265.19830607493964 ns/iter 0.88
JSON_String_Equal/10 9.549882240689357 ns/iter 10.948573924073417 ns/iter 0.87
JSON_String_Equal/100 8.34228137659835 ns/iter 10.272512524306617 ns/iter 0.81
JSON_String_Equal_Small_By_Perfect_Hash/10 0.4052748182391033 ns/iter 0.6257850649803909 ns/iter 0.65
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.732603083653309 ns/iter 5.233047306019672 ns/iter 0.71
JSON_String_Fast_Hash/10 2.790785281769567 ns/iter 3.4378630471681997 ns/iter 0.81
JSON_String_Fast_Hash/100 2.49385824454927 ns/iter 3.1645235603209554 ns/iter 0.79
JSON_String_Key_Hash/10 2.1569815601784463 ns/iter 2.623673470349494 ns/iter 0.82
JSON_String_Key_Hash/100 2.5386421066557774 ns/iter 3.7603814410050185 ns/iter 0.68
JSON_Object_Defines_Miss_Same_Length 3.3226730524519485 ns/iter 3.856585880638405 ns/iter 0.86
JSON_Object_Defines_Miss_Too_Small 3.257454528448866 ns/iter 3.945999246290872 ns/iter 0.83
JSON_Object_Defines_Miss_Too_Large 3.4179466733854014 ns/iter 4.437534344929452 ns/iter 0.77
Pointer_Object_Traverse 46.947508508113415 ns/iter 31.78282831655196 ns/iter 1.48
Pointer_Object_Try_Traverse 29.069837051863875 ns/iter 44.24877859523558 ns/iter 0.66
Pointer_Push_Back_Pointer_To_Weak_Pointer 186.31163041424128 ns/iter 295.27315884804267 ns/iter 0.63
Pointer_Walker_Schema_ISO_Language 3302765.486910532 ns/iter 4428242.682432464 ns/iter 0.75
Pointer_Maybe_Tracked_Deeply_Nested/0 971748.9511835078 ns/iter 1378592.165898815 ns/iter 0.70
Pointer_Maybe_Tracked_Deeply_Nested/1 1175630.8943090036 ns/iter 1711835.0439884856 ns/iter 0.69
Pointer_Position_Tracker_Get_Deeply_Nested 397.8592581892181 ns/iter 498.9232632875911 ns/iter 0.80
JSONPath_Descendant_Filter_Nested 1494.209773080464 ns/iter 2182.897584977959 ns/iter 0.68
URITemplateRouter_Create 27197.06362449731 ns/iter 38791.62603652669 ns/iter 0.70
URITemplateRouter_Match 198.38258986427158 ns/iter 262.4008006011821 ns/iter 0.76
URITemplateRouter_Match_BasePath 232.2946800742057 ns/iter 304.6838098335704 ns/iter 0.76
URITemplateRouterView_Restore 12798.09840185217 ns/iter 19841.403046809395 ns/iter 0.65
URITemplateRouterView_Match 191.54728000493367 ns/iter 228.01397938048626 ns/iter 0.84
URITemplateRouterView_Match_BasePath 197.74838653041596 ns/iter 242.93452727239296 ns/iter 0.81
URITemplateRouterView_Arguments 657.293087409629 ns/iter 772.7040837172215 ns/iter 0.85
JSONL_Parse_Large 10403868.893333007 ns/iter 15437723.155554928 ns/iter 0.67
JSONL_Parse_Large_GZIP 11788631.132353257 ns/iter 15766853.190473827 ns/iter 0.75
JSONLD_Catalog_Annotation_List_Populate 1320354.1965064714 ns/iter 1826709.691729326 ns/iter 0.72
JSONLD_Catalog_Materialize 3622979.857819567 ns/iter 5425129.562500075 ns/iter 0.67
HTML_Build_Table_100000 44612572.937495545 ns/iter 74734906.25000067 ns/iter 0.60
HTML_Render_Table_100000 2018877.4278480357 ns/iter 2924099.9683791883 ns/iter 0.69
GZIP_Compress_ISO_Language_Set_3_Locations 31151072.478263337 ns/iter 52116519.46666886 ns/iter 0.60
GZIP_Decompress_ISO_Language_Set_3_Locations 3748903.967914612 ns/iter 5688932.971014785 ns/iter 0.66
GZIP_Compress_ISO_Language_Set_3_Schema 2073931.728232322 ns/iter 2607691.1217392473 ns/iter 0.80
GZIP_Decompress_ISO_Language_Set_3_Schema 310540.4374106921 ns/iter 449751.4237845025 ns/iter 0.69
JOSE_VerifySignature_RS256 25275.096344390357 ns/iter 38325.81956810731 ns/iter 0.66
JOSE_VerifySignature_ES512 1140723.453177377 ns/iter 1652830.792682896 ns/iter 0.69

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

@github-actions github-actions 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.

Benchmark (linux/gcc)

Details
Benchmark suite Current: 2df2bb8 Previous: 950304f Ratio
JOSE_VerifySignature_RS256 22136.49099681465 ns/iter 19980.360359087463 ns/iter 1.11
JOSE_VerifySignature_ES512 575296.6655683288 ns/iter 438545.42875157285 ns/iter 1.31
GZIP_Compress_ISO_Language_Set_3_Locations 36312564.68421079 ns/iter 24295072.344827905 ns/iter 1.49
GZIP_Decompress_ISO_Language_Set_3_Locations 4192229.8143711756 ns/iter 3366212.0566035816 ns/iter 1.25
GZIP_Compress_ISO_Language_Set_3_Schema 2017304.838150293 ns/iter 1673832.1449632256 ns/iter 1.21
GZIP_Decompress_ISO_Language_Set_3_Schema 375924.18592153327 ns/iter 307664.95730636106 ns/iter 1.22
HTML_Build_Table_100000 57755945.33332651 ns/iter 52227846.23076502 ns/iter 1.11
HTML_Render_Table_100000 1797434.3256407967 ns/iter 2870215.971428739 ns/iter 0.63
JSONLD_Catalog_Annotation_List_Populate 1373260.9705305125 ns/iter 1195612.1274510243 ns/iter 1.15
JSONLD_Catalog_Materialize 4346199.364197583 ns/iter 3709792.3064514226 ns/iter 1.17
JSONL_Parse_Large 10250253.391304335 ns/iter 8668272.929412523 ns/iter 1.18
JSONL_Parse_Large_GZIP 11684155.183333663 ns/iter 9787577.726027947 ns/iter 1.19
URITemplateRouter_Create 30900.588789138576 ns/iter 24195.697294050056 ns/iter 1.28
URITemplateRouter_Match 157.3594575282901 ns/iter 144.17692376401655 ns/iter 1.09
URITemplateRouter_Match_BasePath 183.129504536072 ns/iter 170.65838812470355 ns/iter 1.07
URITemplateRouterView_Restore 8411.326743824435 ns/iter 3078.6812010871054 ns/iter 2.73
URITemplateRouterView_Match 125.28906027834242 ns/iter 101.5746948645844 ns/iter 1.23
URITemplateRouterView_Match_BasePath 143.40745062226426 ns/iter 116.30014375266633 ns/iter 1.23
URITemplateRouterView_Arguments 481.6984098848829 ns/iter 395.0618777280597 ns/iter 1.22
JSONPath_Descendant_Filter_Nested 1695.2608767174909 ns/iter 1212.775533698605 ns/iter 1.40
Pointer_Object_Traverse 23.311014439006172 ns/iter 19.219537415693022 ns/iter 1.21
Pointer_Object_Try_Traverse 26.520370062031052 ns/iter 23.949927056525826 ns/iter 1.11
Pointer_Push_Back_Pointer_To_Weak_Pointer 148.29301929079926 ns/iter 128.6746312586886 ns/iter 1.15
Pointer_Walker_Schema_ISO_Language 2649881.4612404373 ns/iter 2195665.6315786582 ns/iter 1.21
Pointer_Maybe_Tracked_Deeply_Nested/0 1191100.9507640086 ns/iter 1039865.8753754173 ns/iter 1.15
Pointer_Maybe_Tracked_Deeply_Nested/1 1751896.5012467199 ns/iter 1607315.3416290267 ns/iter 1.09
Pointer_Position_Tracker_Get_Deeply_Nested 395.91053532182565 ns/iter 403.488543886699 ns/iter 0.98
JSON_Array_Of_Objects_Unique 475.54875943448303 ns/iter 364.32060168862705 ns/iter 1.31
JSON_Parse_1 5446.550079429648 ns/iter 4326.877133869281 ns/iter 1.26
JSON_Parse_Real 5704.557123420263 ns/iter 4552.735172511806 ns/iter 1.25
JSON_Parse_Decimal 10398.827366449375 ns/iter 7106.422806101711 ns/iter 1.46
JSON_Parse_Schema_ISO_Language 3789663.903225735 ns/iter 3192144.5701355957 ns/iter 1.19
JSON_Parse_Integer 3815.329835766706 ns/iter 2937.5052784145473 ns/iter 1.30
JSON_Parse_String_NonSSO_Plain 5353.070447313932 ns/iter 4318.549259889005 ns/iter 1.24
JSON_Parse_String_SSO_Plain 3119.4603551615824 ns/iter 2426.8127516408913 ns/iter 1.29
JSON_Parse_String_Escape_Heavy 19878.408241819758 ns/iter 17521.479352349674 ns/iter 1.13
JSON_Parse_Object_Short_Keys 8819.270435861758 ns/iter 6993.151439729183 ns/iter 1.26
JSON_Parse_Object_Scalar_Properties 4531.025569120698 ns/iter 3627.887043903119 ns/iter 1.25
JSON_Parse_Object_Array_Properties 6767.817276900784 ns/iter 5702.339344109076 ns/iter 1.19
JSON_Parse_Object_Object_Properties 6888.807424776613 ns/iter 6023.463614213037 ns/iter 1.14
JSON_Parse_Nested_Containers 50053.078700000246 ns/iter 41538.441754469524 ns/iter 1.20
JSON_From_String_Copy 17.629010796412206 ns/iter 15.35412858668893 ns/iter 1.15
JSON_From_String_Temporary 15.105366597545563 ns/iter 12.548563883014614 ns/iter 1.20
JSON_Number_To_Double 20.887075802401245 ns/iter 20.19122985448429 ns/iter 1.03
JSON_Object_At_Last_Key/8 3.7514801011644927 ns/iter 4.94569446697203 ns/iter 0.76
JSON_Object_At_Last_Key/32 11.908144112610048 ns/iter 11.959933736917264 ns/iter 1.00
JSON_Object_At_Last_Key/128 48.62686761448854 ns/iter 45.60981316828884 ns/iter 1.07
JSON_Object_At_Last_Key/512 367.47481082882007 ns/iter 187.0889612023001 ns/iter 1.96
JSON_Fast_Hash_Helm_Chart_Lock 75.46051669510558 ns/iter 64.8980210800815 ns/iter 1.16
JSON_Equality_Helm_Chart_Lock 145.732095046854 ns/iter 116.1658856902522 ns/iter 1.25
JSON_Divisible_By_Decimal 264.5553957612421 ns/iter 225.2291571024834 ns/iter 1.17
JSON_String_Equal/10 5.426242093487951 ns/iter 4.877055731030601 ns/iter 1.11
JSON_String_Equal/100 6.037749997391779 ns/iter 5.718894353299079 ns/iter 1.06
JSON_String_Equal_Small_By_Perfect_Hash/10 0.6236037058215419 ns/iter 0.8445587893399541 ns/iter 0.74
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.194220968743192 ns/iter 15.396142483671452 ns/iter 1.64
JSON_String_Fast_Hash/10 2.6076301897540795 ns/iter 3.0153345093598363 ns/iter 0.86
JSON_String_Fast_Hash/100 2.610650184951661 ns/iter 3.1082857543637075 ns/iter 0.84
JSON_String_Key_Hash/10 1.2462069628318964 ns/iter 1.172633057122308 ns/iter 1.06
JSON_String_Key_Hash/100 12.457033277228998 ns/iter 11.601145564196242 ns/iter 1.07
JSON_Object_Defines_Miss_Same_Length 3.1163157915159743 ns/iter 3.028612038658019 ns/iter 1.03
JSON_Object_Defines_Miss_Too_Small 3.1122823081530178 ns/iter 3.125627595940819 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.1137442670824624 ns/iter 2.883021493138833 ns/iter 1.08
Regex_Lower_S_Or_Upper_S_Asterisk 0.6230698644188871 ns/iter 0.90073749114783 ns/iter 0.69
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.934240384493971 ns/iter 1.1885944961462982 ns/iter 0.79
Regex_Period_Asterisk 0.6230702380633419 ns/iter 0.8766908799890559 ns/iter 0.71
Regex_Group_Period_Asterisk_Group 0.9368511177280393 ns/iter 1.0976823459525937 ns/iter 0.85
Regex_Period_Plus 0.6227589162443469 ns/iter 0.878073942132899 ns/iter 0.71
Regex_Period 0.9340628085142278 ns/iter 1.1525891091634182 ns/iter 0.81
Regex_Caret_Period_Plus_Dollar 0.6238076349659439 ns/iter 0.8877531858806589 ns/iter 0.70
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9341397089511402 ns/iter 1.13773500618943 ns/iter 0.82
Regex_Caret_Period_Asterisk_Dollar 0.6228895874438526 ns/iter 0.8831422572099655 ns/iter 0.71
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.9365175764586136 ns/iter 1.1520567158192452 ns/iter 0.81
Regex_Caret_X_Hyphen 3.7483057329717684 ns/iter 2.889751739841967 ns/iter 1.30
Regex_Period_Md_Dollar 28.454072256537437 ns/iter 15.851077126325428 ns/iter 1.80
Regex_Caret_Slash_Period_Asterisk 4.045667085689665 ns/iter 2.8816195786010432 ns/iter 1.40
Regex_Caret_Period_Range_Dollar 1.5578566732353387 ns/iter 1.6684474071728206 ns/iter 0.93
Regex_Nested_Backtrack 37.914563757426926 ns/iter 31.874892923647078 ns/iter 1.19

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

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

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

All reported issues were addressed across 2 files (changes from recent commits).

Tip: Review your code locally with the cubic CLI to iterate faster.

Re-trigger cubic

Comment thread src/core/yaml/parser.h
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti
jviotti merged commit f3c981f into main Aug 13, 2026
13 checks passed
@jviotti
jviotti deleted the yaml-fixes branch August 13, 2026 16:38

@github-actions github-actions 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.

Benchmark (windows/msvc)

Details
Benchmark suite Current: 2df2bb8 Previous: 950304f Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.467496999999639 ns/iter 2.3792789035944955 ns/iter 2.30
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.098620535715018 ns/iter 2.424699439258064 ns/iter 2.10
Regex_Period_Asterisk 5.111679464286161 ns/iter 2.3951397294690793 ns/iter 2.13
Regex_Group_Period_Asterisk_Group 5.226924999999483 ns/iter 2.3749891714572073 ns/iter 2.20
Regex_Period_Plus 4.8550781358369575 ns/iter 2.6372549999994783 ns/iter 1.84
Regex_Period 5.118058000000474 ns/iter 2.545281359334285 ns/iter 2.01
Regex_Caret_Period_Plus_Dollar 4.902265000000625 ns/iter 2.5876648637603195 ns/iter 1.89
Regex_Caret_Group_Period_Plus_Group_Dollar 5.197966999999153 ns/iter 2.5450057142856104 ns/iter 2.04
Regex_Caret_Period_Asterisk_Dollar 5.3433670000003985 ns/iter 2.4003128571434575 ns/iter 2.23
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.173248862760471 ns/iter 2.4463971406727545 ns/iter 2.11
Regex_Caret_X_Hyphen 8.909385228081854 ns/iter 6.02580099999841 ns/iter 1.48
Regex_Period_Md_Dollar 44.4414703621292 ns/iter 30.041044665823126 ns/iter 1.48
Regex_Caret_Slash_Period_Asterisk 8.260531250000115 ns/iter 5.559544642855891 ns/iter 1.49
Regex_Caret_Period_Range_Dollar 6.048591071429346 ns/iter 3.3195834426865227 ns/iter 1.82
Regex_Nested_Backtrack 55.14259999999923 ns/iter 42.13797686715302 ns/iter 1.31
JSON_Array_Of_Objects_Unique 589.6169642858646 ns/iter 470.26068375774156 ns/iter 1.25
JSON_Parse_1 8929.16951263566 ns/iter 8190.76116071571 ns/iter 1.09
JSON_Parse_Real 16095.100446423974 ns/iter 11573.585385780938 ns/iter 1.39
JSON_Parse_Decimal 11887.853124999738 ns/iter 9153.482796950813 ns/iter 1.30
JSON_Parse_Schema_ISO_Language 8141253.33333272 ns/iter 7875633.333333099 ns/iter 1.03
JSON_Parse_Integer 6206.670999999916 ns/iter 4616.087854326291 ns/iter 1.34
JSON_Parse_String_NonSSO_Plain 7956.316964286003 ns/iter 6845.777901785612 ns/iter 1.16
JSON_Parse_String_SSO_Plain 3724.4987062529726 ns/iter 2783.318668161075 ns/iter 1.34
JSON_Parse_String_Escape_Heavy 22224.037499995575 ns/iter 22649.767860250242 ns/iter 0.98
JSON_Parse_Object_Short_Keys 13206.650000000764 ns/iter 9382.948290408429 ns/iter 1.41
JSON_Parse_Object_Scalar_Properties 6925.889508929219 ns/iter 4920.506999999361 ns/iter 1.41
JSON_Parse_Object_Array_Properties 11353.160714285033 ns/iter 8884.654017857129 ns/iter 1.28
JSON_Parse_Object_Object_Properties 11602.501562499867 ns/iter 8831.073968418066 ns/iter 1.31
JSON_Parse_Nested_Containers 78866.41071428763 ns/iter 65285.7767857183 ns/iter 1.21
JSON_From_String_Copy 64.62692857143436 ns/iter 48.06219080497166 ns/iter 1.34
JSON_From_String_Temporary 59.18202999998812 ns/iter 53.74656999999843 ns/iter 1.10
JSON_Number_To_Double 123.4204821428518 ns/iter 85.67096938969286 ns/iter 1.44
JSON_Object_At_Last_Key/8 7.256316964285604 ns/iter 6.752353794643134 ns/iter 1.07
JSON_Object_At_Last_Key/32 23.562488576313402 ns/iter 20.90498688711692 ns/iter 1.13
JSON_Object_At_Last_Key/128 92.22428159712106 ns/iter 94.0617949079464 ns/iter 0.98
JSON_Object_At_Last_Key/512 426.68517142360605 ns/iter 326.5139732143041 ns/iter 1.31
JSON_Fast_Hash_Helm_Chart_Lock 103.24696874999262 ns/iter 68.440080357135 ns/iter 1.51
JSON_Equality_Helm_Chart_Lock 212.25281864946493 ns/iter 224.0810625000478 ns/iter 0.95
JSON_Divisible_By_Decimal 304.0136647305545 ns/iter 263.4905631022149 ns/iter 1.15
JSON_String_Equal/10 10.462887499997464 ns/iter 8.845678085509178 ns/iter 1.18
JSON_String_Equal/100 11.769464285716172 ns/iter 11.521878124998608 ns/iter 1.02
JSON_String_Equal_Small_By_Perfect_Hash/10 2.5304607142857094 ns/iter 1.4935511160716024 ns/iter 1.69
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 15.092254464284288 ns/iter 9.170744155489876 ns/iter 1.65
JSON_String_Fast_Hash/10 6.596950000000562 ns/iter 3.1812026785717404 ns/iter 2.07
JSON_String_Fast_Hash/100 6.595619642857693 ns/iter 3.111009375000354 ns/iter 2.12
JSON_String_Key_Hash/10 5.362248000001273 ns/iter 2.6372985256087578 ns/iter 2.03
JSON_String_Key_Hash/100 11.891587499998682 ns/iter 7.497837053571336 ns/iter 1.59
JSON_Object_Defines_Miss_Same_Length 3.8162169574706746 ns/iter 3.830162784193616 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 4.0849267483663905 ns/iter 3.6898253348218093 ns/iter 1.11
JSON_Object_Defines_Miss_Too_Large 3.7751010044636706 ns/iter 3.8078504464283167 ns/iter 0.99
Pointer_Object_Traverse 67.90531250000446 ns/iter 49.252239938656274 ns/iter 1.38
Pointer_Object_Try_Traverse 71.55827008928283 ns/iter 54.52707000001737 ns/iter 1.31
Pointer_Push_Back_Pointer_To_Weak_Pointer 177.62170162644006 ns/iter 190.65491880850314 ns/iter 0.93
Pointer_Walker_Schema_ISO_Language 11023337.500002839 ns/iter 11616973.43749779 ns/iter 0.95
Pointer_Maybe_Tracked_Deeply_Nested/0 2469052.6104414715 ns/iter 2198929.431438122 ns/iter 1.12
Pointer_Maybe_Tracked_Deeply_Nested/1 3739518.1818178594 ns/iter 4047103.0120481527 ns/iter 0.92
Pointer_Position_Tracker_Get_Deeply_Nested 562.7069642855531 ns/iter 513.158900734994 ns/iter 1.10
JSONPath_Descendant_Filter_Nested 2468.3409951551375 ns/iter 1915.9506392416706 ns/iter 1.29
URITemplateRouter_Create 41416.77213282387 ns/iter 38859.007874862036 ns/iter 1.07
URITemplateRouter_Match 236.92527489671534 ns/iter 247.1507187500066 ns/iter 0.96
URITemplateRouter_Match_BasePath 267.319889166097 ns/iter 282.77379464287026 ns/iter 0.95
URITemplateRouterView_Restore 33676.075572435024 ns/iter 26868.825585600345 ns/iter 1.25
URITemplateRouterView_Match 183.50578645064445 ns/iter 175.30927066807007 ns/iter 1.05
URITemplateRouterView_Match_BasePath 209.28719378182478 ns/iter 193.94757981669136 ns/iter 1.08
URITemplateRouterView_Arguments 547.8309821429303 ns/iter 461.4345000000241 ns/iter 1.19
JSONL_Parse_Large 32722866.66665856 ns/iter 26701419.99999942 ns/iter 1.23
JSONL_Parse_Large_GZIP 33534790.47619398 ns/iter 27295379.99999593 ns/iter 1.23
JSONLD_Catalog_Annotation_List_Populate 3152437.4999999544 ns/iter 3139310.267856997 ns/iter 1.00
JSONLD_Catalog_Materialize 8643385.555557061 ns/iter 8183404.444445033 ns/iter 1.06
HTML_Build_Table_100000 93545542.85713287 ns/iter 95570357.14283301 ns/iter 0.98
HTML_Render_Table_100000 7730342.22222072 ns/iter 12252037.49999894 ns/iter 0.63
GZIP_Compress_ISO_Language_Set_3_Locations 35643105.00000829 ns/iter 33830315.00000016 ns/iter 1.05
GZIP_Decompress_ISO_Language_Set_3_Locations 10055131.249998795 ns/iter 12093499.999999885 ns/iter 0.83
GZIP_Compress_ISO_Language_Set_3_Schema 2091208.4374998584 ns/iter 2039798.5507249846 ns/iter 1.03
GZIP_Decompress_ISO_Language_Set_3_Schema 628205.2678571404 ns/iter 641640.8035714686 ns/iter 0.98
JOSE_VerifySignature_RS256 21958.89374999638 ns/iter 20210.46950264283 ns/iter 1.09
JOSE_VerifySignature_ES512 1430108.4337348475 ns/iter 1207294.2857141048 ns/iter 1.18

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