Skip to content

Add the concept of regex dialects to to_regex#2619

Merged
jviotti merged 1 commit into
mainfrom
regex-dialect-enum
Jul 9, 2026
Merged

Add the concept of regex dialects to to_regex#2619
jviotti merged 1 commit into
mainfrom
regex-dialect-enum

Conversation

@jviotti

@jviotti jviotti commented Jul 9, 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>
@jviotti jviotti force-pushed the regex-dialect-enum branch from 31aae49 to 25b09af Compare July 9, 2026 22:05
@augmentcode

augmentcode Bot commented Jul 9, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: This PR adds an explicit “regex dialect” concept to the core regex API so callers can choose how patterns are interpreted.

Changes:

  • Introduces RegexDialect (currently only Permissive is defined).
  • Extends to_regex(pattern) to to_regex(pattern, dialect), defaulting to Permissive for backwards-compatible call sites.
  • Extends matches_if_valid(pattern, value) to accept/forward an optional dialect as well.
  • Updates the to_regex documentation to describe permissive-mode assumptions (e.g., DOTALL behavior).
  • Renames and adjusts the ECMA-262 / RFC 9485 matching test sources to explicitly target the permissive dialect.

Notes: The dialect argument is currently a no-op in the implementation (consistent with only one dialect existing today), but the API surface is now ready for additional dialects later.

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

@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. 2 suggestions posted.

Fix All in Augment

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

Comment thread src/core/regex/include/sourcemeta/core/regex.h
Comment thread src/core/regex/include/sourcemeta/core/regex.h

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

@jviotti jviotti merged commit 7cf53c9 into main Jul 9, 2026
11 checks passed
@jviotti jviotti deleted the regex-dialect-enum branch July 9, 2026 22:11

