Eliminate unevaluatedProperties behind a single \ branch - #1028
Eliminate unevaluatedProperties behind a single \ branch#1028Vansh-kap-98 wants to merge 2 commits into
Conversation
Signed-off-by: Vansh <officialbusiness9818@gmail.com>
There was a problem hiding this comment.
1 issue found across 4 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="test/canonicalizer/canonicalizer_2019_09_test.cc">
<violation number="1" location="test/canonicalizer/canonicalizer_2019_09_test.cc:749">
P3: Only the happy path and two negative cases (anyOf target, additionalProperties target) are tested, but the rewrite stays sound only because of several other guard conditions that the PR description explicitly calls out. Add "stays" tests for a target with `required` not fully covered by `properties`, a non-empty `patternProperties`, an in-place applicator such as `items`/`contains`, and a legacy dialect (e.g. draft-04), plus a top-level sibling `unevaluatedItems`. These guard conditions are what prevent the rewrite from corrupting semantics, so leaving them untested hides regressions in exactly the logic this PR exists to add. The rule also applies to 2020-12, so the same cases belong in canonicalizer_2020_12_test.cc.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema()); | ||
| } | ||
|
|
||
| TEST(unevaluated_properties_single_ref_to_additional_properties) { |
There was a problem hiding this comment.
P3: Only the happy path and two negative cases (anyOf target, additionalProperties target) are tested, but the rewrite stays sound only because of several other guard conditions that the PR description explicitly calls out. Add "stays" tests for a target with required not fully covered by properties, a non-empty patternProperties, an in-place applicator such as items/contains, and a legacy dialect (e.g. draft-04), plus a top-level sibling unevaluatedItems. These guard conditions are what prevent the rewrite from corrupting semantics, so leaving them untested hides regressions in exactly the logic this PR exists to add. The rule also applies to 2020-12, so the same cases belong in canonicalizer_2020_12_test.cc.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At test/canonicalizer/canonicalizer_2019_09_test.cc, line 749:
<comment>Only the happy path and two negative cases (anyOf target, additionalProperties target) are tested, but the rewrite stays sound only because of several other guard conditions that the PR description explicitly calls out. Add "stays" tests for a target with `required` not fully covered by `properties`, a non-empty `patternProperties`, an in-place applicator such as `items`/`contains`, and a legacy dialect (e.g. draft-04), plus a top-level sibling `unevaluatedItems`. These guard conditions are what prevent the rewrite from corrupting semantics, so leaving them untested hides regressions in exactly the logic this PR exists to add. The rule also applies to 2020-12, so the same cases belong in canonicalizer_2020_12_test.cc.</comment>
<file context>
@@ -746,6 +746,187 @@ TEST(items_implicit_1) {
CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema());
}
+TEST(unevaluated_properties_single_ref_to_additional_properties) {
+ auto document = sourcemeta::core::parse_json(R"JSON({
+ "$schema": "https://json-schema.org/draft/2019-09/schema",
</file context>
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: d6f2e44 | Previous: e8b95e6 | Ratio |
|---|---|---|---|
Schema_Tracker_ISO_Language |
4895158.171052571 ns/iter |
5821227.745341783 ns/iter |
0.84 |
Schema_Tracker_ISO_Language_To_JSON |
16562066.108695429 ns/iter |
14943911.239131663 ns/iter |
1.11 |
Schema_Frame_WoT_References |
6134831.868420957 ns/iter |
5574424.169999475 ns/iter |
1.10 |
Schema_Frame_OMC_References |
29462961.538460884 ns/iter |
27135993.851852957 ns/iter |
1.09 |
Schema_Frame_OMC_Locations |
27659177.884616453 ns/iter |
22490370.117646523 ns/iter |
1.23 |
Schema_Frame_ISO_Language_Locations |
78027703.12498808 ns/iter |
78002490.77777405 ns/iter |
1.00 |
Schema_Frame_ISO_Language_Root |
221.70657687330763 ns/iter |
230.67340799397593 ns/iter |
0.96 |
Schema_Frame_KrakenD_References |
51957473.45454617 ns/iter |
46250098.21428908 ns/iter |
1.12 |
Schema_Frame_KrakenD_Reachable |
603480332.9999932 ns/iter |
568496416.0000163 ns/iter |
1.06 |
Schema_Frame_ISO_Language_Locations_To_JSON |
145094583.24999967 ns/iter |
177218541.59999567 ns/iter |
0.82 |
Schema_Frame_Many_Resources_References |
800746708.5000144 ns/iter |
744475499.9999646 ns/iter |
1.08 |
Schema_Frame_Deeply_Nested_References |
18642883.999998074 ns/iter |
19731800.675673626 ns/iter |
0.94 |
Schema_Bundle_Meta_2020_12 |
1676788.5437507364 ns/iter |
1639063.1333360753 ns/iter |
1.02 |
Schema_Format_ISO_Language_To_JSON |
98611923.49994023 ns/iter |
115518187.66666126 ns/iter |
0.85 |
E2E_Compiler_adaptivecard |
69621412.9091004 ns/iter |
69120854.25000215 ns/iter |
1.01 |
E2E_Compiler_ansible_meta |
33303041.65217018 ns/iter |
31786611.842101976 ns/iter |
1.05 |
E2E_Compiler_aws_cdk |
315805.6727272777 ns/iter |
298330.95828169317 ns/iter |
1.06 |
E2E_Compiler_babelrc |
2735433.155477416 ns/iter |
2107341.923076722 ns/iter |
1.30 |
E2E_Compiler_clang_format |
17461507.590910103 ns/iter |
19281456.521740813 ns/iter |
0.91 |
E2E_Compiler_cmake_presets |
26922185.88461296 ns/iter |
29815754.999999627 ns/iter |
0.90 |
E2E_Compiler_code_climate |
2156012.3247590717 ns/iter |
2219963.5193134896 ns/iter |
0.97 |
E2E_Compiler_cql2 |
12002619.629033836 ns/iter |
13881698.52941255 ns/iter |
0.86 |
E2E_Compiler_cspell |
23989915.26666426 ns/iter |
26727985.10714155 ns/iter |
0.90 |
E2E_Compiler_cypress |
4120089.651686091 ns/iter |
5346847.487179328 ns/iter |
0.77 |
E2E_Compiler_deno |
7689684.148146378 ns/iter |
7991958.860759351 ns/iter |
0.96 |
E2E_Compiler_dependabot |
3918667.630057174 ns/iter |
4984495.000000304 ns/iter |
0.79 |
E2E_Compiler_draft_04 |
2192279.6373244855 ns/iter |
2682729.8447654843 ns/iter |
0.82 |
E2E_Compiler_fabric_mod |
4136243.497109165 ns/iter |
3939440.207791715 ns/iter |
1.05 |
E2E_Compiler_geojson |
25702084.677416883 ns/iter |
20880613.281249795 ns/iter |
1.23 |
E2E_Compiler_gitpod_configuration |
4962830.962025277 ns/iter |
5284821.061349683 ns/iter |
0.94 |
E2E_Compiler_helm_chart_lock |
588813.3077544504 ns/iter |
654901.5556734343 ns/iter |
0.90 |
E2E_Compiler_importmap |
222207.00034399197 ns/iter |
335302.6872428004 ns/iter |
0.66 |
E2E_Compiler_jasmine |
1191207.1954020446 ns/iter |
1532345.724220847 ns/iter |
0.78 |
E2E_Compiler_jshintrc |
3953333.0838323394 ns/iter |
5011670.089552455 ns/iter |
0.79 |
E2E_Compiler_jsconfig |
24503054.46153869 ns/iter |
26421833.310345046 ns/iter |
0.93 |
E2E_Compiler_krakend |
150830341.60002172 ns/iter |
172995166.66666174 ns/iter |
0.87 |
E2E_Compiler_lazygit |
36194713.23529123 ns/iter |
37075114.54999803 ns/iter |
0.98 |
E2E_Compiler_lerna |
1257320.8648650316 ns/iter |
1575986.1623615755 ns/iter |
0.80 |
E2E_Compiler_nest_cli |
6221487.85416717 ns/iter |
7030606.481482019 ns/iter |
0.88 |
E2E_Compiler_omc |
174054500.00001112 ns/iter |
209036177.2499989 ns/iter |
0.83 |
E2E_Compiler_omnisharp |
6371717.631067953 ns/iter |
7462889.231707843 ns/iter |
0.85 |
E2E_Compiler_openapi |
29312413.67856988 ns/iter |
32144242.29629795 ns/iter |
0.91 |
E2E_Compiler_pre_commit_hooks |
5265043.750000587 ns/iter |
6103324.519230569 ns/iter |
0.86 |
E2E_Compiler_pulumi |
3874097.8023959077 ns/iter |
4608453.61635191 ns/iter |
0.84 |
E2E_Compiler_semantic_release |
1417168.604040504 ns/iter |
1584434.0958605332 ns/iter |
0.89 |
E2E_Compiler_stale |
1560174.1071428598 ns/iter |
1299528.914046039 ns/iter |
1.20 |
E2E_Compiler_stylecop |
6509162.752137823 ns/iter |
6509328.457445676 ns/iter |
1.00 |
E2E_Compiler_tmuxinator |
1706790.1678658074 ns/iter |
1716507.7922075621 ns/iter |
0.99 |
E2E_Compiler_ui5 |
53695749.999990635 ns/iter |
63223838.49999369 ns/iter |
0.85 |
E2E_Compiler_ui5_manifest |
337029916.9999953 ns/iter |
337363270.99995834 ns/iter |
1.00 |
E2E_Compiler_unreal_engine_uproject |
4395968.809815831 ns/iter |
5451757.911392242 ns/iter |
0.81 |
E2E_Compiler_users_array |
737525.3305525308 ns/iter |
810490.7173699506 ns/iter |
0.91 |
E2E_Compiler_vercel |
13786400.943397997 ns/iter |
13898252.1186424 ns/iter |
0.99 |
E2E_Compiler_yamllint |
287571.37334405916 ns/iter |
292615.6765345964 ns/iter |
0.98 |
E2E_Evaluator_adaptivecard |
27719.39881933084 ns/iter |
27224.877621553045 ns/iter |
1.02 |
E2E_Evaluator_ansible_meta |
241828.31319757953 ns/iter |
252493.65805784936 ns/iter |
0.96 |
E2E_Evaluator_aws_cdk |
53194.665132506954 ns/iter |
54531.19172364653 ns/iter |
0.98 |
E2E_Evaluator_babelrc |
116054.46828565343 ns/iter |
122172.05798721442 ns/iter |
0.95 |
E2E_Evaluator_cerebrum_criminal_case |
1230786.4744406005 ns/iter |
1226278.6651482102 ns/iter |
1.00 |
E2E_Evaluator_clang_format |
116957.51538236487 ns/iter |
117410.14011148027 ns/iter |
1.00 |
E2E_Evaluator_cmake_presets |
5198224.942029046 ns/iter |
4367700.241176836 ns/iter |
1.19 |
E2E_Evaluator_code_climate |
214648.0922714793 ns/iter |
187398.87456631023 ns/iter |
1.15 |
E2E_Evaluator_cql2 |
239103.31905146202 ns/iter |
199065.28662418775 ns/iter |
1.20 |
E2E_Evaluator_cspell |
636591.9549783963 ns/iter |
586671.0830000556 ns/iter |
1.09 |
E2E_Evaluator_cypress |
181747.01115830752 ns/iter |
171986.55792018466 ns/iter |
1.06 |
E2E_Evaluator_deno |
355886.9073148361 ns/iter |
416092.1719890431 ns/iter |
0.86 |
E2E_Evaluator_dependabot |
368611.1523021467 ns/iter |
512632.04225353297 ns/iter |
0.72 |
E2E_Evaluator_draft_04 |
6182889.547169838 ns/iter |
8721341.549296124 ns/iter |
0.71 |
E2E_Evaluator_fabric_mod |
530904.0608107989 ns/iter |
834655.832760548 ns/iter |
0.64 |
E2E_Evaluator_geojson |
9964514.96153802 ns/iter |
12981102.678570064 ns/iter |
0.77 |
E2E_Evaluator_gitpod_configuration |
210053.46596204542 ns/iter |
300266.7756553673 ns/iter |
0.70 |
E2E_Evaluator_helm_chart_lock |
293012.84954702185 ns/iter |
444961.6837232444 ns/iter |
0.66 |
E2E_Evaluator_importmap |
43861.864717871074 ns/iter |
66886.44935345773 ns/iter |
0.66 |
E2E_Evaluator_jasmine |
100936.00778210993 ns/iter |
169089.33491542537 ns/iter |
0.60 |
E2E_Evaluator_jshintrc |
955154.6489797612 ns/iter |
1410532.1936839526 ns/iter |
0.68 |
E2E_Evaluator_jsconfig |
329839.37213655957 ns/iter |
548706.7909998586 ns/iter |
0.60 |
E2E_Evaluator_krakend |
151655.30218772852 ns/iter |
253511.96369641589 ns/iter |
0.60 |
E2E_Evaluator_lazygit |
137520.69581629403 ns/iter |
186014.33154950553 ns/iter |
0.74 |
E2E_Evaluator_lerna |
158682.94604043657 ns/iter |
234139.54904589642 ns/iter |
0.68 |
E2E_Evaluator_nest_cli |
162276.97265712838 ns/iter |
238445.9470845934 ns/iter |
0.68 |
E2E_Evaluator_omc |
16789.564300927046 ns/iter |
24782.455290383143 ns/iter |
0.68 |
E2E_Evaluator_omnisharp |
518555.0000001058 ns/iter |
731738.4217626797 ns/iter |
0.71 |
E2E_Evaluator_openapi |
8032790.6626510415 ns/iter |
12571743.644068222 ns/iter |
0.64 |
E2E_Evaluator_pre_commit_hooks |
401228.66705671325 ns/iter |
627913.2145816545 ns/iter |
0.64 |
E2E_Evaluator_pulumi |
598957.9497906779 ns/iter |
775888.1528471564 ns/iter |
0.77 |
E2E_Evaluator_semantic_release |
86090.66425064548 ns/iter |
109901.18103047911 ns/iter |
0.78 |
E2E_Evaluator_stale |
155572.18099442055 ns/iter |
175199.14353584775 ns/iter |
0.89 |
E2E_Evaluator_stylecop |
222282.12414030446 ns/iter |
284844.2081384533 ns/iter |
0.78 |
E2E_Evaluator_tmuxinator |
79016.66663043294 ns/iter |
117011.30783133506 ns/iter |
0.68 |
E2E_Evaluator_ui5 |
404777.87214332906 ns/iter |
608070.9964538635 ns/iter |
0.67 |
E2E_Evaluator_ui5_manifest |
3133330.2631577556 ns/iter |
3218597.2248065136 ns/iter |
0.97 |
E2E_Evaluator_unreal_engine_uproject |
599265.276893671 ns/iter |
561585.0839999438 ns/iter |
1.07 |
E2E_Evaluator_users_array |
595727.3750000241 ns/iter |
891776.4539614788 ns/iter |
0.67 |
E2E_Evaluator_vercel |
299207.0089147606 ns/iter |
296874.55043585756 ns/iter |
1.01 |
E2E_Evaluator_yamllint |
11735.279306442359 ns/iter |
10844.509700992523 ns/iter |
1.08 |
JSONLD_Catalog_Simple |
22077236.1249999 ns/iter |
19970442.225800775 ns/iter |
1.11 |
JSONLD_Catalog_Override_Agreeing |
22875347.23332859 ns/iter |
22702118.033331923 ns/iter |
1.01 |
JSONLD_Catalog_Override_Shadowing |
32221041.666667182 ns/iter |
29931651.63999947 ns/iter |
1.08 |
Micro_Draft4_Meta_1_No_Callback |
173.12805007389403 ns/iter |
181.10936780107627 ns/iter |
0.96 |
Micro_Draft4_Required_Properties |
820.6377379612585 ns/iter |
782.8344604277877 ns/iter |
1.05 |
Micro_Draft4_Many_Optional_Properties_Minimal_Match |
30.889008744437632 ns/iter |
20.2992864789032 ns/iter |
1.52 |
Micro_Draft4_Few_Optional_Properties_Minimal_Match |
12.410972515230043 ns/iter |
10.659154590212372 ns/iter |
1.16 |
Micro_Draft4_Items_Schema |
346.575735704572 ns/iter |
290.99085629636903 ns/iter |
1.19 |
Micro_Draft4_Nested_Object |
1.1737155982775869 ns/iter |
1.0836414115272865 ns/iter |
1.08 |
Micro_Draft4_Properties_Triad_Optional |
325.0900488343117 ns/iter |
267.8929671902664 ns/iter |
1.21 |
Micro_Draft4_Properties_Triad_Closed |
358.17680068805424 ns/iter |
205.29990009437947 ns/iter |
1.74 |
Micro_Draft4_Properties_Triad_Required |
369.2803175487412 ns/iter |
278.51795343876535 ns/iter |
1.33 |
Micro_Draft4_Properties_Closed |
59.22255219859594 ns/iter |
53.52634701525987 ns/iter |
1.11 |
Micro_Draft4_Non_Recursive_Ref |
16.05357572066963 ns/iter |
12.935106968780689 ns/iter |
1.24 |
Micro_Draft4_Pattern_Properties_Empty |
174.59847982495995 ns/iter |
154.64443317903746 ns/iter |
1.13 |
Micro_Draft4_Ref_To_Single_Property |
11.039394044222314 ns/iter |
14.738587990618916 ns/iter |
0.75 |
Micro_Draft4_Additional_Properties_Type |
40.38540235894617 ns/iter |
34.465894131796524 ns/iter |
1.17 |
Micro_Draft4_Nested_Oneof |
45.71364636738957 ns/iter |
40.56755188702003 ns/iter |
1.13 |
Micro_Draft4_Short_Enum |
5.3661945067771715 ns/iter |
5.182536553304349 ns/iter |
1.04 |
Micro_Draft4_Long_Enum |
11.426617624265724 ns/iter |
11.641941423885982 ns/iter |
0.98 |
Micro_Draft4_Long_Enum_Short_Strings |
6.686480829804248 ns/iter |
7.296306517556745 ns/iter |
0.92 |
Micro_Draft4_Type_Object |
2.440177058334498 ns/iter |
2.9563402069545193 ns/iter |
0.83 |
Micro_Draft4_Ref_Single_100 |
1446620.4081632637 ns/iter |
1821288.5542170515 ns/iter |
0.79 |
Micro_Draft4_Compile_Ref_Many_Nested |
982645.7975566685 ns/iter |
1124458.3984375112 ns/iter |
0.87 |
Micro_Draft4_Compile_Wrap |
1559938.8322294808 ns/iter |
1658846.8486490357 ns/iter |
0.94 |
Micro_Draft6_Property_Names |
96.27965608013108 ns/iter |
107.98339780190433 ns/iter |
0.89 |
Micro_Draft6_Compile_FHIR |
13267263916.99981 ns/iter |
18453039875.000057 ns/iter |
0.72 |
Micro_Draft7_If_Then_Else |
18.316913918020266 ns/iter |
29.35083336734612 ns/iter |
0.62 |
Micro_2019_09_Unevaluated_Properties |
28.776947521891618 ns/iter |
58.06875320755548 ns/iter |
0.50 |
Micro_2019_09_Compile_Wrap |
271073194.6666935 ns/iter |
1105265833.0002031 ns/iter |
0.25 |
Micro_2020_12_Dynamic_Ref |
601.6635507134582 ns/iter |
972.2875926101296 ns/iter |
0.62 |
Micro_2020_12_Dynamic_Ref_Single |
2.444262031177673 ns/iter |
5.406523886618544 ns/iter |
0.45 |
Micro_2020_12_Simple_Output_Mask |
802.9149748011989 ns/iter |
1391.4749131117953 ns/iter |
0.58 |
Micro_2020_12_Simple_Output_Annotations |
56642.37663372006 ns/iter |
99398.32810487553 ns/iter |
0.57 |
Micro_2020_12_Simple_Output_Annotation_Dropping |
1179251.4534884584 ns/iter |
1980558.1306991095 ns/iter |
0.60 |
Micro_2020_12_Compile_NonCircular_Shared_Refs |
669796.8559480485 ns/iter |
1150348.6545454434 ns/iter |
0.58 |
Micro_2020_12_Exhaustive_Deep_Numeric |
5195.55167000135 ns/iter |
8139.149141502669 ns/iter |
0.64 |
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput |
30605.3631664194 ns/iter |
51304.46018376282 ns/iter |
0.60 |
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput |
13209.22045215312 ns/iter |
19518.310142967388 ns/iter |
0.68 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail |
92.65956651835653 ns/iter |
123.89777588892608 ns/iter |
0.75 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput |
2479.122797846483 ns/iter |
3440.297643789726 ns/iter |
0.72 |
TestSuite_Parse_WoT |
19432975.69444111 ns/iter |
32771009.04348196 ns/iter |
0.59 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
205834152.66666332 ns/iter |
329346167.0000397 ns/iter |
0.62 |
Alterschema_Check_Readibility_OMC |
65897734.81819479 ns/iter |
115677077.42856978 ns/iter |
0.57 |
Alterschema_Check_Readibility_KrakenD |
786264834.0001215 ns/iter |
1482372333.0000575 ns/iter |
0.53 |
Alterschema_Apply_Readibility_KrakenD |
95035252416.00005 ns/iter |
137948064541.00012 ns/iter |
0.69 |
Alterschema_Check_Invalid_External_Refs |
197338395.99996373 ns/iter |
218196139.00000453 ns/iter |
0.90 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
JavaScript (macos/llvm)
Details
| Benchmark suite | Current: d6f2e44 | Previous: e8b95e6 | Ratio |
|---|---|---|---|
E2E_Evaluator_adaptivecard |
191893 ns |
149154 ns |
1.29 |
E2E_Evaluator_ansible-meta |
653335 ns |
502872 ns |
1.30 |
E2E_Evaluator_aws-cdk |
161045 ns |
165572 ns |
0.97 |
E2E_Evaluator_babelrc |
427933 ns |
406072 ns |
1.05 |
E2E_Evaluator_cerebrum-criminal-case |
2545579 ns |
2311479 ns |
1.10 |
E2E_Evaluator_clang-format |
260839 ns |
238950 ns |
1.09 |
E2E_Evaluator_cmake-presets |
17435462 ns |
16770373 ns |
1.04 |
E2E_Evaluator_code-climate |
597512 ns |
498603 ns |
1.20 |
E2E_Evaluator_cql2 |
1243145 ns |
1432801 ns |
0.87 |
E2E_Evaluator_cspell |
1704249 ns |
1816423 ns |
0.94 |
E2E_Evaluator_cypress |
872841 ns |
774250 ns |
1.13 |
E2E_Evaluator_deno |
893037 ns |
1190868 ns |
0.75 |
E2E_Evaluator_dependabot |
914710 ns |
1037945 ns |
0.88 |
E2E_Evaluator_draft-04 |
19487018 ns |
21925400 ns |
0.89 |
E2E_Evaluator_fabric-mod |
1954853 ns |
2488411 ns |
0.79 |
E2E_Evaluator_geojson |
17921603 ns |
22573303 ns |
0.79 |
E2E_Evaluator_gitpod-configuration |
527401 ns |
626068 ns |
0.84 |
E2E_Evaluator_helm-chart-lock |
876628 ns |
1045529 ns |
0.84 |
E2E_Evaluator_importmap |
238689 ns |
240601 ns |
0.99 |
E2E_Evaluator_jasmine |
308232 ns |
252747 ns |
1.22 |
E2E_Evaluator_jsconfig |
1095683 ns |
999148 ns |
1.10 |
E2E_Evaluator_jshintrc |
2688319 ns |
2712259 ns |
0.99 |
E2E_Evaluator_krakend |
486459 ns |
518268 ns |
0.94 |
E2E_Evaluator_lazygit |
344628 ns |
345845 ns |
1.00 |
E2E_Evaluator_lerna |
367958 ns |
368008 ns |
1.00 |
E2E_Evaluator_nest-cli |
516891 ns |
482723 ns |
1.07 |
E2E_Evaluator_omc |
107218 ns |
105353 ns |
1.02 |
E2E_Evaluator_omnisharp |
1185388 ns |
1173692 ns |
1.01 |
E2E_Evaluator_openapi |
30318269 ns |
34546013 ns |
0.88 |
E2E_Evaluator_pre-commit-hooks |
1573748 ns |
1722749 ns |
0.91 |
E2E_Evaluator_pulumi |
1553939 ns |
1744217 ns |
0.89 |
E2E_Evaluator_semantic-release |
176256 ns |
194941 ns |
0.90 |
E2E_Evaluator_stale |
289162 ns |
360651 ns |
0.80 |
E2E_Evaluator_stylecop |
717162 ns |
876056 ns |
0.82 |
E2E_Evaluator_tmuxinator |
182239 ns |
207299 ns |
0.88 |
E2E_Evaluator_ui5 |
1665406 ns |
1748910 ns |
0.95 |
E2E_Evaluator_ui5-manifest |
7971960 ns |
13011115 ns |
0.61 |
E2E_Evaluator_unreal-engine-uproject |
1147577 ns |
1405460 ns |
0.82 |
E2E_Evaluator_users-array |
2378763 ns |
2801879 ns |
0.85 |
E2E_Evaluator_vercel |
771676 ns |
957311 ns |
0.81 |
E2E_Evaluator_yamllint |
25040 ns |
29638 ns |
0.84 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: d6f2e44 | Previous: e8b95e6 | Ratio |
|---|---|---|---|
Schema_Tracker_ISO_Language |
3522804.6515149944 ns/iter |
3647622.441624358 ns/iter |
0.97 |
Schema_Tracker_ISO_Language_To_JSON |
15005222.782608895 ns/iter |
14899313.61702039 ns/iter |
1.01 |
Schema_Frame_WoT_References |
3256276.8472219943 ns/iter |
3194058.457398822 ns/iter |
1.02 |
Schema_Frame_OMC_References |
14671794.723402312 ns/iter |
14494854.854165832 ns/iter |
1.01 |
Schema_Frame_OMC_Locations |
13595213.90195948 ns/iter |
13372525.250000186 ns/iter |
1.02 |
Schema_Frame_ISO_Language_Locations |
69707986.89999357 ns/iter |
66318985.39999384 ns/iter |
1.05 |
Schema_Frame_ISO_Language_Root |
261.7407041709218 ns/iter |
254.58042570680573 ns/iter |
1.03 |
Schema_Frame_KrakenD_References |
28171097.999997985 ns/iter |
27456353.12000104 ns/iter |
1.03 |
Schema_Frame_KrakenD_Reachable |
418177591.5000117 ns/iter |
405620175.50001884 ns/iter |
1.03 |
Schema_Frame_ISO_Language_Locations_To_JSON |
160365785.75000247 ns/iter |
158002590.74998733 ns/iter |
1.01 |
Schema_Frame_Many_Resources_References |
277899175.3333457 ns/iter |
269910975.66667575 ns/iter |
1.03 |
Schema_Frame_Deeply_Nested_References |
9043091.28947333 ns/iter |
9017393.077922495 ns/iter |
1.00 |
Schema_Bundle_Meta_2020_12 |
889554.4099611167 ns/iter |
889144.3642148532 ns/iter |
1.00 |
Schema_Format_ISO_Language_To_JSON |
73667482.77777585 ns/iter |
69658260.44442262 ns/iter |
1.06 |
E2E_Compiler_adaptivecard |
41395870.11764648 ns/iter |
40391964.72221976 ns/iter |
1.02 |
E2E_Compiler_ansible_meta |
18025886.282051336 ns/iter |
17758583.124998495 ns/iter |
1.02 |
E2E_Compiler_aws_cdk |
199267.12673268066 ns/iter |
193703.2371618015 ns/iter |
1.03 |
E2E_Compiler_babelrc |
1532871.1873636723 ns/iter |
1488346.7876856783 ns/iter |
1.03 |
E2E_Compiler_clang_format |
11576513.450000903 ns/iter |
11421026.721312374 ns/iter |
1.01 |
E2E_Compiler_cmake_presets |
18595394.31579175 ns/iter |
18346951.473682493 ns/iter |
1.01 |
E2E_Compiler_code_climate |
1535226.1768559034 ns/iter |
1490474.04680856 ns/iter |
1.03 |
E2E_Compiler_cql2 |
8996679.987179644 ns/iter |
8817776.125000875 ns/iter |
1.02 |
E2E_Compiler_cspell |
16644176.809523156 ns/iter |
15931728.046510661 ns/iter |
1.04 |
E2E_Compiler_cypress |
2654019.401515312 ns/iter |
2653294.465908764 ns/iter |
1.00 |
E2E_Compiler_deno |
4954184.770833573 ns/iter |
4855488.645833677 ns/iter |
1.02 |
E2E_Compiler_dependabot |
2387119.1672354797 ns/iter |
2370615.87118637 ns/iter |
1.01 |
E2E_Compiler_draft_04 |
1603513.3672057341 ns/iter |
1590990.7823127485 ns/iter |
1.01 |
E2E_Compiler_fabric_mod |
2845881.4612242943 ns/iter |
2806987.705645545 ns/iter |
1.01 |
E2E_Compiler_geojson |
14838905.520832667 ns/iter |
14655706.04166781 ns/iter |
1.01 |
E2E_Compiler_gitpod_configuration |
3103727.906666589 ns/iter |
3021162.5948276115 ns/iter |
1.03 |
E2E_Compiler_helm_chart_lock |
378708.2847109781 ns/iter |
384245.59078877076 ns/iter |
0.99 |
E2E_Compiler_importmap |
154915.47876105964 ns/iter |
150084.3134996812 ns/iter |
1.03 |
E2E_Compiler_jasmine |
759789.9105779363 ns/iter |
738472.5126849752 ns/iter |
1.03 |
E2E_Compiler_jshintrc |
2562072.133828883 ns/iter |
2575355.732852136 ns/iter |
0.99 |
E2E_Compiler_jsconfig |
14574868.04166545 ns/iter |
14566816.020831652 ns/iter |
1.00 |
E2E_Compiler_krakend |
99903815.57143532 ns/iter |
95142845.28571741 ns/iter |
1.05 |
E2E_Compiler_lazygit |
21699901.34375155 ns/iter |
21618750.272726614 ns/iter |
1.00 |
E2E_Compiler_lerna |
884841.3837356033 ns/iter |
868429.8688726412 ns/iter |
1.02 |
E2E_Compiler_nest_cli |
4701239.391891931 ns/iter |
4598745.163398948 ns/iter |
1.02 |
E2E_Compiler_omc |
107176551.33331998 ns/iter |
103652848.66666494 ns/iter |
1.03 |
E2E_Compiler_omnisharp |
4263350.642424319 ns/iter |
4161337.835294302 ns/iter |
1.02 |
E2E_Compiler_openapi |
15799522.477273988 ns/iter |
15587447.266665954 ns/iter |
1.01 |
E2E_Compiler_pre_commit_hooks |
3150789.018018013 ns/iter |
3099425.114537713 ns/iter |
1.02 |
E2E_Compiler_pulumi |
2478171.1357141896 ns/iter |
2449419.0815604036 ns/iter |
1.01 |
E2E_Compiler_semantic_release |
884772.8432365456 ns/iter |
854106.1741779099 ns/iter |
1.04 |
E2E_Compiler_stale |
883076.8876261993 ns/iter |
852682.4872107592 ns/iter |
1.04 |
E2E_Compiler_stylecop |
3657626.4450260596 ns/iter |
3607331.051282414 ns/iter |
1.01 |
E2E_Compiler_tmuxinator |
1052354.879154097 ns/iter |
1033969.6611941323 ns/iter |
1.02 |
E2E_Compiler_ui5 |
32000754.818181 ns/iter |
31684033.409093942 ns/iter |
1.01 |
E2E_Compiler_ui5_manifest |
199853467.33331728 ns/iter |
192345956.99996743 ns/iter |
1.04 |
E2E_Compiler_unreal_engine_uproject |
2803031.3388430956 ns/iter |
2764129.8920002556 ns/iter |
1.01 |
E2E_Compiler_users_array |
448966.6617172423 ns/iter |
437402.55562538916 ns/iter |
1.03 |
E2E_Compiler_vercel |
8781210.925000949 ns/iter |
8738024.987499671 ns/iter |
1.00 |
E2E_Compiler_yamllint |
175705.83726123523 ns/iter |
171674.8466633746 ns/iter |
1.02 |
E2E_Evaluator_adaptivecard |
18886.037708753847 ns/iter |
18225.10630411049 ns/iter |
1.04 |
E2E_Evaluator_ansible_meta |
170443.67146340624 ns/iter |
171062.10585091906 ns/iter |
1.00 |
E2E_Evaluator_aws_cdk |
38465.06956092554 ns/iter |
38352.013498623026 ns/iter |
1.00 |
E2E_Evaluator_babelrc |
94549.77905911396 ns/iter |
90055.14983338311 ns/iter |
1.05 |
E2E_Evaluator_cerebrum_criminal_case |
935600.9612299342 ns/iter |
929862.7306176111 ns/iter |
1.01 |
E2E_Evaluator_clang_format |
92689.63031199406 ns/iter |
90060.901372331 ns/iter |
1.03 |
E2E_Evaluator_cmake_presets |
4112365.192982688 ns/iter |
3998416.8742856644 ns/iter |
1.03 |
E2E_Evaluator_code_climate |
157115.75488653028 ns/iter |
150652.92651826193 ns/iter |
1.04 |
E2E_Evaluator_cql2 |
150800.73417719806 ns/iter |
149679.97219844544 ns/iter |
1.01 |
E2E_Evaluator_cspell |
532002.2763856576 ns/iter |
524237.87658933375 ns/iter |
1.01 |
E2E_Evaluator_cypress |
154066.9893593425 ns/iter |
153373.43142417542 ns/iter |
1.00 |
E2E_Evaluator_deno |
305993.3814074572 ns/iter |
299832.86007702205 ns/iter |
1.02 |
E2E_Evaluator_dependabot |
274876.04741213395 ns/iter |
273646.22139496426 ns/iter |
1.00 |
E2E_Evaluator_draft_04 |
5790722.1111115655 ns/iter |
5683457.388430319 ns/iter |
1.02 |
E2E_Evaluator_fabric_mod |
604021.8003428286 ns/iter |
591829.4725274418 ns/iter |
1.02 |
E2E_Evaluator_geojson |
10444078.745763363 ns/iter |
8752140.972602904 ns/iter |
1.19 |
E2E_Evaluator_gitpod_configuration |
181633.08055995728 ns/iter |
181295.79932936825 ns/iter |
1.00 |
E2E_Evaluator_helm_chart_lock |
401294.09179023386 ns/iter |
392567.51010101626 ns/iter |
1.02 |
E2E_Evaluator_importmap |
31177.401817265156 ns/iter |
30609.093774763813 ns/iter |
1.02 |
E2E_Evaluator_jasmine |
92374.43754113671 ns/iter |
91504.108051396 ns/iter |
1.01 |
E2E_Evaluator_jshintrc |
1045707.0868263358 ns/iter |
1032658.0162241366 ns/iter |
1.01 |
E2E_Evaluator_jsconfig |
325745.9821428487 ns/iter |
322340.508965503 ns/iter |
1.01 |
E2E_Evaluator_krakend |
146758.98383370865 ns/iter |
143634.40422045632 ns/iter |
1.02 |
E2E_Evaluator_lazygit |
103686.73913687655 ns/iter |
102747.79568155111 ns/iter |
1.01 |
E2E_Evaluator_lerna |
151853.28289331988 ns/iter |
150578.03212677708 ns/iter |
1.01 |
E2E_Evaluator_nest_cli |
145609.4786749371 ns/iter |
144829.59046051803 ns/iter |
1.01 |
E2E_Evaluator_omc |
15275.556835570838 ns/iter |
15149.267649611658 ns/iter |
1.01 |
E2E_Evaluator_omnisharp |
473992.25321602327 ns/iter |
470379.87752360204 ns/iter |
1.01 |
E2E_Evaluator_openapi |
9216822.368421461 ns/iter |
8876365.666667541 ns/iter |
1.04 |
E2E_Evaluator_pre_commit_hooks |
422651.74271843035 ns/iter |
419670.3270971375 ns/iter |
1.01 |
E2E_Evaluator_pulumi |
662492.7215311169 ns/iter |
675153.865294645 ns/iter |
0.98 |
E2E_Evaluator_semantic_release |
74393.68456376721 ns/iter |
72254.08171975962 ns/iter |
1.03 |
E2E_Evaluator_stale |
122286.77418215216 ns/iter |
120660.44878305244 ns/iter |
1.01 |
E2E_Evaluator_stylecop |
211174.68300850946 ns/iter |
210620.23764147406 ns/iter |
1.00 |
E2E_Evaluator_tmuxinator |
78171.91642840797 ns/iter |
76436.03965141036 ns/iter |
1.02 |
E2E_Evaluator_ui5 |
379075.6910880084 ns/iter |
374883.5512958959 ns/iter |
1.01 |
E2E_Evaluator_ui5_manifest |
2224090.531250056 ns/iter |
2186475.7089783936 ns/iter |
1.02 |
E2E_Evaluator_unreal_engine_uproject |
380044.9277566339 ns/iter |
372148.5586681029 ns/iter |
1.02 |
E2E_Evaluator_users_array |
526382.379746803 ns/iter |
515204.3179448781 ns/iter |
1.02 |
E2E_Evaluator_vercel |
286542.74959082843 ns/iter |
280651.818145474 ns/iter |
1.02 |
E2E_Evaluator_yamllint |
6416.98885157568 ns/iter |
6315.562353199448 ns/iter |
1.02 |
JSONLD_Catalog_Simple |
14905587.645832459 ns/iter |
14114663.55101979 ns/iter |
1.06 |
JSONLD_Catalog_Override_Agreeing |
14801393.212765783 ns/iter |
14531438.500000603 ns/iter |
1.02 |
JSONLD_Catalog_Override_Shadowing |
23502083.100000463 ns/iter |
23675119.73333573 ns/iter |
0.99 |
Micro_Draft4_Meta_1_No_Callback |
139.25831794887443 ns/iter |
137.88084613929914 ns/iter |
1.01 |
Micro_Draft4_Required_Properties |
594.090418171726 ns/iter |
591.4859713611602 ns/iter |
1.00 |
Micro_Draft4_Many_Optional_Properties_Minimal_Match |
17.727485034270888 ns/iter |
17.957407485839095 ns/iter |
0.99 |
Micro_Draft4_Few_Optional_Properties_Minimal_Match |
8.1072896615181 ns/iter |
8.074915588722162 ns/iter |
1.00 |
Micro_Draft4_Items_Schema |
260.45826069692583 ns/iter |
256.68632386175597 ns/iter |
1.01 |
Micro_Draft4_Nested_Object |
1.1031082195505346 ns/iter |
1.10300569498006 ns/iter |
1.00 |
Micro_Draft4_Properties_Triad_Optional |
247.5309164438059 ns/iter |
248.2991187180465 ns/iter |
1.00 |
Micro_Draft4_Properties_Triad_Closed |
204.05547358766137 ns/iter |
203.47152523928898 ns/iter |
1.00 |
Micro_Draft4_Properties_Triad_Required |
256.7331702977121 ns/iter |
255.3230654729455 ns/iter |
1.01 |
Micro_Draft4_Properties_Closed |
48.57100723365265 ns/iter |
48.113247294733284 ns/iter |
1.01 |
Micro_Draft4_Non_Recursive_Ref |
11.750637160248292 ns/iter |
11.682347565460471 ns/iter |
1.01 |
Micro_Draft4_Pattern_Properties_Empty |
124.03917595526038 ns/iter |
122.89425896205442 ns/iter |
1.01 |
Micro_Draft4_Ref_To_Single_Property |
8.099672045876293 ns/iter |
8.043408371788692 ns/iter |
1.01 |
Micro_Draft4_Additional_Properties_Type |
31.199741682977553 ns/iter |
31.03848660266727 ns/iter |
1.01 |
Micro_Draft4_Nested_Oneof |
44.689143748475104 ns/iter |
43.808082928134624 ns/iter |
1.02 |
Micro_Draft4_Short_Enum |
8.466906326039426 ns/iter |
8.146182157454321 ns/iter |
1.04 |
Micro_Draft4_Long_Enum |
11.745487048315137 ns/iter |
11.749778791913894 ns/iter |
1.00 |
Micro_Draft4_Long_Enum_Short_Strings |
8.452456652678805 ns/iter |
8.130262946590754 ns/iter |
1.04 |
Micro_Draft4_Type_Object |
2.771639639781608 ns/iter |
2.7748350510293887 ns/iter |
1.00 |
Micro_Draft4_Ref_Single_100 |
1424183.425661858 ns/iter |
1409078.1696968589 ns/iter |
1.01 |
Micro_Draft4_Compile_Ref_Many_Nested |
967208.8252426749 ns/iter |
962778.2949246964 ns/iter |
1.00 |
Micro_Draft4_Compile_Wrap |
1415525.1801618969 ns/iter |
1411774.5513078875 ns/iter |
1.00 |
Micro_Draft6_Property_Names |
132.40689502738888 ns/iter |
131.50346622500368 ns/iter |
1.01 |
Micro_Draft6_Compile_FHIR |
12594041317.000006 ns/iter |
13335856717.999945 ns/iter |
0.94 |
Micro_Draft7_If_Then_Else |
20.831677784357588 ns/iter |
20.67852279625573 ns/iter |
1.01 |
Micro_2019_09_Unevaluated_Properties |
24.228520188543676 ns/iter |
24.18122076952617 ns/iter |
1.00 |
Micro_2019_09_Compile_Wrap |
207163354.99999633 ns/iter |
204847035.6666788 ns/iter |
1.01 |
Micro_2020_12_Dynamic_Ref |
561.2528901219787 ns/iter |
556.5209279977695 ns/iter |
1.01 |
Micro_2020_12_Dynamic_Ref_Single |
2.4825924799596546 ns/iter |
2.4649439849451986 ns/iter |
1.01 |
Micro_2020_12_Simple_Output_Mask |
770.4840265127739 ns/iter |
749.6790077729229 ns/iter |
1.03 |
Micro_2020_12_Simple_Output_Annotations |
39897.24912941559 ns/iter |
39741.8693284917 ns/iter |
1.00 |
Micro_2020_12_Simple_Output_Annotation_Dropping |
1038441.3594674389 ns/iter |
1042159.6775147693 ns/iter |
1.00 |
Micro_2020_12_Compile_NonCircular_Shared_Refs |
566102.1813803916 ns/iter |
553530.8712479874 ns/iter |
1.02 |
Micro_2020_12_Exhaustive_Deep_Numeric |
6004.351456831356 ns/iter |
5981.665575865961 ns/iter |
1.00 |
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput |
28310.073848541993 ns/iter |
28204.689624688144 ns/iter |
1.00 |
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput |
13822.675553371513 ns/iter |
13682.2190137556 ns/iter |
1.01 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail |
100.24423150491371 ns/iter |
98.58833339540374 ns/iter |
1.02 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput |
1856.8084688978536 ns/iter |
1846.849901200762 ns/iter |
1.01 |
TestSuite_Parse_WoT |
16193127.604651637 ns/iter |
15959372.749999933 ns/iter |
1.01 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
258083656.00001553 ns/iter |
250472667.33330765 ns/iter |
1.03 |
Alterschema_Check_Readibility_OMC |
72925773.70000117 ns/iter |
70734455.40000875 ns/iter |
1.03 |
Alterschema_Check_Readibility_KrakenD |
1085830675.000011 ns/iter |
1052340587.9999927 ns/iter |
1.03 |
Alterschema_Apply_Readibility_KrakenD |
114422267318.99995 ns/iter |
109767534681.00003 ns/iter |
1.04 |
Alterschema_Check_Invalid_External_Refs |
168476757.7499997 ns/iter |
160660142.49997807 ns/iter |
1.05 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
JavaScript (linux/llvm)
Details
| Benchmark suite | Current: d6f2e44 | Previous: e8b95e6 | Ratio |
|---|---|---|---|
E2E_Evaluator_adaptivecard |
92981 ns |
91375 ns |
1.02 |
E2E_Evaluator_ansible-meta |
393532 ns |
375467 ns |
1.05 |
E2E_Evaluator_aws-cdk |
118139 ns |
111562 ns |
1.06 |
E2E_Evaluator_babelrc |
310470 ns |
289023 ns |
1.07 |
E2E_Evaluator_cerebrum-criminal-case |
1971545 ns |
1763866 ns |
1.12 |
E2E_Evaluator_clang-format |
218610 ns |
196945 ns |
1.11 |
E2E_Evaluator_cmake-presets |
15178888 ns |
13351196 ns |
1.14 |
E2E_Evaluator_code-climate |
492574 ns |
433213 ns |
1.14 |
E2E_Evaluator_cql2 |
1001905 ns |
874379 ns |
1.15 |
E2E_Evaluator_cspell |
1598053 ns |
1220472 ns |
1.31 |
E2E_Evaluator_cypress |
823930 ns |
686126 ns |
1.20 |
E2E_Evaluator_deno |
946281 ns |
845221 ns |
1.12 |
E2E_Evaluator_dependabot |
906203 ns |
819869 ns |
1.11 |
E2E_Evaluator_draft-04 |
15994446 ns |
15075139 ns |
1.06 |
E2E_Evaluator_fabric-mod |
2027003 ns |
1775835 ns |
1.14 |
E2E_Evaluator_geojson |
17969441 ns |
15901162 ns |
1.13 |
E2E_Evaluator_gitpod-configuration |
629746 ns |
533683 ns |
1.18 |
E2E_Evaluator_helm-chart-lock |
878242 ns |
863997 ns |
1.02 |
E2E_Evaluator_importmap |
287554 ns |
270002 ns |
1.07 |
E2E_Evaluator_jasmine |
229297 ns |
212917 ns |
1.08 |
E2E_Evaluator_jsconfig |
1219550 ns |
1071872 ns |
1.14 |
E2E_Evaluator_jshintrc |
2799459 ns |
2504394 ns |
1.12 |
E2E_Evaluator_krakend |
492142 ns |
484110 ns |
1.02 |
E2E_Evaluator_lazygit |
395608 ns |
338734 ns |
1.17 |
E2E_Evaluator_lerna |
410314 ns |
371480 ns |
1.10 |
E2E_Evaluator_nest-cli |
501602 ns |
444289 ns |
1.13 |
E2E_Evaluator_omc |
90038 ns |
89477 ns |
1.01 |
E2E_Evaluator_omnisharp |
1356993 ns |
1134404 ns |
1.20 |
E2E_Evaluator_openapi |
32273198 ns |
28693454 ns |
1.12 |
E2E_Evaluator_pre-commit-hooks |
1864298 ns |
1526608 ns |
1.22 |
E2E_Evaluator_pulumi |
1934218 ns |
1514602 ns |
1.28 |
E2E_Evaluator_semantic-release |
212791 ns |
194514 ns |
1.09 |
E2E_Evaluator_stale |
330592 ns |
299771 ns |
1.10 |
E2E_Evaluator_stylecop |
1137252 ns |
942905 ns |
1.21 |
E2E_Evaluator_tmuxinator |
206309 ns |
191742 ns |
1.08 |
E2E_Evaluator_ui5 |
1646265 ns |
1595506 ns |
1.03 |
E2E_Evaluator_ui5-manifest |
8257431 ns |
8079457 ns |
1.02 |
E2E_Evaluator_unreal-engine-uproject |
1407386 ns |
1231796 ns |
1.14 |
E2E_Evaluator_users-array |
2687991 ns |
2450252 ns |
1.10 |
E2E_Evaluator_vercel |
906885 ns |
829974 ns |
1.09 |
E2E_Evaluator_yamllint |
20665 ns |
18778 ns |
1.10 |
This comment was automatically generated by workflow using github-action-benchmark.
a554d21 to
0742908
Compare
Signed-off-by: Vansh <officialbusiness9818@gmail.com>
0742908 to
d6f2e44
Compare
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: d6f2e44 | Previous: e8b95e6 | Ratio |
|---|---|---|---|
Alterschema_Check_Readibility_ISO_Language_Set_3 |
312645404.99978465 ns/iter |
342758116.500022 ns/iter |
0.91 |
Alterschema_Check_Readibility_OMC |
82580467.37500991 ns/iter |
84370978.37500574 ns/iter |
0.98 |
Alterschema_Check_Readibility_KrakenD |
1039467020.9998367 ns/iter |
1037617045.999923 ns/iter |
1.00 |
Alterschema_Apply_Readibility_KrakenD |
114425319693.00035 ns/iter |
118861007460.99988 ns/iter |
0.96 |
Alterschema_Check_Invalid_External_Refs |
284883847.9999358 ns/iter |
292627141.9999011 ns/iter |
0.97 |
TestSuite_Parse_WoT |
22259395.687498797 ns/iter |
22746825.419355974 ns/iter |
0.98 |
Micro_2020_12_Dynamic_Ref |
976.1835851622378 ns/iter |
975.4580667479244 ns/iter |
1.00 |
Micro_2020_12_Dynamic_Ref_Single |
4.3596545845843035 ns/iter |
4.363127685915631 ns/iter |
1.00 |
Micro_2020_12_Simple_Output_Mask |
1226.1379807725384 ns/iter |
1222.6878341277395 ns/iter |
1.00 |
Micro_2020_12_Simple_Output_Annotations |
59081.85660253544 ns/iter |
59662.031231128094 ns/iter |
0.99 |
Micro_2020_12_Simple_Output_Annotation_Dropping |
1617336.0762127703 ns/iter |
1643932.9488374041 ns/iter |
0.98 |
Micro_2020_12_Compile_NonCircular_Shared_Refs |
870900.6926889652 ns/iter |
888507.5083013492 ns/iter |
0.98 |
Micro_2020_12_Exhaustive_Deep_Numeric |
9186.566013849653 ns/iter |
9203.491108883434 ns/iter |
1.00 |
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput |
43923.08574114216 ns/iter |
44482.58468692577 ns/iter |
0.99 |
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput |
22051.782753155574 ns/iter |
22335.154368775748 ns/iter |
0.99 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail |
173.87097451855212 ns/iter |
170.07926975109143 ns/iter |
1.02 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput |
2837.990618090194 ns/iter |
2940.413636325347 ns/iter |
0.97 |
Micro_2019_09_Unevaluated_Properties |
32.00776136226242 ns/iter |
31.78703767727177 ns/iter |
1.01 |
Micro_2019_09_Compile_Wrap |
279583348.5001822 ns/iter |
302681353.0000254 ns/iter |
0.92 |
Micro_Draft7_If_Then_Else |
23.996643706122885 ns/iter |
23.98022180794931 ns/iter |
1.00 |
Micro_Draft6_Property_Names |
156.3618926048732 ns/iter |
156.4377812028024 ns/iter |
1.00 |
Micro_Draft6_Compile_FHIR |
11319221500.000366 ns/iter |
11647998737.999842 ns/iter |
0.97 |
Micro_Draft4_Meta_1_No_Callback |
194.39472009092432 ns/iter |
198.1035399585124 ns/iter |
0.98 |
Micro_Draft4_Required_Properties |
881.005979880401 ns/iter |
865.2333934360697 ns/iter |
1.02 |
Micro_Draft4_Many_Optional_Properties_Minimal_Match |
22.19325797763671 ns/iter |
22.128764239476375 ns/iter |
1.00 |
Micro_Draft4_Few_Optional_Properties_Minimal_Match |
16.51866445371083 ns/iter |
16.51271720251497 ns/iter |
1.00 |
Micro_Draft4_Items_Schema |
347.50694615957985 ns/iter |
352.6640301722841 ns/iter |
0.99 |
Micro_Draft4_Nested_Object |
1.5602794057436014 ns/iter |
1.5560250402817708 ns/iter |
1.00 |
Micro_Draft4_Properties_Triad_Optional |
382.2816819148719 ns/iter |
376.1511847485195 ns/iter |
1.02 |
Micro_Draft4_Properties_Triad_Closed |
306.35801520243353 ns/iter |
310.7496420951127 ns/iter |
0.99 |
Micro_Draft4_Properties_Triad_Required |
457.54296942112563 ns/iter |
421.68504857854464 ns/iter |
1.09 |
Micro_Draft4_Properties_Closed |
64.55796127955149 ns/iter |
64.57856361187531 ns/iter |
1.00 |
Micro_Draft4_Non_Recursive_Ref |
9.028991121614542 ns/iter |
9.095420952856117 ns/iter |
0.99 |
Micro_Draft4_Pattern_Properties_Empty |
212.41035422997064 ns/iter |
212.58601790554843 ns/iter |
1.00 |
Micro_Draft4_Ref_To_Single_Property |
16.84658986664916 ns/iter |
16.83991711733345 ns/iter |
1.00 |
Micro_Draft4_Additional_Properties_Type |
14.00920218903424 ns/iter |
14.01453615939056 ns/iter |
1.00 |
Micro_Draft4_Nested_Oneof |
65.98155719521691 ns/iter |
66.01213848627579 ns/iter |
1.00 |
Micro_Draft4_Short_Enum |
14.683776984714271 ns/iter |
14.690222119231944 ns/iter |
1.00 |
Micro_Draft4_Long_Enum |
14.337377557121185 ns/iter |
14.334600449837016 ns/iter |
1.00 |
Micro_Draft4_Long_Enum_Short_Strings |
14.744091318131224 ns/iter |
14.690227503818598 ns/iter |
1.00 |
Micro_Draft4_Type_Object |
4.358046670742608 ns/iter |
4.357945369021947 ns/iter |
1.00 |
Micro_Draft4_Ref_Single_100 |
1964199.1564248956 ns/iter |
2003815.2413797264 ns/iter |
0.98 |
Micro_Draft4_Compile_Ref_Many_Nested |
1345938.347490944 ns/iter |
1382476.0297026867 ns/iter |
0.97 |
Micro_Draft4_Compile_Wrap |
2081016.5934719506 ns/iter |
2137553.1489356225 ns/iter |
0.97 |
JSONLD_Catalog_Simple |
22705790.129029702 ns/iter |
25139091.655170165 ns/iter |
0.90 |
JSONLD_Catalog_Override_Agreeing |
21979143.000011858 ns/iter |
25445659.481479026 ns/iter |
0.86 |
JSONLD_Catalog_Override_Shadowing |
32987289.85713578 ns/iter |
36395397.05263336 ns/iter |
0.91 |
E2E_Compiler_adaptivecard |
55926507.58334609 ns/iter |
58935063.333327286 ns/iter |
0.95 |
E2E_Compiler_ansible_meta |
26449338.185186744 ns/iter |
27035982.73077345 ns/iter |
0.98 |
E2E_Compiler_aws_cdk |
321410.08886848716 ns/iter |
330658.2748703578 ns/iter |
0.97 |
E2E_Compiler_babelrc |
2189079.0343746855 ns/iter |
2227607.8507939163 ns/iter |
0.98 |
E2E_Compiler_clang_format |
15940318.61363667 ns/iter |
16237920.833332065 ns/iter |
0.98 |
E2E_Compiler_cmake_presets |
23654159.433332704 ns/iter |
24606280.72413658 ns/iter |
0.96 |
E2E_Compiler_code_climate |
2156515.179012224 ns/iter |
2184320.3228834732 ns/iter |
0.99 |
E2E_Compiler_cql2 |
11765433.633339247 ns/iter |
12179052.58181831 ns/iter |
0.97 |
E2E_Compiler_cspell |
20394127.79999371 ns/iter |
21180799.382350683 ns/iter |
0.96 |
E2E_Compiler_cypress |
3476643.597016154 ns/iter |
3534064.82323256 ns/iter |
0.98 |
E2E_Compiler_deno |
7188993.51546291 ns/iter |
7342531.291667361 ns/iter |
0.98 |
E2E_Compiler_dependabot |
3447578.529412389 ns/iter |
3480970.8514850885 ns/iter |
0.99 |
E2E_Compiler_draft_04 |
2321787.07973499 ns/iter |
2360756.5218851725 ns/iter |
0.98 |
E2E_Compiler_fabric_mod |
3982655.6704554153 ns/iter |
4030673.6589593515 ns/iter |
0.99 |
E2E_Compiler_geojson |
20238933.771439146 ns/iter |
20575738.382349834 ns/iter |
0.98 |
E2E_Compiler_gitpod_configuration |
4285769.243901219 ns/iter |
4373066.687500682 ns/iter |
0.98 |
E2E_Compiler_helm_chart_lock |
584329.7366667836 ns/iter |
594379.9033078837 ns/iter |
0.98 |
E2E_Compiler_importmap |
245405.52834161677 ns/iter |
251943.6370262494 ns/iter |
0.97 |
E2E_Compiler_jasmine |
1125370.0739552658 ns/iter |
1148030.852892431 ns/iter |
0.98 |
E2E_Compiler_jshintrc |
3698203.675531039 ns/iter |
3789252.597825858 ns/iter |
0.98 |
E2E_Compiler_jsconfig |
20257903.59999259 ns/iter |
20646491.41175992 ns/iter |
0.98 |
E2E_Compiler_krakend |
128932955.3999778 ns/iter |
135531114.40000975 ns/iter |
0.95 |
E2E_Compiler_lazygit |
29787795.782617055 ns/iter |
30707003.227276303 ns/iter |
0.97 |
E2E_Compiler_lerna |
1356573.3294577273 ns/iter |
1384293.7405189185 ns/iter |
0.98 |
E2E_Compiler_nest_cli |
6503591.203702988 ns/iter |
6631386.999998497 ns/iter |
0.98 |
E2E_Compiler_omc |
153494573.99997845 ns/iter |
159351166.75001383 ns/iter |
0.96 |
E2E_Compiler_omnisharp |
5923818.386553411 ns/iter |
6076378.478260464 ns/iter |
0.97 |
E2E_Compiler_openapi |
22550099.774185408 ns/iter |
23021799.099994194 ns/iter |
0.98 |
E2E_Compiler_pre_commit_hooks |
4433701.27215208 ns/iter |
4490505.116128559 ns/iter |
0.99 |
E2E_Compiler_pulumi |
3475942.2326733153 ns/iter |
3540112.4467004826 ns/iter |
0.98 |
E2E_Compiler_semantic_release |
1275976.6775960051 ns/iter |
1296554.6857672248 ns/iter |
0.98 |
E2E_Compiler_stale |
1292430.2394106805 ns/iter |
1315041.4849058436 ns/iter |
0.98 |
E2E_Compiler_stylecop |
5469196.181104597 ns/iter |
5549305.920001643 ns/iter |
0.99 |
E2E_Compiler_tmuxinator |
1599285.7608201252 ns/iter |
1630878.3773147885 ns/iter |
0.98 |
E2E_Compiler_ui5 |
41242051.76471792 ns/iter |
44248938.62500312 ns/iter |
0.93 |
E2E_Compiler_ui5_manifest |
268604457.6665457 ns/iter |
287272518.5000036 ns/iter |
0.94 |
E2E_Compiler_unreal_engine_uproject |
3890822.44692725 ns/iter |
3982829.591954758 ns/iter |
0.98 |
E2E_Compiler_users_array |
701728.2532661057 ns/iter |
717165.8239508198 ns/iter |
0.98 |
E2E_Compiler_vercel |
11376968.419353357 ns/iter |
11641465.800001545 ns/iter |
0.98 |
E2E_Compiler_yamllint |
287094.00449708605 ns/iter |
296710.870537623 ns/iter |
0.97 |
E2E_Evaluator_adaptivecard |
26568.49702045391 ns/iter |
26993.072785047058 ns/iter |
0.98 |
E2E_Evaluator_ansible_meta |
294756.63219833426 ns/iter |
293469.8364248976 ns/iter |
1.00 |
E2E_Evaluator_aws_cdk |
63284.858262065165 ns/iter |
63233.58193314813 ns/iter |
1.00 |
E2E_Evaluator_babelrc |
119989.34870218893 ns/iter |
121088.52967333216 ns/iter |
0.99 |
E2E_Evaluator_cerebrum_criminal_case |
1147379.5697475763 ns/iter |
1174368.9008262889 ns/iter |
0.98 |
E2E_Evaluator_clang_format |
108008.06303551953 ns/iter |
104741.902435414 ns/iter |
1.03 |
E2E_Evaluator_cmake_presets |
4977617.182481003 ns/iter |
5602523.923729585 ns/iter |
0.89 |
E2E_Evaluator_code_climate |
235665.92056553965 ns/iter |
233788.46153847082 ns/iter |
1.01 |
E2E_Evaluator_cql2 |
235418.70662666165 ns/iter |
233037.78731967343 ns/iter |
1.01 |
E2E_Evaluator_cspell |
626042.4692588786 ns/iter |
646392.3941337304 ns/iter |
0.97 |
E2E_Evaluator_cypress |
196242.40922981114 ns/iter |
193700.9609879402 ns/iter |
1.01 |
E2E_Evaluator_deno |
360119.25578998035 ns/iter |
365086.06154649064 ns/iter |
0.99 |
E2E_Evaluator_dependabot |
396910.32654227497 ns/iter |
394346.60136285133 ns/iter |
1.01 |
E2E_Evaluator_draft_04 |
8212094.453332004 ns/iter |
9553901.619720422 ns/iter |
0.86 |
E2E_Evaluator_fabric_mod |
791454.5248867321 ns/iter |
791117.815699483 ns/iter |
1.00 |
E2E_Evaluator_geojson |
12984232.925924111 ns/iter |
13631847.352942213 ns/iter |
0.95 |
E2E_Evaluator_gitpod_configuration |
281076.9413616434 ns/iter |
282595.2105477101 ns/iter |
0.99 |
E2E_Evaluator_helm_chart_lock |
359606.2763563866 ns/iter |
360932.1732283373 ns/iter |
1.00 |
E2E_Evaluator_importmap |
48231.34812673241 ns/iter |
50210.25306928474 ns/iter |
0.96 |
E2E_Evaluator_jasmine |
126532.39567950004 ns/iter |
126260.51238902929 ns/iter |
1.00 |
E2E_Evaluator_jshintrc |
1115952.7958859974 ns/iter |
1121932.6624203117 ns/iter |
0.99 |
E2E_Evaluator_jsconfig |
457846.553664985 ns/iter |
463742.42514958495 ns/iter |
0.99 |
E2E_Evaluator_krakend |
222139.71201014833 ns/iter |
223413.22952379123 ns/iter |
0.99 |
E2E_Evaluator_lazygit |
155111.2543878645 ns/iter |
153968.54853173764 ns/iter |
1.01 |
E2E_Evaluator_lerna |
169710.81842489168 ns/iter |
173802.8316125808 ns/iter |
0.98 |
E2E_Evaluator_nest_cli |
215175.48124433157 ns/iter |
212531.565729876 ns/iter |
1.01 |
E2E_Evaluator_omc |
24417.847442930048 ns/iter |
24324.57632998262 ns/iter |
1.00 |
E2E_Evaluator_omnisharp |
600502.1705226956 ns/iter |
596614.3707482951 ns/iter |
1.01 |
E2E_Evaluator_openapi |
15762657.837216847 ns/iter |
19095614.32432531 ns/iter |
0.83 |
E2E_Evaluator_pre_commit_hooks |
543993.7052470628 ns/iter |
550478.5069766766 ns/iter |
0.99 |
E2E_Evaluator_pulumi |
785405.9351233388 ns/iter |
791049.8629215591 ns/iter |
0.99 |
E2E_Evaluator_semantic_release |
108668.95127544474 ns/iter |
110121.26180458188 ns/iter |
0.99 |
E2E_Evaluator_stale |
178037.42853455106 ns/iter |
179056.39402593428 ns/iter |
0.99 |
E2E_Evaluator_stylecop |
319615.26081019343 ns/iter |
322240.39653557097 ns/iter |
0.99 |
E2E_Evaluator_tmuxinator |
111398.92087358283 ns/iter |
112866.40959820966 ns/iter |
0.99 |
E2E_Evaluator_ui5 |
628428.8909575564 ns/iter |
632317.8249098441 ns/iter |
0.99 |
E2E_Evaluator_ui5_manifest |
3103209.6888884553 ns/iter |
3332027.684685166 ns/iter |
0.93 |
E2E_Evaluator_unreal_engine_uproject |
503275.7343976758 ns/iter |
503337.05632774293 ns/iter |
1.00 |
E2E_Evaluator_users_array |
686977.1245098544 ns/iter |
678570.6327130878 ns/iter |
1.01 |
E2E_Evaluator_vercel |
356860.9955067685 ns/iter |
356432.67617110733 ns/iter |
1.00 |
E2E_Evaluator_yamllint |
13439.837119414431 ns/iter |
13237.096745008277 ns/iter |
1.02 |
Schema_Format_ISO_Language_To_JSON |
101991558.00007378 ns/iter |
107828502.8333615 ns/iter |
0.95 |
Schema_Bundle_Meta_2020_12 |
1458032.618557274 ns/iter |
1483029.345987514 ns/iter |
0.98 |
Schema_Frame_WoT_References |
4702404.651008643 ns/iter |
4796616.061644397 ns/iter |
0.98 |
Schema_Frame_OMC_References |
20966120.000001397 ns/iter |
22967761.000002913 ns/iter |
0.91 |
Schema_Frame_OMC_Locations |
19724148.833334867 ns/iter |
21449625.500000525 ns/iter |
0.92 |
Schema_Frame_ISO_Language_Locations |
93712603.57141052 ns/iter |
100197188.71428397 ns/iter |
0.94 |
Schema_Frame_ISO_Language_Root |
460.20882236666154 ns/iter |
430.2199634052037 ns/iter |
1.07 |
Schema_Frame_KrakenD_References |
37828794.78945975 ns/iter |
40434182.11765183 ns/iter |
0.94 |
Schema_Frame_KrakenD_Reachable |
445546513.99994326 ns/iter |
461121283.99988705 ns/iter |
0.97 |
Schema_Frame_ISO_Language_Locations_To_JSON |
198522020.6665872 ns/iter |
202845707.00005135 ns/iter |
0.98 |
Schema_Frame_Many_Resources_References |
347777329.9998717 ns/iter |
356462469.500002 ns/iter |
0.98 |
Schema_Frame_Deeply_Nested_References |
11124260.111111134 ns/iter |
11835933.81355715 ns/iter |
0.94 |
Schema_Tracker_ISO_Language |
5203843.69117972 ns/iter |
5257110.837399198 ns/iter |
0.99 |
Schema_Tracker_ISO_Language_To_JSON |
19082415.540541094 ns/iter |
19476388.54053858 ns/iter |
0.98 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
JavaScript (linux/gcc)
Details
| Benchmark suite | Current: d6f2e44 | Previous: e8b95e6 | Ratio |
|---|---|---|---|
E2E_Evaluator_adaptivecard |
120039 ns |
121791 ns |
0.99 |
E2E_Evaluator_ansible-meta |
515224 ns |
538733 ns |
0.96 |
E2E_Evaluator_aws-cdk |
145694 ns |
158006 ns |
0.92 |
E2E_Evaluator_babelrc |
339146 ns |
340458 ns |
1.00 |
E2E_Evaluator_cerebrum-criminal-case |
2460843 ns |
2505331 ns |
0.98 |
E2E_Evaluator_clang-format |
243744 ns |
264295 ns |
0.92 |
E2E_Evaluator_cmake-presets |
18019188 ns |
19535349 ns |
0.92 |
E2E_Evaluator_code-climate |
528517 ns |
525129 ns |
1.01 |
E2E_Evaluator_cql2 |
1328023 ns |
1332071 ns |
1.00 |
E2E_Evaluator_cspell |
1479057 ns |
1541179 ns |
0.96 |
E2E_Evaluator_cypress |
763967 ns |
805815 ns |
0.95 |
E2E_Evaluator_deno |
1048767 ns |
1087252 ns |
0.96 |
E2E_Evaluator_dependabot |
1114084 ns |
1137523 ns |
0.98 |
E2E_Evaluator_draft-04 |
21324634 ns |
23899190 ns |
0.89 |
E2E_Evaluator_fabric-mod |
2309722 ns |
2405831 ns |
0.96 |
E2E_Evaluator_geojson |
23327424 ns |
25504238 ns |
0.91 |
E2E_Evaluator_gitpod-configuration |
709464 ns |
720945 ns |
0.98 |
E2E_Evaluator_helm-chart-lock |
993194 ns |
1047110 ns |
0.95 |
E2E_Evaluator_importmap |
269272 ns |
264390 ns |
1.02 |
E2E_Evaluator_jasmine |
289996 ns |
302776 ns |
0.96 |
E2E_Evaluator_jsconfig |
1194575 ns |
1243325 ns |
0.96 |
E2E_Evaluator_jshintrc |
2721061 ns |
2870084 ns |
0.95 |
E2E_Evaluator_krakend |
655255 ns |
670105 ns |
0.98 |
E2E_Evaluator_lazygit |
495321 ns |
514754 ns |
0.96 |
E2E_Evaluator_lerna |
450558 ns |
483947 ns |
0.93 |
E2E_Evaluator_nest-cli |
591589 ns |
610897 ns |
0.97 |
E2E_Evaluator_omc |
119233 ns |
120438 ns |
0.99 |
E2E_Evaluator_omnisharp |
1400385 ns |
1439838 ns |
0.97 |
E2E_Evaluator_openapi |
43534695 ns |
47267543 ns |
0.92 |
E2E_Evaluator_pre-commit-hooks |
1965402 ns |
2009492 ns |
0.98 |
E2E_Evaluator_pulumi |
1852838 ns |
1941975 ns |
0.95 |
E2E_Evaluator_semantic-release |
252566 ns |
254677 ns |
0.99 |
E2E_Evaluator_stale |
396830 ns |
408087 ns |
0.97 |
E2E_Evaluator_stylecop |
1192104 ns |
1209889 ns |
0.99 |
E2E_Evaluator_tmuxinator |
228528 ns |
228123 ns |
1.00 |
E2E_Evaluator_ui5 |
2213042 ns |
2248577 ns |
0.98 |
E2E_Evaluator_ui5-manifest |
10235168 ns |
11938973 ns |
0.86 |
E2E_Evaluator_unreal-engine-uproject |
1492009 ns |
1547765 ns |
0.96 |
E2E_Evaluator_users-array |
2966530 ns |
3000101 ns |
0.99 |
E2E_Evaluator_vercel |
958067 ns |
995125 ns |
0.96 |
E2E_Evaluator_yamllint |
25387 ns |
26017 ns |
0.98 |
This comment was automatically generated by workflow using github-action-benchmark.
🤖 Augment PR SummarySummary: This PR extends canonicalization of 🤖 Was this summary useful? React with 👍 or 👎 |
| if (entry.is_string() && | ||
| !(target_properties && | ||
| target_properties->defines(entry.to_string()))) { | ||
| return false; |
There was a problem hiding this comment.
src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h:132: This only defers the rewrite: required_properties_in_properties subsequently adds the uncovered name to the target's properties, the canonicalizer restarts, and this rule then succeeds and copies it locally. For a target requiring extra but initially defining only shared, the resulting additionalProperties accepts extra, while the original unevaluatedProperties: false rejects it because required does not evaluate that property.
Severity: high
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
2 issues found across 5 files
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="test/canonicalizer/canonicalizer_2019_09_test.cc">
<violation number="1" location="test/canonicalizer/canonicalizer_2019_09_test.cc:796">
P2: These tests assert only that the canonicalized output matches the expected structure and is a valid schema; they never check that the rewrite preserves runtime evaluation behavior. Since this rewrite merges referenced property names into `properties` and converts `unevaluatedProperties` to `additionalProperties` (and the PR claims no behavior change), an evaluator-level equivalence test comparing the original and canonicalized schema against a set of object instances would guard against semantic regressions that the structural assertion cannot catch.</violation>
</file>
<file name="src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h">
<violation number="1" location="src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h:143">
P1: When a referenced schema's `required` name is added to `properties` by a later canonicalization rule, this loop copies that synthesized name into the enclosing `properties`. The subsequent `additionalProperties` rewrite then accepts a property that the original `unevaluatedProperties: false` rejects; preserve the uncovered-required guard across canonicalization passes.</violation>
</file>
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
| if (properties && properties->defines(entry.first)) { | ||
| continue; | ||
| } | ||
| this->properties_.emplace_back(entry.first); |
There was a problem hiding this comment.
P1: When a referenced schema's required name is added to properties by a later canonicalization rule, this loop copies that synthesized name into the enclosing properties. The subsequent additionalProperties rewrite then accepts a property that the original unevaluatedProperties: false rejects; preserve the uncovered-required guard across canonicalization passes.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/canonicalizer/rules/unevaluated_properties_to_additional_properties_single_ref.h, line 143:
<comment>When a referenced schema's `required` name is added to `properties` by a later canonicalization rule, this loop copies that synthesized name into the enclosing `properties`. The subsequent `additionalProperties` rewrite then accepts a property that the original `unevaluatedProperties: false` rejects; preserve the uncovered-required guard across canonicalization passes.</comment>
<file context>
@@ -0,0 +1,173 @@
+ if (properties && properties->defines(entry.first)) {
+ continue;
+ }
+ this->properties_.emplace_back(entry.first);
+ }
+ }
</file context>
| } | ||
| })JSON"); | ||
|
|
||
| CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema()); |
There was a problem hiding this comment.
P2: These tests assert only that the canonicalized output matches the expected structure and is a valid schema; they never check that the rewrite preserves runtime evaluation behavior. Since this rewrite merges referenced property names into properties and converts unevaluatedProperties to additionalProperties (and the PR claims no behavior change), an evaluator-level equivalence test comparing the original and canonicalized schema against a set of object instances would guard against semantic regressions that the structural assertion cannot catch.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At test/canonicalizer/canonicalizer_2019_09_test.cc, line 796:
<comment>These tests assert only that the canonicalized output matches the expected structure and is a valid schema; they never check that the rewrite preserves runtime evaluation behavior. Since this rewrite merges referenced property names into `properties` and converts `unevaluatedProperties` to `additionalProperties` (and the PR claims no behavior change), an evaluator-level equivalence test comparing the original and canonicalized schema against a set of object instances would guard against semantic regressions that the structural assertion cannot catch.</comment>
<file context>
@@ -746,6 +746,378 @@ TEST(items_implicit_1) {
+ }
+ })JSON");
+
+ CANONICALIZE_AND_VALIDATE(document, expected, compiled_metaschema());
+}
+
</file context>
unevaluated_properties_to_additional_propertiesonly fires whenunevaluatedPropertieshas no applicator sibling at all, which does not happenon real schemas. All 33
unevaluatedPropertiesoccurrences in the OMC benchmarksit next to
allOf: [ { $ref } ], so the keyword survives canonicalisation.This handles that shape. Based on arXiv:2503.11288v1 ("Elimination of annotation
dependencies in validation for Modern JSON Schema"), which I read for this: it is
the paper's cheapest non-trivial case, where a single branch means there is
nothing to intersect and the referenced schema's evaluated property set is
exactly the names its
propertiesspells out.Renaming alone would be wrong, since
additionalPropertiesonly consultssyntactically adjacent
properties/patternPropertiesand the$ref'sproperties are not adjacent. The referenced names are merged into the local
propertiesastrueschemas first; validation still comes from the untouched$ref.The rewrite applies only when the target is statically characterisable: no
in-place applicator or reference of its own, no
unevaluated*, noadditionalProperties, no non-emptypatternProperties. Targets whoserequiredis not already covered bypropertiesare skipped, sincerequired_properties_in_propertieswould widen them later, as are legacydialects, which grow an implicit
additionalProperties.Limits: converts only the terminal hop of a
$refchain (ina -> b -> conlyb -> c), does not touchunevaluatedItems, and does not affectE2E_Evaluator_*, which compiles the raw schema without canonicalising.Effect:
benchmark/e2e/omc/schema.jsongoes from 33unevaluatedPropertiesto0 after canonicalisation. No site in
benchmark/e2e/openapi/schema.jsonconverts.