@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: 25b09af Previous: 367f6ef Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 1.8106176359464863 ns/iter 1.7553658732721293 ns/iter 1.03
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.20055580622388 ns/iter 1.7455176477260252 ns/iter 1.26
Regex_Period_Asterisk 1.9858357327236327 ns/iter 1.7499882987533069 ns/iter 1.13
Regex_Group_Period_Asterisk_Group 1.7012757165495305 ns/iter 1.9281889463038555 ns/iter 0.88
Regex_Period_Plus 2.237159000673483 ns/iter 2.394350964674121 ns/iter 0.93
Regex_Period 2.0418177744269412 ns/iter 2.468625991734782 ns/iter 0.83
Regex_Caret_Period_Plus_Dollar 2.1667310695147983 ns/iter 2.17588878753493 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 2.0765632851579485 ns/iter 2.1818353553940466 ns/iter 0.95
Regex_Caret_Period_Asterisk_Dollar 1.7327508570005583 ns/iter 1.7297925924959368 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 1.8036069155484638 ns/iter 1.7497657721181354 ns/iter 1.03
Regex_Caret_X_Hyphen 6.013518737257748 ns/iter 6.118001778910527 ns/iter 0.98
Regex_Period_Md_Dollar 17.098591042315192 ns/iter 18.23489052223741 ns/iter 0.94
Regex_Caret_Slash_Period_Asterisk 4.840052155826586 ns/iter 5.079958585967412 ns/iter 0.95
Regex_Caret_Period_Range_Dollar 2.1177981916662816 ns/iter 2.2046778392783066 ns/iter 0.96
Regex_Nested_Backtrack 25.816517260393418 ns/iter 33.63032972303279 ns/iter 0.77
JSON_Array_Of_Objects_Unique 348.03066316253 ns/iter 507.3069229680822 ns/iter 0.69
JSON_Parse_1 3681.960513337235 ns/iter 9160.1693811483 ns/iter 0.40
JSON_Parse_Real 5179.224889092205 ns/iter 9980.037838850069 ns/iter 0.52
JSON_Parse_Decimal 5985.1742067441555 ns/iter 9856.776907920965 ns/iter 0.61
JSON_Parse_Schema_ISO_Language 3159122.0204080977 ns/iter 4685469.6993027795 ns/iter 0.67
JSON_Parse_Integer 3038.202521160859 ns/iter 5469.80000000076 ns/iter 0.56
JSON_Parse_String_NonSSO_Plain 3524.5398773006705 ns/iter 8736.348263755344 ns/iter 0.40
JSON_Parse_String_SSO_Plain 1740.2845110255973 ns/iter 3396.981979565658 ns/iter 0.51
JSON_Parse_String_Escape_Heavy 20195.225672350487 ns/iter 26304.05945737086 ns/iter 0.77
JSON_Parse_Object_Short_Keys 5650.677570299578 ns/iter 9847.523746317067 ns/iter 0.57
JSON_Parse_Object_Scalar_Properties 3104.5678912443127 ns/iter 4950.379201798641 ns/iter 0.63
JSON_Parse_Object_Array_Properties 3807.6434987559064 ns/iter 7972.4777721072605 ns/iter 0.48
JSON_Parse_Object_Object_Properties 3937.389942231189 ns/iter 8863.847214963045 ns/iter 0.44
JSON_Parse_Nested_Containers 27926.31063369611 ns/iter 77994.09220598517 ns/iter 0.36
JSON_From_String_Copy 28.35495267907283 ns/iter 29.601501494971814 ns/iter 0.96
JSON_From_String_Temporary 29.896624993944602 ns/iter 25.537032072667056 ns/iter 1.17
JSON_Number_To_Double 36.769363885178215 ns/iter 51.52226250002059 ns/iter 0.71
JSON_Object_At_Last_Key/8 4.462961848716961 ns/iter 5.430922305387144 ns/iter 0.82
JSON_Object_At_Last_Key/32 14.21509108409054 ns/iter 14.523217435514384 ns/iter 0.98
JSON_Object_At_Last_Key/128 59.542890974503344 ns/iter 62.382372066555696 ns/iter 0.95
JSON_Object_At_Last_Key/512 189.65164278591445 ns/iter 214.63889754873063 ns/iter 0.88
JSON_Fast_Hash_Helm_Chart_Lock 66.78900874657045 ns/iter 67.08826055653215 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 142.92608151996535 ns/iter 157.93128660650925 ns/iter 0.90
JSON_Divisible_By_Decimal 201.77209505332107 ns/iter 211.68079494862417 ns/iter 0.95
JSON_String_Equal/10 6.991896991672346 ns/iter 7.98946930991054 ns/iter 0.88
JSON_String_Equal/100 7.035188171273516 ns/iter 7.300503720053014 ns/iter 0.96
JSON_String_Equal_Small_By_Perfect_Hash/10 0.8132479150685287 ns/iter 0.3567602895460574 ns/iter 2.28
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 3.891695783172489 ns/iter 3.516589721354848 ns/iter 1.11
JSON_String_Fast_Hash/10 2.625822786985299 ns/iter 2.8079535054708322 ns/iter 0.94
JSON_String_Fast_Hash/100 2.189888058969701 ns/iter 2.7191383575513135 ns/iter 0.81
JSON_String_Key_Hash/10 1.4304462641161555 ns/iter 2.3325752807341367 ns/iter 0.61
JSON_String_Key_Hash/100 2.016089835425265 ns/iter 2.5740102491444663 ns/iter 0.78
JSON_Object_Defines_Miss_Same_Length 2.691388050946836 ns/iter 3.202287634596945 ns/iter 0.84
JSON_Object_Defines_Miss_Too_Small 2.8954013321639964 ns/iter 3.186580716900893 ns/iter 0.91
JSON_Object_Defines_Miss_Too_Large 2.705272036754779 ns/iter 3.061484301407403 ns/iter 0.88
Pointer_Object_Traverse 19.520909859344833 ns/iter 27.787158030801944 ns/iter 0.70
Pointer_Object_Try_Traverse 26.218783287948405 ns/iter 30.072001516266916 ns/iter 0.87
Pointer_Push_Back_Pointer_To_Weak_Pointer 146.7709613205419 ns/iter 166.8157475588646 ns/iter 0.88
Pointer_Walker_Schema_ISO_Language 3775291.8672986287 ns/iter 2916311.8860760964 ns/iter 1.29
Pointer_Maybe_Tracked_Deeply_Nested/0 821709.6290322823 ns/iter 1366032.656964924 ns/iter 0.60
Pointer_Maybe_Tracked_Deeply_Nested/1 1153293.6217850756 ns/iter 1161109.8169716492 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 404.19694554108423 ns/iter 494.02844242657164 ns/iter 0.82
URITemplateRouter_Create 22589.247962031008 ns/iter 36370.793556529556 ns/iter 0.62
URITemplateRouter_Match 156.3741830231266 ns/iter 192.03381668647023 ns/iter 0.81
URITemplateRouter_Match_BasePath 181.48842100030086 ns/iter 202.41926966597634 ns/iter 0.90
URITemplateRouterView_Restore 9508.938194418084 ns/iter 10506.22709420965 ns/iter 0.91
URITemplateRouterView_Match 123.42864096694507 ns/iter 155.88828627228904 ns/iter 0.79
URITemplateRouterView_Match_BasePath 140.66346567576 ns/iter 204.06518851544627 ns/iter 0.69
URITemplateRouterView_Arguments 373.74455848145135 ns/iter 757.9622491325817 ns/iter 0.49
JSONL_Parse_Large 12083804.435482923 ns/iter 16429561.111110363 ns/iter 0.74
JSONL_Parse_Large_GZIP 12211209.070175612 ns/iter 14781056.437499275 ns/iter 0.83
JSONLD_Catalog_Annotation_List_Populate 852043.6219035336 ns/iter 1030804.9295776406 ns/iter 0.83
JSONLD_Catalog_Materialize 2660733.8037738716 ns/iter 5936457.702291105 ns/iter 0.45
HTML_Build_Table_100000 61638303.090903305 ns/iter 42673922.20002269 ns/iter 1.44
HTML_Render_Table_100000 2284122.891696398 ns/iter 2565435.91101837 ns/iter 0.89
GZIP_Compress_ISO_Language_Set_3_Locations 24800815.500002824 ns/iter 36828397.90001254 ns/iter 0.67
GZIP_Decompress_ISO_Language_Set_3_Locations 4751638.485294219 ns/iter 3933978.4482752755 ns/iter 1.21
GZIP_Compress_ISO_Language_Set_3_Schema 1404123.31515145 ns/iter 1858340.260546345 ns/iter 0.76
GZIP_Decompress_ISO_Language_Set_3_Schema 257167.69188392363 ns/iter 335674.9486617169 ns/iter 0.77
JOSE_VerifySignature_RS256 21604.547370092198 ns/iter 27111.60177600351 ns/iter 0.80
JOSE_VerifySignature_ES512 1046650.630901429 ns/iter 1319645.7555548274 ns/iter 0.79

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: 25b09af Previous: 367f6ef Ratio
JOSE_VerifySignature_RS256 22475.577397390996 ns/iter 22013.63750039524 ns/iter 1.02
JOSE_VerifySignature_ES512 578369.4089035506 ns/iter 575361.1376752012 ns/iter 1.01
GZIP_Compress_ISO_Language_Set_3_Locations 36487011.63158301 ns/iter 36372614.10526542 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Locations 4376300.459119553 ns/iter 4376195.425000163 ns/iter 1.00
GZIP_Compress_ISO_Language_Set_3_Schema 2025326.686956417 ns/iter 2016153.3959537463 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 380986.01143168693 ns/iter 380116.6735582033 ns/iter 1.00
HTML_Build_Table_100000 76421252.88888717 ns/iter 60279994.2499909 ns/iter 1.27
HTML_Render_Table_100000 1822376.6057441721 ns/iter 1835212.4999999348 ns/iter 0.99
JSONLD_Catalog_Annotation_List_Populate 1331836.4509432458 ns/iter 1327621.022684227 ns/iter 1.00
JSONLD_Catalog_Materialize 6825067.345795173 ns/iter 6768589.552380686 ns/iter 1.01
JSONL_Parse_Large 13736212.333333688 ns/iter 13439489.961539354 ns/iter 1.02
JSONL_Parse_Large_GZIP 15069325.804349972 ns/iter 14901535.021275526 ns/iter 1.01
URITemplateRouter_Create 30093.617308850295 ns/iter 30298.207070923378 ns/iter 0.99
URITemplateRouter_Match 154.2327449445264 ns/iter 159.63728333147264 ns/iter 0.97
URITemplateRouter_Match_BasePath 180.0372009541239 ns/iter 188.55690299234755 ns/iter 0.95
URITemplateRouterView_Restore 8557.719459946698 ns/iter 8339.320203870779 ns/iter 1.03
URITemplateRouterView_Match 122.72306615529214 ns/iter 123.34460647902004 ns/iter 0.99
URITemplateRouterView_Match_BasePath 144.10801727390472 ns/iter 142.1201820923303 ns/iter 1.01
URITemplateRouterView_Arguments 469.3328889485232 ns/iter 484.3210048675189 ns/iter 0.97
Pointer_Object_Traverse 31.053133894798943 ns/iter 30.81906562529856 ns/iter 1.01
Pointer_Object_Try_Traverse 22.72330266535975 ns/iter 22.76022223372298 ns/iter 1.00
Pointer_Push_Back_Pointer_To_Weak_Pointer 161.97323329011192 ns/iter 167.65515119693222 ns/iter 0.97
Pointer_Walker_Schema_ISO_Language 2743097.1818183777 ns/iter 2621693.7232475574 ns/iter 1.05
Pointer_Maybe_Tracked_Deeply_Nested/0 1807918.455497547 ns/iter 1838584.0296495415 ns/iter 0.98
Pointer_Maybe_Tracked_Deeply_Nested/1 1719573.2933987086 ns/iter 1742400.8391088536 ns/iter 0.99
Pointer_Position_Tracker_Get_Deeply_Nested 405.4282966733812 ns/iter 534.918583165993 ns/iter 0.76
JSON_Array_Of_Objects_Unique 462.2646480283388 ns/iter 429.2028185914142 ns/iter 1.08
JSON_Parse_1 9616.13376841867 ns/iter 9902.374395932782 ns/iter 0.97
JSON_Parse_Real 7658.84076265931 ns/iter 7698.066364145704 ns/iter 0.99
JSON_Parse_Decimal 12449.075183168554 ns/iter 12599.273522583891 ns/iter 0.99
JSON_Parse_Schema_ISO_Language 6603693.452830758 ns/iter 6551507.351852488 ns/iter 1.01
JSON_Parse_Integer 5741.085468330369 ns/iter 5675.640968092103 ns/iter 1.01
JSON_Parse_String_NonSSO_Plain 12449.704274901742 ns/iter 12209.947688799795 ns/iter 1.02
JSON_Parse_String_SSO_Plain 5104.718969657569 ns/iter 4689.69366834191 ns/iter 1.09
JSON_Parse_String_Escape_Heavy 26885.10817860858 ns/iter 25910.55963234754 ns/iter 1.04
JSON_Parse_Object_Short_Keys 13430.423978681241 ns/iter 13578.593026645462 ns/iter 0.99
JSON_Parse_Object_Scalar_Properties 6872.062232853542 ns/iter 6946.64220511871 ns/iter 0.99
JSON_Parse_Object_Array_Properties 11392.280887166147 ns/iter 12037.30346746371 ns/iter 0.95
JSON_Parse_Object_Object_Properties 11592.117188798293 ns/iter 11956.846688518957 ns/iter 0.97
JSON_Parse_Nested_Containers 96962.91825462892 ns/iter 99563.50366998333 ns/iter 0.97
JSON_From_String_Copy 17.46934005635359 ns/iter 18.099708096759628 ns/iter 0.97
JSON_From_String_Temporary 15.213702470882742 ns/iter 15.136113859765896 ns/iter 1.01
JSON_Number_To_Double 20.916956803224934 ns/iter 20.901547091726254 ns/iter 1.00
JSON_Object_At_Last_Key/8 5.926115514326993 ns/iter 5.925029073301035 ns/iter 1.00
JSON_Object_At_Last_Key/32 21.8577918877122 ns/iter 21.815458723042852 ns/iter 1.00
JSON_Object_At_Last_Key/128 87.56632972972143 ns/iter 87.63039700416239 ns/iter 1.00
JSON_Object_At_Last_Key/512 402.53577650796746 ns/iter 401.0533082052509 ns/iter 1.00
JSON_Fast_Hash_Helm_Chart_Lock 61.88622706009027 ns/iter 62.09062972731767 ns/iter 1.00
JSON_Equality_Helm_Chart_Lock 173.42106735858545 ns/iter 170.67474493830582 ns/iter 1.02
JSON_Divisible_By_Decimal 248.07695818562357 ns/iter 249.48762720002918 ns/iter 0.99
JSON_String_Equal/10 6.179123166914751 ns/iter 6.061898491445567 ns/iter 1.02
JSON_String_Equal/100 6.668782602517245 ns/iter 6.666381536209286 ns/iter 1.00
JSON_String_Equal_Small_By_Perfect_Hash/10 0.7400058801976721 ns/iter 0.7403617312843916 ns/iter 1.00
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 25.22545703275435 ns/iter 25.195771310596786 ns/iter 1.00
JSON_String_Fast_Hash/10 2.263049459525028 ns/iter 2.2947437146207212 ns/iter 0.99
JSON_String_Fast_Hash/100 2.264141629410686 ns/iter 2.2944004137337535 ns/iter 0.99
JSON_String_Key_Hash/10 1.2828430326822748 ns/iter 1.2465453797583173 ns/iter 1.03
JSON_String_Key_Hash/100 12.454386110108338 ns/iter 12.453298442064586 ns/iter 1.00
JSON_Object_Defines_Miss_Same_Length 3.1211366960892417 ns/iter 3.1133670917963006 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Small 3.117515204818906 ns/iter 3.113964664262954 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 3.444322152946317 ns/iter 3.423893350277841 ns/iter 1.01
Regex_Lower_S_Or_Upper_S_Asterisk 0.6231476326754379 ns/iter 0.6250997092857805 ns/iter 1.00
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 0.9354030674439968 ns/iter 0.935335767542576 ns/iter 1.00
Regex_Period_Asterisk 0.6232831763636437 ns/iter 0.6225803106264897 ns/iter 1.00
Regex_Group_Period_Asterisk_Group 0.9427046679093647 ns/iter 0.941311407974191 ns/iter 1.00
Regex_Period_Plus 0.6230641463549423 ns/iter 0.622198800126182 ns/iter 1.00
Regex_Period 0.9352931826993885 ns/iter 0.9338258556531659 ns/iter 1.00
Regex_Caret_Period_Plus_Dollar 0.6231574343003894 ns/iter 0.6226014454731402 ns/iter 1.00
Regex_Caret_Group_Period_Plus_Group_Dollar 0.9339288131743471 ns/iter 0.9338326101069574 ns/iter 1.00
Regex_Caret_Period_Asterisk_Dollar 0.6233304617485476 ns/iter 0.623189011459665 ns/iter 1.00
Regex_Caret_Group_Period_Asterisk_Group_Dollar 0.9347535615769261 ns/iter 0.9346067952076762 ns/iter 1.00
Regex_Caret_X_Hyphen 3.741342372057354 ns/iter 3.7458327782915113 ns/iter 1.00
Regex_Period_Md_Dollar 28.637302270854168 ns/iter 28.97201388514184 ns/iter 0.99
Regex_Caret_Slash_Period_Asterisk 4.046156954142047 ns/iter 4.045633938912747 ns/iter 1.00
Regex_Caret_Period_Range_Dollar 1.5577267887364055 ns/iter 1.5566688459088052 ns/iter 1.00
Regex_Nested_Backtrack 37.790841932482074 ns/iter 37.76689477911594 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 (linux/llvm)

Details
Benchmark suite Current: 25b09af Previous: 367f6ef Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 2.1859092966380818 ns/iter 2.1571118187046916 ns/iter 1.01
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 2.18250827521468 ns/iter 2.147680467130217 ns/iter 1.02
Regex_Period_Asterisk 2.2345069248856717 ns/iter 2.1756663503778215 ns/iter 1.03
Regex_Group_Period_Asterisk_Group 2.1871251356891284 ns/iter 2.1521530199733445 ns/iter 1.02
Regex_Period_Plus 2.490953987816554 ns/iter 2.081437777680916 ns/iter 1.20
Regex_Period 2.4898032737616376 ns/iter 2.100867740526169 ns/iter 1.19
Regex_Caret_Period_Plus_Dollar 2.8014713837491265 ns/iter 2.175156603103565 ns/iter 1.29
Regex_Caret_Group_Period_Plus_Group_Dollar 2.8023745164143548 ns/iter 2.0631090001052197 ns/iter 1.36
Regex_Caret_Period_Asterisk_Dollar 3.110637756258779 ns/iter 2.1141141827364622 ns/iter 1.47
Regex_Caret_Group_Period_Asterisk_Group_Dollar 3.1103005776525956 ns/iter 2.1523256374625284 ns/iter 1.45
Regex_Caret_X_Hyphen 6.8542480817842915 ns/iter 4.03582076597308 ns/iter 1.70
Regex_Period_Md_Dollar 28.565549673475164 ns/iter 24.631547226056288 ns/iter 1.16
Regex_Caret_Slash_Period_Asterisk 6.851932511019277 ns/iter 3.7491786327976313 ns/iter 1.83
Regex_Caret_Period_Range_Dollar 4.0475309114564855 ns/iter 2.315990513969119 ns/iter 1.75
Regex_Nested_Backtrack 38.586275488629965 ns/iter 35.27756274491684 ns/iter 1.09
JSON_Array_Of_Objects_Unique 474.0369814029267 ns/iter 375.27533554375265 ns/iter 1.26
JSON_Parse_1 5007.367744742925 ns/iter 4557.070754226518 ns/iter 1.10
JSON_Parse_Real 5304.669740304281 ns/iter 4731.0369105310765 ns/iter 1.12
JSON_Parse_Decimal 9437.6575836596 ns/iter 7517.840742218681 ns/iter 1.26
JSON_Parse_Schema_ISO_Language 3515365.9004976843 ns/iter 3270186.9395348397 ns/iter 1.07
JSON_Parse_Integer 3859.8182615072906 ns/iter 3764.3809942240887 ns/iter 1.03
JSON_Parse_String_NonSSO_Plain 4936.53808908721 ns/iter 4570.9915134929415 ns/iter 1.08
JSON_Parse_String_SSO_Plain 2717.0135646563012 ns/iter 2281.5847872328886 ns/iter 1.19
JSON_Parse_String_Escape_Heavy 14647.313252268406 ns/iter 16489.029372148314 ns/iter 0.89
JSON_Parse_Object_Short_Keys 10595.224109412888 ns/iter 7054.68708769207 ns/iter 1.50
JSON_Parse_Object_Scalar_Properties 4111.0856182646185 ns/iter 3694.928385224159 ns/iter 1.11
JSON_Parse_Object_Array_Properties 5788.890787070062 ns/iter 5029.718321936677 ns/iter 1.15
JSON_Parse_Object_Object_Properties 5693.304418771466 ns/iter 4961.290919150957 ns/iter 1.15
JSON_Parse_Nested_Containers 45328.61354658874 ns/iter 41406.99384032507 ns/iter 1.09
JSON_From_String_Copy 19.624873050727675 ns/iter 15.528269009697299 ns/iter 1.26
JSON_From_String_Temporary 17.14559630816292 ns/iter 15.734216059080643 ns/iter 1.09
JSON_Number_To_Double 23.30161318515311 ns/iter 20.256317577154547 ns/iter 1.15
JSON_Object_At_Last_Key/8 3.8453583961585056 ns/iter 4.956812785293392 ns/iter 0.78
JSON_Object_At_Last_Key/32 12.476822926908538 ns/iter 17.986964540808035 ns/iter 0.69
JSON_Object_At_Last_Key/128 54.488839848290496 ns/iter 73.94416338131575 ns/iter 0.74
JSON_Object_At_Last_Key/512 399.50129470409126 ns/iter 306.35026732116125 ns/iter 1.30
JSON_Fast_Hash_Helm_Chart_Lock 64.97916130525614 ns/iter 49.557280604043676 ns/iter 1.31
JSON_Equality_Helm_Chart_Lock 161.51734124057856 ns/iter 126.65904219012721 ns/iter 1.28
JSON_Divisible_By_Decimal 253.92259871443625 ns/iter 256.16048880671326 ns/iter 0.99
JSON_String_Equal/10 6.239162425665412 ns/iter 4.610587650474878 ns/iter 1.35
JSON_String_Equal/100 6.855428920643847 ns/iter 5.775159209483473 ns/iter 1.19
JSON_String_Equal_Small_By_Perfect_Hash/10 0.9360553694915599 ns/iter 0.6935270150301667 ns/iter 1.35
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 10.581986821462309 ns/iter 9.798054238946758 ns/iter 1.08
JSON_String_Fast_Hash/10 2.1866546783421965 ns/iter 1.7404854354958008 ns/iter 1.26
JSON_String_Fast_Hash/100 2.1802865263036506 ns/iter 1.791508066734523 ns/iter 1.22
JSON_String_Key_Hash/10 2.1820179398180284 ns/iter 1.7302181578669045 ns/iter 1.26
JSON_String_Key_Hash/100 6.539258362791366 ns/iter 6.7462759230539024 ns/iter 0.97
JSON_Object_Defines_Miss_Same_Length 2.6433993800477684 ns/iter 3.0272468332718008 ns/iter 0.87
JSON_Object_Defines_Miss_Too_Small 2.6227309097379288 ns/iter 3.4625581094411872 ns/iter 0.76
JSON_Object_Defines_Miss_Too_Large 3.4257801043686205 ns/iter 3.9518452719773274 ns/iter 0.87
Pointer_Object_Traverse 28.59921429235351 ns/iter 29.81083927604788 ns/iter 0.96
Pointer_Object_Try_Traverse 30.918128114144363 ns/iter 36.86705011570261 ns/iter 0.84
Pointer_Push_Back_Pointer_To_Weak_Pointer 168.7022297470326 ns/iter 165.1233252451327 ns/iter 1.02
Pointer_Walker_Schema_ISO_Language 2667110.2137404415 ns/iter 2677493.0426355707 ns/iter 1.00
Pointer_Maybe_Tracked_Deeply_Nested/0 1241030.8465607362 ns/iter 1149639.5274192647 ns/iter 1.08
Pointer_Maybe_Tracked_Deeply_Nested/1 1604391.6589859908 ns/iter 1947741.0027778635 ns/iter 0.82
Pointer_Position_Tracker_Get_Deeply_Nested 687.7397194233813 ns/iter 699.4155418229304 ns/iter 0.98
URITemplateRouter_Create 31824.20687454466 ns/iter 29311.690214194725 ns/iter 1.09
URITemplateRouter_Match 174.9516852574435 ns/iter 144.05153417944274 ns/iter 1.21
URITemplateRouter_Match_BasePath 203.89883130092232 ns/iter 159.8309906811015 ns/iter 1.28
URITemplateRouterView_Restore 8265.736329718386 ns/iter 3828.9468741230585 ns/iter 2.16
URITemplateRouterView_Match 145.37796397441298 ns/iter 127.54914162421476 ns/iter 1.14
URITemplateRouterView_Match_BasePath 164.32997934834094 ns/iter 143.9316519961126 ns/iter 1.14
URITemplateRouterView_Arguments 429.7304835687215 ns/iter 431.72849682186575 ns/iter 1.00
JSONL_Parse_Large 9423897.027026264 ns/iter 8869366.392404221 ns/iter 1.06
JSONL_Parse_Large_GZIP 11023156.703124925 ns/iter 10434271.647058574 ns/iter 1.06
JSONLD_Catalog_Annotation_List_Populate 1266587.7709090721 ns/iter 1211881.5493934355 ns/iter 1.05
JSONLD_Catalog_Materialize 4190287.7844309662 ns/iter 4061003.4399995646 ns/iter 1.03
HTML_Build_Table_100000 67879938.59999232 ns/iter 71109643.90000163 ns/iter 0.95
HTML_Render_Table_100000 5174236.932836224 ns/iter 10521420.680554962 ns/iter 0.49
GZIP_Compress_ISO_Language_Set_3_Locations 33076773.809528146 ns/iter 30764368.34782192 ns/iter 1.08
GZIP_Decompress_ISO_Language_Set_3_Locations 4066826.656977027 ns/iter 5876781.884297103 ns/iter 0.69
GZIP_Compress_ISO_Language_Set_3_Schema 1877194.370967538 ns/iter 1869955.1733334372 ns/iter 1.00
GZIP_Decompress_ISO_Language_Set_3_Schema 354143.0212443237 ns/iter 333979.0473231407 ns/iter 1.06
JOSE_VerifySignature_RS256 60351.79794224391 ns/iter 49218.533473973264 ns/iter 1.23
JOSE_VerifySignature_ES512 2460215.912587462 ns/iter 2119170.763636579 ns/iter 1.16

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

Details
Benchmark suite Current: 25b09af Previous: 367f6ef Ratio
Regex_Lower_S_Or_Upper_S_Asterisk 5.015871273441115 ns/iter 2.8765209362164033 ns/iter 1.74
Regex_Caret_Lower_S_Or_Upper_S_Asterisk_Dollar 5.3846980000002995 ns/iter 2.8577522506364232 ns/iter 1.88
Regex_Period_Asterisk 5.340118000001439 ns/iter 2.9142363813263783 ns/iter 1.83
Regex_Group_Period_Asterisk_Group 5.331778571429271 ns/iter 2.9203127665535615 ns/iter 1.83
Regex_Period_Plus 5.019161607143425 ns/iter 2.923622677266509 ns/iter 1.72
Regex_Period 4.7765741082090525 ns/iter 2.937245196958985 ns/iter 1.63
Regex_Caret_Period_Plus_Dollar 5.020659000001615 ns/iter 2.8876170273822437 ns/iter 1.74
Regex_Caret_Group_Period_Plus_Group_Dollar 4.78833473321125 ns/iter 2.9497915585495185 ns/iter 1.62
Regex_Caret_Period_Asterisk_Dollar 5.017082000001665 ns/iter 2.991316312957351 ns/iter 1.68
Regex_Caret_Group_Period_Asterisk_Group_Dollar 5.380504000002019 ns/iter 2.968066605817888 ns/iter 1.81
Regex_Caret_X_Hyphen 8.186588802738626 ns/iter 6.6108044642853825 ns/iter 1.24
Regex_Period_Md_Dollar 44.650250940618356 ns/iter 29.091439155839133 ns/iter 1.53
Regex_Caret_Slash_Period_Asterisk 8.156611607143459 ns/iter 6.251236607141664 ns/iter 1.30
Regex_Caret_Period_Range_Dollar 5.65397399999938 ns/iter 3.0631410714282277 ns/iter 1.85
Regex_Nested_Backtrack 58.959866071433 ns/iter 40.23089285713409 ns/iter 1.47
JSON_Array_Of_Objects_Unique 609.5455357142653 ns/iter 577.5458000000526 ns/iter 1.06
JSON_Parse_1 9317.95304485267 ns/iter 7325.392857142939 ns/iter 1.27
JSON_Parse_Real 16498.47098214252 ns/iter 12539.143750000649 ns/iter 1.32
JSON_Parse_Decimal 11928.782812500316 ns/iter 10019.990089328443 ns/iter 1.19
JSON_Parse_Schema_ISO_Language 7347132.222222779 ns/iter 7973178.888889582 ns/iter 0.92
JSON_Parse_Integer 6145.11339285733 ns/iter 4380.352500000129 ns/iter 1.40
JSON_Parse_String_NonSSO_Plain 7707.437500000326 ns/iter 6814.875000001409 ns/iter 1.13
JSON_Parse_String_SSO_Plain 3596.2969047605957 ns/iter 2778.109920487318 ns/iter 1.29
JSON_Parse_String_Escape_Heavy 22161.828125000226 ns/iter 23279.201124981824 ns/iter 0.95
JSON_Parse_Object_Short_Keys 13366.501265618519 ns/iter 10009.3218749997 ns/iter 1.34
JSON_Parse_Object_Scalar_Properties 6943.937500000377 ns/iter 5174.455999999736 ns/iter 1.34
JSON_Parse_Object_Array_Properties 11369.523214284527 ns/iter 9136.818139206083 ns/iter 1.24
JSON_Parse_Object_Object_Properties 11492.96071428856 ns/iter 9296.77367511668 ns/iter 1.24
JSON_Parse_Nested_Containers 79725.56582296861 ns/iter 63417.142857145685 ns/iter 1.26
JSON_From_String_Copy 64.39431249999319 ns/iter 49.92557000000488 ns/iter 1.29
JSON_From_String_Temporary 58.510562500008035 ns/iter 57.248624999987534 ns/iter 1.02
JSON_Number_To_Double 120.06389062499066 ns/iter 94.95040625001393 ns/iter 1.26
JSON_Object_At_Last_Key/8 7.262433035715483 ns/iter 7.09604821428554 ns/iter 1.02
JSON_Object_At_Last_Key/32 22.918154878150048 ns/iter 22.32772812499917 ns/iter 1.03
JSON_Object_At_Last_Key/128 89.58728171487573 ns/iter 81.23311383929632 ns/iter 1.10
JSON_Object_At_Last_Key/512 415.85280286369687 ns/iter 281.60596957119515 ns/iter 1.48
JSON_Fast_Hash_Helm_Chart_Lock 111.0470625000204 ns/iter 96.37038855487947 ns/iter 1.15
JSON_Equality_Helm_Chart_Lock 212.20018025896525 ns/iter 244.98874999998017 ns/iter 0.87
JSON_Divisible_By_Decimal 300.4125289717947 ns/iter 264.0670832172968 ns/iter 1.14
JSON_String_Equal/10 10.721337005707415 ns/iter 11.196328124999157 ns/iter 0.96
JSON_String_Equal/100 11.969400000001684 ns/iter 14.07408743717197 ns/iter 0.85
JSON_String_Equal_Small_By_Perfect_Hash/10 2.513729126659037 ns/iter 1.3118325000001667 ns/iter 1.92
JSON_String_Equal_Small_By_Runtime_Perfect_Hash/10 14.215063999039542 ns/iter 10.593323437500857 ns/iter 1.34
JSON_String_Fast_Hash/10 6.918268973214379 ns/iter 4.497887042528142 ns/iter 1.54
JSON_String_Fast_Hash/100 6.925667857144293 ns/iter 4.503232622872352 ns/iter 1.54
JSON_String_Key_Hash/10 5.386157142857379 ns/iter 3.061689683399103 ns/iter 1.76
JSON_String_Key_Hash/100 11.907224999999602 ns/iter 8.705395943278013 ns/iter 1.37
JSON_Object_Defines_Miss_Same_Length 4.08781286444169 ns/iter 4.156420980287364 ns/iter 0.98
JSON_Object_Defines_Miss_Too_Small 4.404429239105983 ns/iter 4.404308124999545 ns/iter 1.00
JSON_Object_Defines_Miss_Too_Large 4.080391257286108 ns/iter 4.4178225649920035 ns/iter 0.92
Pointer_Object_Traverse 69.69549999999863 ns/iter 40.020156249997996 ns/iter 1.74
Pointer_Object_Try_Traverse 73.80427455357464 ns/iter 42.28271012252217 ns/iter 1.75
Pointer_Push_Back_Pointer_To_Weak_Pointer 184.40605217909112 ns/iter 150.15185267855153 ns/iter 1.23
Pointer_Walker_Schema_ISO_Language 10254625.000001738 ns/iter 10597689.333332406 ns/iter 0.97
Pointer_Maybe_Tracked_Deeply_Nested/0 2583482.2033899957 ns/iter 2133754.2857143683 ns/iter 1.21
Pointer_Maybe_Tracked_Deeply_Nested/1 3990487.7094971975 ns/iter 3793699.4413411403 ns/iter 1.05
Pointer_Position_Tracker_Get_Deeply_Nested 562.1104910714182 ns/iter 542.0755059407809 ns/iter 1.04
URITemplateRouter_Create 40558.57289217711 ns/iter 33815.86274785483 ns/iter 1.20
URITemplateRouter_Match 233.92279755329318 ns/iter 239.67121209025933 ns/iter 0.98
URITemplateRouter_Match_BasePath 265.1579292480975 ns/iter 275.9465367880846 ns/iter 0.96
URITemplateRouterView_Restore 32491.487366984922 ns/iter 17568.5200892823 ns/iter 1.85
URITemplateRouterView_Match 181.04550096290342 ns/iter 181.6222394305518 ns/iter 1.00
URITemplateRouterView_Match_BasePath 206.17703097428657 ns/iter 203.39801993758195 ns/iter 1.01
URITemplateRouterView_Arguments 539.1591071429502 ns/iter 441.58850000002303 ns/iter 1.22
JSONL_Parse_Large 34281055.00000811 ns/iter 24488330.000000738 ns/iter 1.40
JSONL_Parse_Large_GZIP 34544440.000001945 ns/iter 25575985.714283433 ns/iter 1.35
JSONLD_Catalog_Annotation_List_Populate 2635727.3092368 ns/iter 2295172.187500327 ns/iter 1.15
JSONLD_Catalog_Materialize 7699160.000000423 ns/iter 6536791.071429856 ns/iter 1.18
HTML_Build_Table_100000 89035255.55554855 ns/iter 98540400.00000925 ns/iter 0.90
HTML_Render_Table_100000 7826806.250000523 ns/iter 12623685.714284452 ns/iter 0.62
GZIP_Compress_ISO_Language_Set_3_Locations 35993142.105254315 ns/iter 30929850.00000681 ns/iter 1.16
GZIP_Decompress_ISO_Language_Set_3_Locations 10018174.666668832 ns/iter 11779118.749998929 ns/iter 0.85
GZIP_Compress_ISO_Language_Set_3_Schema 2140488.9855075716 ns/iter 1962987.8260868439 ns/iter 1.09
GZIP_Decompress_ISO_Language_Set_3_Schema 622567.6785713776 ns/iter 619391.3392857147 ns/iter 1.01
JOSE_VerifySignature_RS256 22220.912500003466 ns/iter 19395.864248792986 ns/iter 1.15
JOSE_VerifySignature_ES512 1548643.9732142237 ns/iter 1067565.6249997444 ns/iter 1.45

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