Ignore invalid applicators when compiling a schema - #1011
Conversation
🤖 Augment PR SummarySummary:
🤖 Was this summary useful? React with 👍 or 👎 |
| // An invalid schema may set an applicator to a value that is not a schema | ||
| // at all, in which case we consider it to impose no constraints | ||
| if (!new_schema.is_object() && !new_schema.is_boolean()) [[unlikely]] { | ||
| return {}; |
There was a problem hiding this comment.
This represents a malformed target exactly like a valid true subschema, but some applicators give an empty child list non-no-op meaning: contains: 1 emits the non-empty-array assertion, while not: 1 emits a LogicalNot that fails every instance. Thus those invalid applicators still impose constraints despite this guard's stated behavior.
Severity: medium
🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.
There was a problem hiding this comment.
All reported issues were addressed
Reply with feedback, questions, or to request a fix.
Re-trigger cubic
There was a problem hiding this comment.
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
There was a problem hiding this comment.
1 issue found across 2 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/compiler/compile.cc">
<violation number="1" location="src/compiler/compile.cc:42">
P1: When an object- or array-shaped applicator has the wrong JSON type, this `default` returns `true` and still dispatches its compiler. Add shape checks for all `ApplicatorMembers*` and `ApplicatorElements*` cases so malformed applicators are skipped instead of reaching shape-specific compilation.</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
| default: | ||
| return true; |
There was a problem hiding this comment.
P1: When an object- or array-shaped applicator has the wrong JSON type, this default returns true and still dispatches its compiler. Add shape checks for all ApplicatorMembers* and ApplicatorElements* cases so malformed applicators are skipped instead of reaching shape-specific compilation.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/compiler/compile.cc, line 42:
<comment>When an object- or array-shaped applicator has the wrong JSON type, this `default` returns `true` and still dispatches its compiler. Add shape checks for all `ApplicatorMembers*` and `ApplicatorElements*` cases so malformed applicators are skipped instead of reaching shape-specific compilation.</comment>
<file context>
@@ -21,6 +21,29 @@
+ case SchemaKeywordType::ApplicatorValueOrElementsTraverseAnyItemOrItem:
+ case SchemaKeywordType::ApplicatorValueOrElementsInPlace:
+ return value.is_object() || value.is_boolean() || value.is_array();
+ default:
+ return true;
+ }
</file context>
| default: | |
| return true; | |
| case SchemaKeywordType::ApplicatorMembersTraversePropertyStatic: | |
| case SchemaKeywordType::ApplicatorMembersTraversePropertyRegex: | |
| case SchemaKeywordType::ApplicatorMembersInPlaceSome: | |
| return value.is_object(); | |
| case SchemaKeywordType::ApplicatorElementsTraverseItem: | |
| case SchemaKeywordType::ApplicatorElementsInPlace: | |
| case SchemaKeywordType::ApplicatorElementsInPlaceSome: | |
| case SchemaKeywordType::ApplicatorElementsInPlaceSomeNegate: | |
| return value.is_array(); | |
| default: | |
| return true; |
There was a problem hiding this comment.
Benchmark (linux/llvm)
Details
| Benchmark suite | Current: 95f78b3 | Previous: 3c70205 | Ratio |
|---|---|---|---|
Schema_Tracker_ISO_Language |
4768879.432835764 ns/iter |
4431630.74522287 ns/iter |
1.08 |
Schema_Tracker_ISO_Language_To_JSON |
18651763.710525565 ns/iter |
19530350.750004448 ns/iter |
0.96 |
Schema_Frame_WoT_References |
3983216.2857146612 ns/iter |
3668236.1884822254 ns/iter |
1.09 |
Schema_Frame_OMC_References |
18222561.820511356 ns/iter |
17835869.769232187 ns/iter |
1.02 |
Schema_Frame_OMC_Locations |
16992557.238094855 ns/iter |
16397719.428569177 ns/iter |
1.04 |
Schema_Frame_ISO_Language_Locations |
86465394.37499712 ns/iter |
80229683.87498963 ns/iter |
1.08 |
Schema_Frame_ISO_Language_Root |
313.2048968011949 ns/iter |
301.1122271460896 ns/iter |
1.04 |
Schema_Frame_KrakenD_References |
36007715.54999937 ns/iter |
35416712.44998951 ns/iter |
1.02 |
Schema_Frame_KrakenD_Reachable |
416130111.5000242 ns/iter |
528254170.9996167 ns/iter |
0.79 |
Schema_Frame_ISO_Language_Locations_To_JSON |
179682189.49999937 ns/iter |
175742904.9999928 ns/iter |
1.02 |
Schema_Frame_Many_Resources_References |
320328002.999986 ns/iter |
319402527.49996036 ns/iter |
1.00 |
Schema_Frame_Deeply_Nested_References |
11165124.387095984 ns/iter |
12080609.438594604 ns/iter |
0.92 |
Schema_Bundle_Meta_2020_12 |
1185333.4375020214 ns/iter |
1030538.0821139744 ns/iter |
1.15 |
Schema_Format_ISO_Language_To_JSON |
93763381.42858134 ns/iter |
87303755.8749843 ns/iter |
1.07 |
E2E_Compiler_adaptivecard |
51976868.30768606 ns/iter |
50856837.09999102 ns/iter |
1.02 |
E2E_Compiler_ansible_meta |
23008476.399998777 ns/iter |
20969501.121209595 ns/iter |
1.10 |
E2E_Compiler_aws_cdk |
278742.0617038429 ns/iter |
233045.51721831967 ns/iter |
1.20 |
E2E_Compiler_babelrc |
1980311.878531026 ns/iter |
1734901.6311882087 ns/iter |
1.14 |
E2E_Compiler_clang_format |
14633952.270832159 ns/iter |
13337587.42307859 ns/iter |
1.10 |
E2E_Compiler_cmake_presets |
22706323.451614246 ns/iter |
21903200.46874916 ns/iter |
1.04 |
E2E_Compiler_code_climate |
1950625.2191009668 ns/iter |
1748891.7935323305 ns/iter |
1.12 |
E2E_Compiler_cql2 |
10816680.000000536 ns/iter |
10636995.850745736 ns/iter |
1.02 |
E2E_Compiler_cspell |
19901580.257140137 ns/iter |
20684509.296297956 ns/iter |
0.96 |
E2E_Compiler_cypress |
3392116.8743963 ns/iter |
3100383.7079647905 ns/iter |
1.09 |
E2E_Compiler_deno |
6341112.445454655 ns/iter |
5651460.524193813 ns/iter |
1.12 |
E2E_Compiler_dependabot |
3149819.1486490043 ns/iter |
2774670.0118574663 ns/iter |
1.14 |
E2E_Compiler_draft_04 |
2041201.7930027393 ns/iter |
1839348.7827222485 ns/iter |
1.11 |
E2E_Compiler_fabric_mod |
3609248.062499404 ns/iter |
3249210.218604445 ns/iter |
1.11 |
E2E_Compiler_geojson |
18359254.710527528 ns/iter |
17104393.325001866 ns/iter |
1.07 |
E2E_Compiler_gitpod_configuration |
3901786.6759780967 ns/iter |
3511153.969848283 ns/iter |
1.11 |
E2E_Compiler_helm_chart_lock |
536482.8749999319 ns/iter |
446725.8316326804 ns/iter |
1.20 |
E2E_Compiler_importmap |
217312.1446306472 ns/iter |
181361.9149818637 ns/iter |
1.20 |
E2E_Compiler_jasmine |
1012102.360750123 ns/iter |
865753.9650874201 ns/iter |
1.17 |
E2E_Compiler_jshintrc |
3364251.096618626 ns/iter |
2951110.873949488 ns/iter |
1.14 |
E2E_Compiler_jsconfig |
18906409.027030766 ns/iter |
16858160.365855593 ns/iter |
1.12 |
E2E_Compiler_krakend |
131639268.40002206 ns/iter |
119688809.16667028 ns/iter |
1.10 |
E2E_Compiler_lazygit |
27738035.599995784 ns/iter |
25603397.74074102 ns/iter |
1.08 |
E2E_Compiler_lerna |
1213733.3166089072 ns/iter |
1031459.8379970524 ns/iter |
1.18 |
E2E_Compiler_nest_cli |
6065431.914529242 ns/iter |
5366939.292308905 ns/iter |
1.13 |
E2E_Compiler_omc |
133185786.19996515 ns/iter |
128843323.59999461 ns/iter |
1.03 |
E2E_Compiler_omnisharp |
5450663.546874069 ns/iter |
4825250.643835243 ns/iter |
1.13 |
E2E_Compiler_openapi |
19637444.62857124 ns/iter |
18451561.4210544 ns/iter |
1.06 |
E2E_Compiler_pre_commit_hooks |
3957771.2372883875 ns/iter |
3566263.0507616126 ns/iter |
1.11 |
E2E_Compiler_pulumi |
3111810.999999862 ns/iter |
2799930.148594614 ns/iter |
1.11 |
E2E_Compiler_semantic_release |
1141201.791530982 ns/iter |
1009419.679190822 ns/iter |
1.13 |
E2E_Compiler_stale |
1177063.8518517364 ns/iter |
1019739.465116173 ns/iter |
1.15 |
E2E_Compiler_stylecop |
4902925.748251777 ns/iter |
4312996.691357321 ns/iter |
1.14 |
E2E_Compiler_tmuxinator |
1423212.7703251985 ns/iter |
1242155.6378091828 ns/iter |
1.15 |
E2E_Compiler_ui5 |
39009636.55555895 ns/iter |
38864754.61110371 ns/iter |
1.00 |
E2E_Compiler_ui5_manifest |
248586831.33334124 ns/iter |
238676296.333324 ns/iter |
1.04 |
E2E_Compiler_unreal_engine_uproject |
3575767.1435896135 ns/iter |
3242391.4259267244 ns/iter |
1.10 |
E2E_Compiler_users_array |
628123.5792301846 ns/iter |
529833.0206896657 ns/iter |
1.19 |
E2E_Compiler_vercel |
10882676.187499385 ns/iter |
10338353.705883626 ns/iter |
1.05 |
E2E_Compiler_yamllint |
252191.39014737742 ns/iter |
212009.06442829283 ns/iter |
1.19 |
E2E_Evaluator_adaptivecard |
25945.49822891653 ns/iter |
24188.88463896639 ns/iter |
1.07 |
E2E_Evaluator_ansible_meta |
244376.35858934157 ns/iter |
221707.60859879036 ns/iter |
1.10 |
E2E_Evaluator_aws_cdk |
50652.33689999786 ns/iter |
45295.27719092884 ns/iter |
1.12 |
E2E_Evaluator_babelrc |
117687.76649747089 ns/iter |
104185.7860051 ns/iter |
1.13 |
E2E_Evaluator_cerebrum_criminal_case |
1059561.5993886043 ns/iter |
1183953.844856568 ns/iter |
0.89 |
E2E_Evaluator_clang_format |
112591.92973229158 ns/iter |
109352.10230458748 ns/iter |
1.03 |
E2E_Evaluator_cmake_presets |
4445043.706250829 ns/iter |
5410640.726562832 ns/iter |
0.82 |
E2E_Evaluator_code_climate |
183772.93692020632 ns/iter |
198870.60527065097 ns/iter |
0.92 |
E2E_Evaluator_cql2 |
223949.3998091063 ns/iter |
204923.67326158372 ns/iter |
1.09 |
E2E_Evaluator_cspell |
650094.8609022588 ns/iter |
634690.2180656014 ns/iter |
1.02 |
E2E_Evaluator_cypress |
199797.57283745802 ns/iter |
180608.33720927231 ns/iter |
1.11 |
E2E_Evaluator_deno |
331811.1795357721 ns/iter |
348576.4396594837 ns/iter |
0.95 |
E2E_Evaluator_dependabot |
350058.13936072646 ns/iter |
350622.6365000202 ns/iter |
1.00 |
E2E_Evaluator_draft_04 |
8966063.243589746 ns/iter |
8835816.759494286 ns/iter |
1.01 |
E2E_Evaluator_fabric_mod |
709969.0881146637 ns/iter |
687982.0362744831 ns/iter |
1.03 |
E2E_Evaluator_geojson |
11692646.423729826 ns/iter |
13814661.941176062 ns/iter |
0.85 |
E2E_Evaluator_gitpod_configuration |
254805.82708409274 ns/iter |
239397.71263188636 ns/iter |
1.06 |
E2E_Evaluator_helm_chart_lock |
365281.8603556623 ns/iter |
431969.7207711611 ns/iter |
0.85 |
E2E_Evaluator_importmap |
51928.68210495943 ns/iter |
44381.81967317944 ns/iter |
1.17 |
E2E_Evaluator_jasmine |
113759.12421154145 ns/iter |
103765.34516853666 ns/iter |
1.10 |
E2E_Evaluator_jshintrc |
1216659.6782607604 ns/iter |
1180380.6767170613 ns/iter |
1.03 |
E2E_Evaluator_jsconfig |
438594.008805092 ns/iter |
401209.0114416149 ns/iter |
1.09 |
E2E_Evaluator_krakend |
211531.84212118614 ns/iter |
197096.79694998538 ns/iter |
1.07 |
E2E_Evaluator_lazygit |
156316.41575836504 ns/iter |
140520.98791056903 ns/iter |
1.11 |
E2E_Evaluator_lerna |
153921.20785170374 ns/iter |
151925.0919965271 ns/iter |
1.01 |
E2E_Evaluator_nest_cli |
201955.27872156625 ns/iter |
194261.5561999005 ns/iter |
1.04 |
E2E_Evaluator_omc |
22438.27916006308 ns/iter |
20243.926763499505 ns/iter |
1.11 |
E2E_Evaluator_omnisharp |
639285.8963302412 ns/iter |
583423.3425230652 ns/iter |
1.10 |
E2E_Evaluator_openapi |
13070760.735848485 ns/iter |
13470823.769230613 ns/iter |
0.97 |
E2E_Evaluator_pre_commit_hooks |
509079.87591243157 ns/iter |
535339.5921358077 ns/iter |
0.95 |
E2E_Evaluator_pulumi |
701795.0995024459 ns/iter |
732960.3463569724 ns/iter |
0.96 |
E2E_Evaluator_semantic_release |
103038.27073277705 ns/iter |
85516.64344614928 ns/iter |
1.20 |
E2E_Evaluator_stale |
158792.70841885163 ns/iter |
148209.19508516358 ns/iter |
1.07 |
E2E_Evaluator_stylecop |
296944.55409425776 ns/iter |
288196.03957126016 ns/iter |
1.03 |
E2E_Evaluator_tmuxinator |
97380.94524618053 ns/iter |
85231.07426764663 ns/iter |
1.14 |
E2E_Evaluator_ui5 |
537400.0290518518 ns/iter |
507784.29999991204 ns/iter |
1.06 |
E2E_Evaluator_ui5_manifest |
2637228.8320608833 ns/iter |
2907113.048035386 ns/iter |
0.91 |
E2E_Evaluator_unreal_engine_uproject |
460436.676334974 ns/iter |
477570.8566529391 ns/iter |
0.96 |
E2E_Evaluator_users_array |
604222.0275387266 ns/iter |
610729.237885383 ns/iter |
0.99 |
E2E_Evaluator_vercel |
338176.2640963709 ns/iter |
350109.0009965115 ns/iter |
0.97 |
E2E_Evaluator_yamllint |
8801.236994509578 ns/iter |
8141.453152451609 ns/iter |
1.08 |
JSONLD_Catalog_Simple |
20250013.971430495 ns/iter |
22937044.59999996 ns/iter |
0.88 |
JSONLD_Catalog_Override_Agreeing |
20391686.242419384 ns/iter |
23243154.48387067 ns/iter |
0.88 |
JSONLD_Catalog_Override_Shadowing |
31178352.54545298 ns/iter |
36486221.73684663 ns/iter |
0.85 |
Micro_Draft4_Meta_1_No_Callback |
195.9024364911454 ns/iter |
179.52915246706803 ns/iter |
1.09 |
Micro_Draft4_Required_Properties |
817.6103870801365 ns/iter |
857.0716279713599 ns/iter |
0.95 |
Micro_Draft4_Many_Optional_Properties_Minimal_Match |
23.047684748168805 ns/iter |
24.09500114871443 ns/iter |
0.96 |
Micro_Draft4_Few_Optional_Properties_Minimal_Match |
12.139968535524515 ns/iter |
10.87285436125379 ns/iter |
1.12 |
Micro_Draft4_Items_Schema |
281.5508946975012 ns/iter |
264.5329492539765 ns/iter |
1.06 |
Micro_Draft4_Nested_Object |
1.86741890422844 ns/iter |
1.1538332442580825 ns/iter |
1.62 |
Micro_Draft4_Properties_Triad_Optional |
324.70584748424886 ns/iter |
318.2979891715892 ns/iter |
1.02 |
Micro_Draft4_Properties_Triad_Closed |
265.82305068578006 ns/iter |
263.2737597440422 ns/iter |
1.01 |
Micro_Draft4_Properties_Triad_Required |
344.46862647804255 ns/iter |
331.3960999479907 ns/iter |
1.04 |
Micro_Draft4_Properties_Closed |
60.04752246418445 ns/iter |
63.97259946690994 ns/iter |
0.94 |
Micro_Draft4_Non_Recursive_Ref |
13.908394392121947 ns/iter |
13.86903207262417 ns/iter |
1.00 |
Micro_Draft4_Pattern_Properties_True |
141.3098692328492 ns/iter |
133.16522959714348 ns/iter |
1.06 |
Micro_Draft4_Ref_To_Single_Property |
12.140617667246635 ns/iter |
10.703476373172327 ns/iter |
1.13 |
Micro_Draft4_Additional_Properties_Type |
33.39900368200843 ns/iter |
33.202241632049024 ns/iter |
1.01 |
Micro_Draft4_Nested_Oneof |
57.54895953494497 ns/iter |
46.38304611204937 ns/iter |
1.24 |
Micro_Draft4_Short_Enum |
18.88683957524232 ns/iter |
9.115413555495156 ns/iter |
2.07 |
Micro_Draft4_Long_Enum |
15.886721192243872 ns/iter |
11.093385407971248 ns/iter |
1.43 |
Micro_Draft4_Long_Enum_Short_Strings |
12.153782657498537 ns/iter |
9.117178097439513 ns/iter |
1.33 |
Micro_Draft4_Type_Object |
3.425778841485155 ns/iter |
3.163169110225455 ns/iter |
1.08 |
Micro_Draft4_Ref_Single_100 |
1887868.5972976128 ns/iter |
1677820.3597124426 ns/iter |
1.13 |
Micro_Draft4_Compile_Ref_Many_Nested |
1310810.9606002904 ns/iter |
1145763.8998357824 ns/iter |
1.14 |
Micro_Draft4_Compile_Wrap |
1874786.497326344 ns/iter |
1660740.0380047748 ns/iter |
1.13 |
Micro_Draft6_Property_Names |
110.23391876479914 ns/iter |
121.6891228990833 ns/iter |
0.91 |
Micro_Draft6_Compile_FHIR |
11302516600.999979 ns/iter |
16504605871.999956 ns/iter |
0.68 |
Micro_Draft7_If_Then_Else |
22.452550833177025 ns/iter |
21.14815965367255 ns/iter |
1.06 |
Micro_2019_09_Unevaluated_Properties |
27.105123858945035 ns/iter |
23.482487550978682 ns/iter |
1.15 |
Micro_2019_09_Compile_Wrap |
274191020.499984 ns/iter |
252421924.33332396 ns/iter |
1.09 |
Micro_2020_12_Dynamic_Ref |
698.92830464793 ns/iter |
872.9947602902729 ns/iter |
0.80 |
Micro_2020_12_Dynamic_Ref_Single |
3.4241112732611896 ns/iter |
3.172264110547642 ns/iter |
1.08 |
Micro_2020_12_Simple_Output_Mask |
1096.669610630082 ns/iter |
958.5553271143144 ns/iter |
1.14 |
Micro_2020_12_Simple_Output_Annotations |
51361.153941653305 ns/iter |
49555.290174157446 ns/iter |
1.04 |
Micro_2020_12_Simple_Output_Annotation_Dropping |
1420536.8574337538 ns/iter |
1274591.7737224374 ns/iter |
1.11 |
Micro_2020_12_Compile_NonCircular_Shared_Refs |
779583.9910616262 ns/iter |
664627.5517241659 ns/iter |
1.17 |
Micro_2020_12_Exhaustive_Deep_Numeric |
8488.937447128836 ns/iter |
8691.405583455367 ns/iter |
0.98 |
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput |
38514.55202406705 ns/iter |
35722.81918537117 ns/iter |
1.08 |
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput |
20378.718723716545 ns/iter |
19462.71042771044 ns/iter |
1.05 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail |
149.74764049986857 ns/iter |
148.14872097504312 ns/iter |
1.01 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput |
2553.648913277158 ns/iter |
2244.3652121398995 ns/iter |
1.14 |
TestSuite_Parse_WoT |
20587418.529410515 ns/iter |
18880323.13889375 ns/iter |
1.09 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
346031545.0000735 ns/iter |
302035329.999967 ns/iter |
1.15 |
Alterschema_Check_Readibility_OMC |
81967970.74998586 ns/iter |
87781037.12498364 ns/iter |
0.93 |
Alterschema_Check_Readibility_KrakenD |
1022909768.9998525 ns/iter |
1224195247.0001252 ns/iter |
0.84 |
Alterschema_Apply_Readibility_KrakenD |
113089044926.00005 ns/iter |
131041927113.00015 ns/iter |
0.86 |
Alterschema_Check_Invalid_External_Refs |
271460419.00005 ns/iter |
229357508.66668057 ns/iter |
1.18 |
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: 95f78b3 | Previous: 3c70205 | Ratio |
|---|---|---|---|
E2E_Evaluator_adaptivecard |
121717 ns |
114619 ns |
1.06 |
E2E_Evaluator_ansible-meta |
538846 ns |
557195 ns |
0.97 |
E2E_Evaluator_aws-cdk |
142203 ns |
147214 ns |
0.97 |
E2E_Evaluator_babelrc |
339333 ns |
469999 ns |
0.72 |
E2E_Evaluator_cerebrum-criminal-case |
2482512 ns |
2557776 ns |
0.97 |
E2E_Evaluator_clang-format |
243487 ns |
324813 ns |
0.75 |
E2E_Evaluator_cmake-presets |
16722762 ns |
18917179 ns |
0.88 |
E2E_Evaluator_code-climate |
517995 ns |
582862 ns |
0.89 |
E2E_Evaluator_cql2 |
1316482 ns |
1238651 ns |
1.06 |
E2E_Evaluator_cspell |
1492379 ns |
1775676 ns |
0.84 |
E2E_Evaluator_cypress |
753028 ns |
994415 ns |
0.76 |
E2E_Evaluator_deno |
1025166 ns |
1099997 ns |
0.93 |
E2E_Evaluator_dependabot |
1088087 ns |
1138702 ns |
0.96 |
E2E_Evaluator_draft-04 |
19744276 ns |
21782936 ns |
0.91 |
E2E_Evaluator_fabric-mod |
2306945 ns |
2420290 ns |
0.95 |
E2E_Evaluator_geojson |
22548204 ns |
27020924 ns |
0.83 |
E2E_Evaluator_gitpod-configuration |
708979 ns |
818710 ns |
0.87 |
E2E_Evaluator_helm-chart-lock |
1004303 ns |
1044583 ns |
0.96 |
E2E_Evaluator_importmap |
260784 ns |
332245 ns |
0.78 |
E2E_Evaluator_jasmine |
298832 ns |
339414 ns |
0.88 |
E2E_Evaluator_jsconfig |
1214435 ns |
1691847 ns |
0.72 |
E2E_Evaluator_jshintrc |
2729677 ns |
3086149 ns |
0.88 |
E2E_Evaluator_krakend |
672014 ns |
620760 ns |
1.08 |
E2E_Evaluator_lazygit |
506981 ns |
512214 ns |
0.99 |
E2E_Evaluator_lerna |
470401 ns |
475921 ns |
0.99 |
E2E_Evaluator_nest-cli |
588025 ns |
744431 ns |
0.79 |
E2E_Evaluator_omc |
120596 ns |
111853 ns |
1.08 |
E2E_Evaluator_omnisharp |
1380970 ns |
1613640 ns |
0.86 |
E2E_Evaluator_openapi |
42181178 ns |
37928453 ns |
1.11 |
E2E_Evaluator_pre-commit-hooks |
1964357 ns |
2210985 ns |
0.89 |
E2E_Evaluator_pulumi |
1944741 ns |
2180800 ns |
0.89 |
E2E_Evaluator_semantic-release |
251756 ns |
303080 ns |
0.83 |
E2E_Evaluator_stale |
396840 ns |
453247 ns |
0.88 |
E2E_Evaluator_stylecop |
1181384 ns |
1297893 ns |
0.91 |
E2E_Evaluator_tmuxinator |
234227 ns |
304857 ns |
0.77 |
E2E_Evaluator_ui5 |
2224847 ns |
2132987 ns |
1.04 |
E2E_Evaluator_ui5-manifest |
10287545 ns |
10086513 ns |
1.02 |
E2E_Evaluator_unreal-engine-uproject |
1490471 ns |
1726747 ns |
0.86 |
E2E_Evaluator_users-array |
2908472 ns |
3145978 ns |
0.92 |
E2E_Evaluator_vercel |
967464 ns |
1088110 ns |
0.89 |
E2E_Evaluator_yamllint |
25517 ns |
26914 ns |
0.95 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (macos/llvm)
Details
| Benchmark suite | Current: 95f78b3 | Previous: 3c70205 | Ratio |
|---|---|---|---|
Schema_Tracker_ISO_Language |
2640467.2988049304 ns/iter |
4439163.461538206 ns/iter |
0.59 |
Schema_Tracker_ISO_Language_To_JSON |
10079748.18840605 ns/iter |
16407833.319147628 ns/iter |
0.61 |
Schema_Frame_WoT_References |
3687037.820512346 ns/iter |
5328357.91000025 ns/iter |
0.69 |
Schema_Frame_OMC_References |
16281457.333334293 ns/iter |
25328254.99999944 ns/iter |
0.64 |
Schema_Frame_OMC_Locations |
15335156.04255191 ns/iter |
24950747.200000476 ns/iter |
0.61 |
Schema_Frame_ISO_Language_Locations |
64727469.63635762 ns/iter |
92311411.4999919 ns/iter |
0.70 |
Schema_Frame_ISO_Language_Root |
161.1732885951951 ns/iter |
211.98916859862373 ns/iter |
0.76 |
Schema_Frame_KrakenD_References |
46182842.1052635 ns/iter |
58651487.50000344 ns/iter |
0.79 |
Schema_Frame_KrakenD_Reachable |
414571500.0000223 ns/iter |
673720791.0000507 ns/iter |
0.62 |
Schema_Frame_ISO_Language_Locations_To_JSON |
103264798.6666575 ns/iter |
138522677.24999478 ns/iter |
0.75 |
Schema_Frame_Many_Resources_References |
237409735.99997988 ns/iter |
317692895.9999827 ns/iter |
0.75 |
Schema_Frame_Deeply_Nested_References |
11548508.46874922 ns/iter |
15256816.295455813 ns/iter |
0.76 |
Schema_Bundle_Meta_2020_12 |
1059766.0217818334 ns/iter |
1173590.6307926266 ns/iter |
0.90 |
Schema_Format_ISO_Language_To_JSON |
66150925.10000978 ns/iter |
79886095.59998849 ns/iter |
0.83 |
E2E_Compiler_adaptivecard |
52166295.799997896 ns/iter |
50527256.91666638 ns/iter |
1.03 |
E2E_Compiler_ansible_meta |
23394082.060607698 ns/iter |
22967278.62499992 ns/iter |
1.02 |
E2E_Compiler_aws_cdk |
229733.9941707694 ns/iter |
231133.1585081665 ns/iter |
0.99 |
E2E_Compiler_babelrc |
1702264.5824999926 ns/iter |
1860493.0025063634 ns/iter |
0.91 |
E2E_Compiler_clang_format |
13380312.93617289 ns/iter |
14075542.553190973 ns/iter |
0.95 |
E2E_Compiler_cmake_presets |
24614901.031249303 ns/iter |
26165762.499999803 ns/iter |
0.94 |
E2E_Compiler_code_climate |
1956778.7267078527 ns/iter |
2817262.145772514 ns/iter |
0.69 |
E2E_Compiler_cql2 |
8173480.80898667 ns/iter |
10581554.757142644 ns/iter |
0.77 |
E2E_Compiler_cspell |
15222380.319151038 ns/iter |
19368120.967743058 ns/iter |
0.79 |
E2E_Compiler_cypress |
3068165.000000094 ns/iter |
3692714.504629285 ns/iter |
0.83 |
E2E_Compiler_deno |
7155227.975609831 ns/iter |
6814940.9320379 ns/iter |
1.05 |
E2E_Compiler_dependabot |
2934917.947368975 ns/iter |
3659581.1298077214 ns/iter |
0.80 |
E2E_Compiler_draft_04 |
1524917.5658749423 ns/iter |
1941588.8644065706 ns/iter |
0.79 |
E2E_Compiler_fabric_mod |
2702628.253905992 ns/iter |
3185440.2373734512 ns/iter |
0.85 |
E2E_Compiler_geojson |
15714226.456521908 ns/iter |
18273903.500001825 ns/iter |
0.86 |
E2E_Compiler_gitpod_configuration |
2826283.400809152 ns/iter |
4806811.835616523 ns/iter |
0.59 |
E2E_Compiler_helm_chart_lock |
406830.82191781193 ns/iter |
474648.31245646486 ns/iter |
0.86 |
E2E_Compiler_importmap |
186910.27162237882 ns/iter |
235489.9320083651 ns/iter |
0.79 |
E2E_Compiler_jasmine |
753925.9149941332 ns/iter |
1315700.1108648584 ns/iter |
0.57 |
E2E_Compiler_jshintrc |
2481769.8014187287 ns/iter |
3740211.855720937 ns/iter |
0.66 |
E2E_Compiler_jsconfig |
14726658.854167832 ns/iter |
23050105.769230485 ns/iter |
0.64 |
E2E_Compiler_krakend |
98966797.71428093 ns/iter |
130895958.20001705 ns/iter |
0.76 |
E2E_Compiler_lazygit |
24006909.482758254 ns/iter |
35474359.14285437 ns/iter |
0.68 |
E2E_Compiler_lerna |
928955.3073929488 ns/iter |
1321808.4973070936 ns/iter |
0.70 |
E2E_Compiler_nest_cli |
5185881.842857854 ns/iter |
6120959.1836739825 ns/iter |
0.85 |
E2E_Compiler_omc |
119081520.83333333 ns/iter |
326439041.7999948 ns/iter |
0.36 |
E2E_Compiler_omnisharp |
4567826.85810785 ns/iter |
7868584.854545382 ns/iter |
0.58 |
E2E_Compiler_openapi |
15951558.333330872 ns/iter |
23239080.35713933 ns/iter |
0.69 |
E2E_Compiler_pre_commit_hooks |
3606840.5612236257 ns/iter |
4396030.523255747 ns/iter |
0.82 |
E2E_Compiler_pulumi |
2339304.443333579 ns/iter |
3701287.8578680838 ns/iter |
0.63 |
E2E_Compiler_semantic_release |
873372.8808933744 ns/iter |
1253734.3406595509 ns/iter |
0.70 |
E2E_Compiler_stale |
893681.0494924777 ns/iter |
1264613.2189655057 ns/iter |
0.71 |
E2E_Compiler_stylecop |
3962379.4999993253 ns/iter |
5246079.580000469 ns/iter |
0.76 |
E2E_Compiler_tmuxinator |
1082970.1839258685 ns/iter |
1514674.202614509 ns/iter |
0.71 |
E2E_Compiler_ui5 |
33899787.500001825 ns/iter |
54732484.90908521 ns/iter |
0.62 |
E2E_Compiler_ui5_manifest |
213286152.99997485 ns/iter |
320083499.9999529 ns/iter |
0.67 |
E2E_Compiler_unreal_engine_uproject |
2771216.8007963053 ns/iter |
3901629.7554350942 ns/iter |
0.71 |
E2E_Compiler_users_array |
447742.93989772076 ns/iter |
745288.9886086088 ns/iter |
0.60 |
E2E_Compiler_vercel |
8291715.988505154 ns/iter |
11514296.789472243 ns/iter |
0.72 |
E2E_Compiler_yamllint |
223216.6132479016 ns/iter |
258933.32308322712 ns/iter |
0.86 |
E2E_Evaluator_adaptivecard |
22666.63739186246 ns/iter |
24397.54303442995 ns/iter |
0.93 |
E2E_Evaluator_ansible_meta |
189289.55490142736 ns/iter |
218507.45958620572 ns/iter |
0.87 |
E2E_Evaluator_aws_cdk |
47538.7072648082 ns/iter |
58968.16958861251 ns/iter |
0.81 |
E2E_Evaluator_babelrc |
91716.04173643643 ns/iter |
106684.99721914469 ns/iter |
0.86 |
E2E_Evaluator_cerebrum_criminal_case |
896970.1327063577 ns/iter |
889013.207492759 ns/iter |
1.01 |
E2E_Evaluator_clang_format |
98150.04782818654 ns/iter |
98346.04572713021 ns/iter |
1.00 |
E2E_Evaluator_cmake_presets |
3888647.641304033 ns/iter |
4833895.12921382 ns/iter |
0.80 |
E2E_Evaluator_code_climate |
150771.13128382282 ns/iter |
170170.8198930539 ns/iter |
0.89 |
E2E_Evaluator_cql2 |
183755.60230493205 ns/iter |
185634.09817840296 ns/iter |
0.99 |
E2E_Evaluator_cspell |
523271.4589999432 ns/iter |
581719.8876494182 ns/iter |
0.90 |
E2E_Evaluator_cypress |
131282.50452114485 ns/iter |
191859.5056737538 ns/iter |
0.68 |
E2E_Evaluator_deno |
250841.96820924417 ns/iter |
301716.6277588986 ns/iter |
0.83 |
E2E_Evaluator_dependabot |
283555.63332002534 ns/iter |
318320.43973941554 ns/iter |
0.89 |
E2E_Evaluator_draft_04 |
5487166.249999973 ns/iter |
5539848.539682687 ns/iter |
0.99 |
E2E_Evaluator_fabric_mod |
521063.4170000503 ns/iter |
748444.5839999125 ns/iter |
0.70 |
E2E_Evaluator_geojson |
8937740.131581282 ns/iter |
11627785.7968754 ns/iter |
0.77 |
E2E_Evaluator_gitpod_configuration |
195252.51416579867 ns/iter |
251040.2361826446 ns/iter |
0.78 |
E2E_Evaluator_helm_chart_lock |
269779.31647153787 ns/iter |
359625.8448844725 ns/iter |
0.75 |
E2E_Evaluator_importmap |
39855.42815989806 ns/iter |
57381.585332037495 ns/iter |
0.69 |
E2E_Evaluator_jasmine |
92628.75246873625 ns/iter |
120930.31089079214 ns/iter |
0.77 |
E2E_Evaluator_jshintrc |
911049.1365851065 ns/iter |
1234631.5872019252 ns/iter |
0.74 |
E2E_Evaluator_jsconfig |
290868.87158463616 ns/iter |
394077.215686311 ns/iter |
0.74 |
E2E_Evaluator_krakend |
129055.54277827963 ns/iter |
163262.28924895797 ns/iter |
0.79 |
E2E_Evaluator_lazygit |
101343.77065125467 ns/iter |
120639.8611724698 ns/iter |
0.84 |
E2E_Evaluator_lerna |
122736.11825725297 ns/iter |
140681.0708851444 ns/iter |
0.87 |
E2E_Evaluator_nest_cli |
154264.43477324498 ns/iter |
185263.1019340051 ns/iter |
0.83 |
E2E_Evaluator_omc |
17165.0655456825 ns/iter |
19340.39191590049 ns/iter |
0.89 |
E2E_Evaluator_omnisharp |
462335.6344510607 ns/iter |
755483.0000000265 ns/iter |
0.61 |
E2E_Evaluator_openapi |
6611673.409523584 ns/iter |
11204171.689653635 ns/iter |
0.59 |
E2E_Evaluator_pre_commit_hooks |
378464.0957446948 ns/iter |
587959.1370558046 ns/iter |
0.64 |
E2E_Evaluator_pulumi |
585239.4234137255 ns/iter |
728337.4720908519 ns/iter |
0.80 |
E2E_Evaluator_semantic_release |
71401.2322346464 ns/iter |
117334.5752199828 ns/iter |
0.61 |
E2E_Evaluator_stale |
120960.05474329213 ns/iter |
162683.32607288944 ns/iter |
0.74 |
E2E_Evaluator_stylecop |
194826.26889327314 ns/iter |
267930.79472477373 ns/iter |
0.73 |
E2E_Evaluator_tmuxinator |
68542.37333073975 ns/iter |
96003.03520555136 ns/iter |
0.71 |
E2E_Evaluator_ui5 |
354823.1830986093 ns/iter |
540272.7649006678 ns/iter |
0.66 |
E2E_Evaluator_ui5_manifest |
1565117.4665179164 ns/iter |
3009821.9217388364 ns/iter |
0.52 |
E2E_Evaluator_unreal_engine_uproject |
337015.56764557445 ns/iter |
517562.7846374424 ns/iter |
0.65 |
E2E_Evaluator_users_array |
412309.1316872575 ns/iter |
632388.7500000183 ns/iter |
0.65 |
E2E_Evaluator_vercel |
229169.4996746277 ns/iter |
329754.91772769706 ns/iter |
0.69 |
E2E_Evaluator_yamllint |
9224.841592276849 ns/iter |
10361.035486292412 ns/iter |
0.89 |
JSONLD_Catalog_Simple |
13967324.159998499 ns/iter |
19963684.820513897 ns/iter |
0.70 |
JSONLD_Catalog_Override_Agreeing |
13914443.319999918 ns/iter |
21745259.823530085 ns/iter |
0.64 |
JSONLD_Catalog_Override_Shadowing |
19189219.916667197 ns/iter |
28513480.000001434 ns/iter |
0.67 |
Micro_Draft4_Meta_1_No_Callback |
143.16366310530222 ns/iter |
187.58685635054385 ns/iter |
0.76 |
Micro_Draft4_Required_Properties |
665.6145319416914 ns/iter |
858.5592247904623 ns/iter |
0.78 |
Micro_Draft4_Many_Optional_Properties_Minimal_Match |
16.111755640744896 ns/iter |
21.31516983049454 ns/iter |
0.76 |
Micro_Draft4_Few_Optional_Properties_Minimal_Match |
8.86861322677706 ns/iter |
14.172993579690734 ns/iter |
0.63 |
Micro_Draft4_Items_Schema |
251.4845704249049 ns/iter |
289.9022291970635 ns/iter |
0.87 |
Micro_Draft4_Nested_Object |
0.9870577577657503 ns/iter |
1.0855788399904502 ns/iter |
0.91 |
Micro_Draft4_Properties_Triad_Optional |
252.62493866808208 ns/iter |
249.5228155822197 ns/iter |
1.01 |
Micro_Draft4_Properties_Triad_Closed |
218.95397815421944 ns/iter |
222.92610180243256 ns/iter |
0.98 |
Micro_Draft4_Properties_Triad_Required |
299.7621859720041 ns/iter |
267.93086824825986 ns/iter |
1.12 |
Micro_Draft4_Properties_Closed |
46.916354115077134 ns/iter |
53.79996670000082 ns/iter |
0.87 |
Micro_Draft4_Non_Recursive_Ref |
11.703535340679267 ns/iter |
14.605376913362043 ns/iter |
0.80 |
Micro_Draft4_Pattern_Properties_True |
134.16444037122528 ns/iter |
170.97343357179227 ns/iter |
0.78 |
Micro_Draft4_Ref_To_Single_Property |
8.80388011126191 ns/iter |
12.030164995519543 ns/iter |
0.73 |
Micro_Draft4_Additional_Properties_Type |
24.490623617751275 ns/iter |
33.330827687640905 ns/iter |
0.73 |
Micro_Draft4_Nested_Oneof |
33.39539099902503 ns/iter |
49.297664304879234 ns/iter |
0.68 |
Micro_Draft4_Short_Enum |
4.60692943438388 ns/iter |
5.1136197565324775 ns/iter |
0.90 |
Micro_Draft4_Long_Enum |
8.794713601216674 ns/iter |
10.485398551400746 ns/iter |
0.84 |
Micro_Draft4_Long_Enum_Short_Strings |
6.083960638434938 ns/iter |
6.695738722077053 ns/iter |
0.91 |
Micro_Draft4_Type_Object |
2.2534480427314976 ns/iter |
3.3324866068555865 ns/iter |
0.68 |
Micro_Draft4_Ref_Single_100 |
1511818.9909418582 ns/iter |
2136868.9365082956 ns/iter |
0.71 |
Micro_Draft4_Compile_Ref_Many_Nested |
858575.9259257889 ns/iter |
1132865.0319886876 ns/iter |
0.76 |
Micro_Draft4_Compile_Wrap |
1366758.2495050773 ns/iter |
1888891.0076338206 ns/iter |
0.72 |
Micro_Draft6_Property_Names |
87.12682079297903 ns/iter |
102.63644322310486 ns/iter |
0.85 |
Micro_Draft6_Compile_FHIR |
7642442999.999957 ns/iter |
14942654416.000095 ns/iter |
0.51 |
Micro_Draft7_If_Then_Else |
16.51454809576933 ns/iter |
21.35141342248228 ns/iter |
0.77 |
Micro_2019_09_Unevaluated_Properties |
26.340844414698324 ns/iter |
29.766461363231265 ns/iter |
0.88 |
Micro_2019_09_Compile_Wrap |
232092444.6666292 ns/iter |
291016874.9999684 ns/iter |
0.80 |
Micro_2020_12_Dynamic_Ref |
550.7094308214726 ns/iter |
770.2522380569173 ns/iter |
0.71 |
Micro_2020_12_Dynamic_Ref_Single |
2.255564931730537 ns/iter |
3.3728863073380717 ns/iter |
0.67 |
Micro_2020_12_Simple_Output_Mask |
743.4463969808603 ns/iter |
847.2736567560835 ns/iter |
0.88 |
Micro_2020_12_Simple_Output_Annotations |
52753.40908424217 ns/iter |
52004.263467883975 ns/iter |
1.01 |
Micro_2020_12_Simple_Output_Annotation_Dropping |
1117353.3306581313 ns/iter |
1282134.0206186243 ns/iter |
0.87 |
Micro_2020_12_Compile_NonCircular_Shared_Refs |
621568.6017857332 ns/iter |
698025.7358140249 ns/iter |
0.89 |
Micro_2020_12_Exhaustive_Deep_Numeric |
4771.266404951511 ns/iter |
5969.91961148133 ns/iter |
0.80 |
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput |
27877.98570858184 ns/iter |
38240.51140181989 ns/iter |
0.73 |
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput |
13258.03996883719 ns/iter |
13373.632261099277 ns/iter |
0.99 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail |
84.39371087217438 ns/iter |
91.26014016219933 ns/iter |
0.92 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput |
2141.759148029915 ns/iter |
2639.929391776013 ns/iter |
0.81 |
TestSuite_Parse_WoT |
16712177.571429536 ns/iter |
21262431.324319895 ns/iter |
0.79 |
Alterschema_Check_Readibility_ISO_Language_Set_3 |
178651906.2500247 ns/iter |
263865624.999994 ns/iter |
0.68 |
Alterschema_Check_Readibility_OMC |
51907791.692306444 ns/iter |
78514527.77779539 ns/iter |
0.66 |
Alterschema_Check_Readibility_KrakenD |
603458000.000046 ns/iter |
804656000.0000226 ns/iter |
0.75 |
Alterschema_Apply_Readibility_KrakenD |
75101455124.9998 ns/iter |
87627222624.99983 ns/iter |
0.86 |
Alterschema_Check_Invalid_External_Refs |
181955333.25001633 ns/iter |
157848156.24999738 ns/iter |
1.15 |
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: 95f78b3 | Previous: 3c70205 | Ratio |
|---|---|---|---|
E2E_Evaluator_adaptivecard |
139872 ns |
94856 ns |
1.47 |
E2E_Evaluator_ansible-meta |
460758 ns |
373649 ns |
1.23 |
E2E_Evaluator_aws-cdk |
137444 ns |
122418 ns |
1.12 |
E2E_Evaluator_babelrc |
358254 ns |
269180 ns |
1.33 |
E2E_Evaluator_cerebrum-criminal-case |
2399974 ns |
1864220 ns |
1.29 |
E2E_Evaluator_clang-format |
201300 ns |
173122 ns |
1.16 |
E2E_Evaluator_cmake-presets |
15775821 ns |
12036449 ns |
1.31 |
E2E_Evaluator_code-climate |
467531 ns |
382391 ns |
1.22 |
E2E_Evaluator_cql2 |
1122149 ns |
919054 ns |
1.22 |
E2E_Evaluator_cspell |
1375418 ns |
1009298 ns |
1.36 |
E2E_Evaluator_cypress |
668188 ns |
505752 ns |
1.32 |
E2E_Evaluator_deno |
824948 ns |
611866 ns |
1.35 |
E2E_Evaluator_dependabot |
820968 ns |
695945 ns |
1.18 |
E2E_Evaluator_draft-04 |
16539292 ns |
14676494 ns |
1.13 |
E2E_Evaluator_fabric-mod |
1657980 ns |
1266684 ns |
1.31 |
E2E_Evaluator_geojson |
17855686 ns |
15212872 ns |
1.17 |
E2E_Evaluator_gitpod-configuration |
533456 ns |
460451 ns |
1.16 |
E2E_Evaluator_helm-chart-lock |
937105 ns |
800532 ns |
1.17 |
E2E_Evaluator_importmap |
279430 ns |
201941 ns |
1.38 |
E2E_Evaluator_jasmine |
265619 ns |
197942 ns |
1.34 |
E2E_Evaluator_jsconfig |
1123024 ns |
857745 ns |
1.31 |
E2E_Evaluator_jshintrc |
3018283 ns |
1841227 ns |
1.64 |
E2E_Evaluator_krakend |
443738 ns |
399079 ns |
1.11 |
E2E_Evaluator_lazygit |
320333 ns |
258870 ns |
1.24 |
E2E_Evaluator_lerna |
374631 ns |
306617 ns |
1.22 |
E2E_Evaluator_nest-cli |
506423 ns |
385288 ns |
1.31 |
E2E_Evaluator_omc |
104669 ns |
104543 ns |
1.00 |
E2E_Evaluator_omnisharp |
1169751 ns |
1285417 ns |
0.91 |
E2E_Evaluator_openapi |
38588112 ns |
28996757 ns |
1.33 |
E2E_Evaluator_pre-commit-hooks |
1388185 ns |
1232081 ns |
1.13 |
E2E_Evaluator_pulumi |
1513407 ns |
1280396 ns |
1.18 |
E2E_Evaluator_semantic-release |
196980 ns |
171746 ns |
1.15 |
E2E_Evaluator_stale |
313737 ns |
267092 ns |
1.17 |
E2E_Evaluator_stylecop |
835778 ns |
644943 ns |
1.30 |
E2E_Evaluator_tmuxinator |
211645 ns |
160788 ns |
1.32 |
E2E_Evaluator_ui5 |
1844376 ns |
1416489 ns |
1.30 |
E2E_Evaluator_ui5-manifest |
10044310 ns |
7027583 ns |
1.43 |
E2E_Evaluator_unreal-engine-uproject |
1339126 ns |
1253507 ns |
1.07 |
E2E_Evaluator_users-array |
2761779 ns |
2068331 ns |
1.34 |
E2E_Evaluator_vercel |
783473 ns |
669411 ns |
1.17 |
E2E_Evaluator_yamllint |
26724 ns |
22457 ns |
1.19 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
Benchmark (linux/gcc)
Details
| Benchmark suite | Current: 95f78b3 | Previous: 3c70205 | Ratio |
|---|---|---|---|
Alterschema_Check_Readibility_ISO_Language_Set_3 |
326465901.99999535 ns/iter |
311744183.4999681 ns/iter |
1.05 |
Alterschema_Check_Readibility_OMC |
86016708.12498696 ns/iter |
93721377.85713415 ns/iter |
0.92 |
Alterschema_Check_Readibility_KrakenD |
1033277133.9999454 ns/iter |
1160735592.0000372 ns/iter |
0.89 |
Alterschema_Apply_Readibility_KrakenD |
116102310104.00003 ns/iter |
129001841131.99998 ns/iter |
0.90 |
Alterschema_Check_Invalid_External_Refs |
286574926.50006586 ns/iter |
271458658.00002867 ns/iter |
1.06 |
TestSuite_Parse_WoT |
23172725.333332285 ns/iter |
22408147.806448054 ns/iter |
1.03 |
Micro_2020_12_Dynamic_Ref |
1008.3873198124221 ns/iter |
951.5271449910306 ns/iter |
1.06 |
Micro_2020_12_Dynamic_Ref_Single |
4.380231773392397 ns/iter |
3.875979195754782 ns/iter |
1.13 |
Micro_2020_12_Simple_Output_Mask |
1251.0570271270972 ns/iter |
1250.1828109414625 ns/iter |
1.00 |
Micro_2020_12_Simple_Output_Annotations |
61726.55894454177 ns/iter |
54782.53545174342 ns/iter |
1.13 |
Micro_2020_12_Simple_Output_Annotation_Dropping |
1646175.016432027 ns/iter |
1566641.8456375378 ns/iter |
1.05 |
Micro_2020_12_Compile_NonCircular_Shared_Refs |
881272.5479799036 ns/iter |
841603.576877305 ns/iter |
1.05 |
Micro_2020_12_Exhaustive_Deep_Numeric |
9288.633468898915 ns/iter |
9596.231649906 ns/iter |
0.97 |
Micro_2020_12_Exhaustive_Deep_Numeric_SimpleOutput |
44037.25917546268 ns/iter |
46075.97075510808 ns/iter |
0.96 |
Micro_2020_12_Exhaustive_Deep_Numeric_TraceOutput |
22567.270131203364 ns/iter |
22448.98881123886 ns/iter |
1.01 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail |
170.48239086891587 ns/iter |
182.297987021271 ns/iter |
0.94 |
Micro_2020_12_Exhaustive_Deep_Numeric_Fail_SimpleOutput |
2961.151766525786 ns/iter |
2676.490647981496 ns/iter |
1.11 |
Micro_2019_09_Unevaluated_Properties |
31.18029290938093 ns/iter |
31.332472595748243 ns/iter |
1.00 |
Micro_2019_09_Compile_Wrap |
285487250.4999548 ns/iter |
288048749.5000352 ns/iter |
0.99 |
Micro_Draft7_If_Then_Else |
25.839865555348755 ns/iter |
25.29313705923438 ns/iter |
1.02 |
Micro_Draft6_Property_Names |
156.3502775446916 ns/iter |
150.75882608254224 ns/iter |
1.04 |
Micro_Draft6_Compile_FHIR |
11554503273.000137 ns/iter |
12296029214.999863 ns/iter |
0.94 |
Micro_Draft4_Meta_1_No_Callback |
187.8337004661345 ns/iter |
178.0525606771342 ns/iter |
1.05 |
Micro_Draft4_Required_Properties |
888.7580554731327 ns/iter |
896.3204665066222 ns/iter |
0.99 |
Micro_Draft4_Many_Optional_Properties_Minimal_Match |
22.10294106651447 ns/iter |
22.889857999768186 ns/iter |
0.97 |
Micro_Draft4_Few_Optional_Properties_Minimal_Match |
15.637682243255455 ns/iter |
16.194645515532343 ns/iter |
0.97 |
Micro_Draft4_Items_Schema |
344.8715717952169 ns/iter |
308.0477608680211 ns/iter |
1.12 |
Micro_Draft4_Nested_Object |
1.5679554180620137 ns/iter |
1.4602128764782345 ns/iter |
1.07 |
Micro_Draft4_Properties_Triad_Optional |
450.2180343837482 ns/iter |
457.3408182893668 ns/iter |
0.98 |
Micro_Draft4_Properties_Triad_Closed |
378.8462840177206 ns/iter |
347.0768939268351 ns/iter |
1.09 |
Micro_Draft4_Properties_Triad_Required |
482.9927769872362 ns/iter |
507.1839859999727 ns/iter |
0.95 |
Micro_Draft4_Properties_Closed |
64.99134097171799 ns/iter |
68.26766181187466 ns/iter |
0.95 |
Micro_Draft4_Non_Recursive_Ref |
9.020840783752856 ns/iter |
8.796163975219113 ns/iter |
1.03 |
Micro_Draft4_Pattern_Properties_True |
207.08480969340764 ns/iter |
192.60329971487224 ns/iter |
1.08 |
Micro_Draft4_Ref_To_Single_Property |
15.571981589412808 ns/iter |
16.19190285897589 ns/iter |
0.96 |
Micro_Draft4_Additional_Properties_Type |
14.455216988448273 ns/iter |
13.73025790858023 ns/iter |
1.05 |
Micro_Draft4_Nested_Oneof |
65.41850934392725 ns/iter |
63.38500411774994 ns/iter |
1.03 |
Micro_Draft4_Short_Enum |
14.672813482059471 ns/iter |
14.415118969149807 ns/iter |
1.02 |
Micro_Draft4_Long_Enum |
13.400431919738212 ns/iter |
13.715798613140601 ns/iter |
0.98 |
Micro_Draft4_Long_Enum_Short_Strings |
14.76424071202623 ns/iter |
14.433198928397124 ns/iter |
1.02 |
Micro_Draft4_Type_Object |
4.670391556876785 ns/iter |
3.8729737850770602 ns/iter |
1.21 |
Micro_Draft4_Ref_Single_100 |
1971288.0973448944 ns/iter |
1915601.4386916335 ns/iter |
1.03 |
Micro_Draft4_Compile_Ref_Many_Nested |
1364682.7324218513 ns/iter |
1322327.088512223 ns/iter |
1.03 |
Micro_Draft4_Compile_Wrap |
2107771.713855368 ns/iter |
2087482.0838322237 ns/iter |
1.01 |
JSONLD_Catalog_Simple |
21966294.812500563 ns/iter |
21449968.437501356 ns/iter |
1.02 |
JSONLD_Catalog_Override_Agreeing |
22044311.81250044 ns/iter |
21736078.18750156 ns/iter |
1.01 |
JSONLD_Catalog_Override_Shadowing |
33310618.904763382 ns/iter |
32299169.18182467 ns/iter |
1.03 |
E2E_Compiler_adaptivecard |
56260764.500014685 ns/iter |
55712024.16666665 ns/iter |
1.01 |
E2E_Compiler_ansible_meta |
26524545.346153267 ns/iter |
27238841.846155994 ns/iter |
0.97 |
E2E_Compiler_aws_cdk |
323738.64513148 ns/iter |
304865.09252824815 ns/iter |
1.06 |
E2E_Compiler_babelrc |
2185066.105918546 ns/iter |
2178031.9968647775 ns/iter |
1.00 |
E2E_Compiler_clang_format |
15920216.204542406 ns/iter |
16085245.627907572 ns/iter |
0.99 |
E2E_Compiler_cmake_presets |
23759259.55172126 ns/iter |
23968852.96552055 ns/iter |
0.99 |
E2E_Compiler_code_climate |
2156917.965944009 ns/iter |
2145455.0709877987 ns/iter |
1.01 |
E2E_Compiler_cql2 |
11778524.800001832 ns/iter |
11842301.779660052 ns/iter |
0.99 |
E2E_Compiler_cspell |
20691446.14706468 ns/iter |
20681985.26470657 ns/iter |
1.00 |
E2E_Compiler_cypress |
3507652.480000161 ns/iter |
3477559.641791303 ns/iter |
1.01 |
E2E_Compiler_deno |
7203558.030926981 ns/iter |
7224874.09278252 ns/iter |
1.00 |
E2E_Compiler_dependabot |
3421138.565853675 ns/iter |
3393197.449274915 ns/iter |
1.01 |
E2E_Compiler_draft_04 |
2322613.707641468 ns/iter |
2285808.6091205534 ns/iter |
1.02 |
E2E_Compiler_fabric_mod |
3955465.312499613 ns/iter |
3956737.2711868086 ns/iter |
1.00 |
E2E_Compiler_geojson |
20145991.600000862 ns/iter |
20321685.294120204 ns/iter |
0.99 |
E2E_Compiler_gitpod_configuration |
4307399.427673618 ns/iter |
4277867.552147454 ns/iter |
1.01 |
E2E_Compiler_helm_chart_lock |
580538.6119402876 ns/iter |
553620.3611986233 ns/iter |
1.05 |
E2E_Compiler_importmap |
244620.98361802692 ns/iter |
228863.50310356615 ns/iter |
1.07 |
E2E_Compiler_jasmine |
1121973.3562298939 ns/iter |
1086518.102803576 ns/iter |
1.03 |
E2E_Compiler_jshintrc |
3701979.989417605 ns/iter |
3688850.4894740866 ns/iter |
1.00 |
E2E_Compiler_jsconfig |
20172130.914287273 ns/iter |
20189774.52941245 ns/iter |
1.00 |
E2E_Compiler_krakend |
128536319.6000162 ns/iter |
126284309.8000303 ns/iter |
1.02 |
E2E_Compiler_lazygit |
29816523.47826323 ns/iter |
30410677.130436417 ns/iter |
0.98 |
E2E_Compiler_lerna |
1349086.5568400014 ns/iter |
1287531.0201836512 ns/iter |
1.05 |
E2E_Compiler_nest_cli |
6508387.648148494 ns/iter |
6543460.841121742 ns/iter |
0.99 |
E2E_Compiler_omc |
150342427.49999294 ns/iter |
151413370.74999228 ns/iter |
0.99 |
E2E_Compiler_omnisharp |
5970813.406778596 ns/iter |
5955149.880342534 ns/iter |
1.00 |
E2E_Compiler_openapi |
22441268.25806439 ns/iter |
22410307.612906236 ns/iter |
1.00 |
E2E_Compiler_pre_commit_hooks |
4381543.481250105 ns/iter |
4407081.628930982 ns/iter |
0.99 |
E2E_Compiler_pulumi |
3459739.886138642 ns/iter |
3452376.753695242 ns/iter |
1.00 |
E2E_Compiler_semantic_release |
1270891.9162109776 ns/iter |
1222297.7709788133 ns/iter |
1.04 |
E2E_Compiler_stale |
1297631.9223661267 ns/iter |
1253811.5259393894 ns/iter |
1.03 |
E2E_Compiler_stylecop |
5505740.984252645 ns/iter |
5452959.6220475035 ns/iter |
1.01 |
E2E_Compiler_tmuxinator |
1600742.0527522308 ns/iter |
1545109.477876145 ns/iter |
1.04 |
E2E_Compiler_ui5 |
41629411.82352477 ns/iter |
41724460.58824415 ns/iter |
1.00 |
E2E_Compiler_ui5_manifest |
274363646.3333132 ns/iter |
259898076.33330503 ns/iter |
1.06 |
E2E_Compiler_unreal_engine_uproject |
3910043.1011236017 ns/iter |
3940546.694914799 ns/iter |
0.99 |
E2E_Compiler_users_array |
704973.8968655257 ns/iter |
653125.1471136059 ns/iter |
1.08 |
E2E_Compiler_vercel |
11368814.639343059 ns/iter |
11504689.250000412 ns/iter |
0.99 |
E2E_Compiler_yamllint |
288827.6042009782 ns/iter |
271911.328179348 ns/iter |
1.06 |
E2E_Evaluator_adaptivecard |
25893.652597650238 ns/iter |
27188.015997836905 ns/iter |
0.95 |
E2E_Evaluator_ansible_meta |
293623.2307371708 ns/iter |
268720.7539286459 ns/iter |
1.09 |
E2E_Evaluator_aws_cdk |
59295.90024454022 ns/iter |
56600.69817739895 ns/iter |
1.05 |
E2E_Evaluator_babelrc |
119683.05812374833 ns/iter |
118029.73947896746 ns/iter |
1.01 |
E2E_Evaluator_cerebrum_criminal_case |
1145075.8461537643 ns/iter |
1214968.345614085 ns/iter |
0.94 |
E2E_Evaluator_clang_format |
105047.4952451847 ns/iter |
95225.53348699577 ns/iter |
1.10 |
E2E_Evaluator_cmake_presets |
4936223.417266349 ns/iter |
5013208.224637389 ns/iter |
0.98 |
E2E_Evaluator_code_climate |
228218.20911794156 ns/iter |
204501.48946138547 ns/iter |
1.12 |
E2E_Evaluator_cql2 |
230397.33063735385 ns/iter |
226190.76547967378 ns/iter |
1.02 |
E2E_Evaluator_cspell |
624871.2920747083 ns/iter |
587883.83630198 ns/iter |
1.06 |
E2E_Evaluator_cypress |
197100.66527429546 ns/iter |
159087.5934291332 ns/iter |
1.24 |
E2E_Evaluator_deno |
368953.90388652316 ns/iter |
318617.4638989171 ns/iter |
1.16 |
E2E_Evaluator_dependabot |
400088.1328790106 ns/iter |
379305.26456173125 ns/iter |
1.05 |
E2E_Evaluator_draft_04 |
7458022.999999764 ns/iter |
7124306.384614581 ns/iter |
1.05 |
E2E_Evaluator_fabric_mod |
805406.1041190296 ns/iter |
779514.2268624037 ns/iter |
1.03 |
E2E_Evaluator_geojson |
13240773.113208871 ns/iter |
13313623.673075024 ns/iter |
0.99 |
E2E_Evaluator_gitpod_configuration |
281962.65819203365 ns/iter |
255292.2673756131 ns/iter |
1.10 |
E2E_Evaluator_helm_chart_lock |
368682.44129983534 ns/iter |
255836.69937523056 ns/iter |
1.44 |
E2E_Evaluator_importmap |
49169.61704835377 ns/iter |
39725.18985068377 ns/iter |
1.24 |
E2E_Evaluator_jasmine |
126702.11554283543 ns/iter |
113420.75630387815 ns/iter |
1.12 |
E2E_Evaluator_jshintrc |
1111706.0222578375 ns/iter |
1070403.210122686 ns/iter |
1.04 |
E2E_Evaluator_jsconfig |
448436.0556273068 ns/iter |
423248.6903893248 ns/iter |
1.06 |
E2E_Evaluator_krakend |
220395.1033044884 ns/iter |
196571.2626149684 ns/iter |
1.12 |
E2E_Evaluator_lazygit |
151669.87018603637 ns/iter |
137474.15685131727 ns/iter |
1.10 |
E2E_Evaluator_lerna |
174876.63361089645 ns/iter |
139452.40824494432 ns/iter |
1.25 |
E2E_Evaluator_nest_cli |
211893.21590215433 ns/iter |
198769.5436145868 ns/iter |
1.07 |
E2E_Evaluator_omc |
24462.992345695788 ns/iter |
25419.761232158133 ns/iter |
0.96 |
E2E_Evaluator_omnisharp |
609034.7796902804 ns/iter |
557525.6988817935 ns/iter |
1.09 |
E2E_Evaluator_openapi |
15091533.577778034 ns/iter |
15252136.955556732 ns/iter |
0.99 |
E2E_Evaluator_pre_commit_hooks |
549972.3896713952 ns/iter |
508958.21060495166 ns/iter |
1.08 |
E2E_Evaluator_pulumi |
796392.5084743486 ns/iter |
790036.378684704 ns/iter |
1.01 |
E2E_Evaluator_semantic_release |
106621.167299252 ns/iter |
90759.97396905677 ns/iter |
1.17 |
E2E_Evaluator_stale |
178731.98267070492 ns/iter |
176272.7294416445 ns/iter |
1.01 |
E2E_Evaluator_stylecop |
317539.7209729247 ns/iter |
321823.12962120125 ns/iter |
0.99 |
E2E_Evaluator_tmuxinator |
108490.22280109517 ns/iter |
97036.08396840247 ns/iter |
1.12 |
E2E_Evaluator_ui5 |
624431.8162355575 ns/iter |
589890.6180438129 ns/iter |
1.06 |
E2E_Evaluator_ui5_manifest |
3121941.566372239 ns/iter |
3014479.7296129637 ns/iter |
1.04 |
E2E_Evaluator_unreal_engine_uproject |
508449.7469269412 ns/iter |
471823.59186435706 ns/iter |
1.08 |
E2E_Evaluator_users_array |
695061.6768774769 ns/iter |
702022.0090450937 ns/iter |
0.99 |
E2E_Evaluator_vercel |
354598.4790388853 ns/iter |
303110.3870417701 ns/iter |
1.17 |
E2E_Evaluator_yamllint |
13051.701218270855 ns/iter |
12264.993793396 ns/iter |
1.06 |
Schema_Format_ISO_Language_To_JSON |
100154726.00002794 ns/iter |
98461343.14290924 ns/iter |
1.02 |
Schema_Bundle_Meta_2020_12 |
1460825.4163160084 ns/iter |
1402833.9582549578 ns/iter |
1.04 |
Schema_Frame_WoT_References |
4715149.506755613 ns/iter |
4811232.468966472 ns/iter |
0.98 |
Schema_Frame_OMC_References |
20762359.424238775 ns/iter |
21804884.406250834 ns/iter |
0.95 |
Schema_Frame_OMC_Locations |
19346708.38889158 ns/iter |
20271133.38235321 ns/iter |
0.95 |
Schema_Frame_ISO_Language_Locations |
92527190.57141283 ns/iter |
95060108.57142298 ns/iter |
0.97 |
Schema_Frame_ISO_Language_Root |
435.605667380165 ns/iter |
424.76780221342113 ns/iter |
1.03 |
Schema_Frame_KrakenD_References |
37602335.99999944 ns/iter |
39165532.47057998 ns/iter |
0.96 |
Schema_Frame_KrakenD_Reachable |
439252958.9999867 ns/iter |
449511595.50009835 ns/iter |
0.98 |
Schema_Frame_ISO_Language_Locations_To_JSON |
200999556.00001824 ns/iter |
193226764.33337924 ns/iter |
1.04 |
Schema_Frame_Many_Resources_References |
353321143.5000112 ns/iter |
368139938.5000077 ns/iter |
0.96 |
Schema_Frame_Deeply_Nested_References |
11224431.37096745 ns/iter |
11673564.049999641 ns/iter |
0.96 |
Schema_Tracker_ISO_Language |
4988118.776978978 ns/iter |
5028752.911999618 ns/iter |
0.99 |
Schema_Tracker_ISO_Language_To_JSON |
18994609.918917302 ns/iter |
18102416.82051128 ns/iter |
1.05 |
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: 95f78b3 | Previous: 3c70205 | Ratio |
|---|---|---|---|
E2E_Evaluator_adaptivecard |
121236 ns |
120009 ns |
1.01 |
E2E_Evaluator_ansible-meta |
511149 ns |
538298 ns |
0.95 |
E2E_Evaluator_aws-cdk |
147097 ns |
132758 ns |
1.11 |
E2E_Evaluator_babelrc |
354946 ns |
337435 ns |
1.05 |
E2E_Evaluator_cerebrum-criminal-case |
2496846 ns |
2600017 ns |
0.96 |
E2E_Evaluator_clang-format |
251332 ns |
257406 ns |
0.98 |
E2E_Evaluator_cmake-presets |
17922423 ns |
18058793 ns |
0.99 |
E2E_Evaluator_code-climate |
536195 ns |
502594 ns |
1.07 |
E2E_Evaluator_cql2 |
1311252 ns |
1356703 ns |
0.97 |
E2E_Evaluator_cspell |
1467239 ns |
1600309 ns |
0.92 |
E2E_Evaluator_cypress |
785055 ns |
825913 ns |
0.95 |
E2E_Evaluator_deno |
1072703 ns |
1084908 ns |
0.99 |
E2E_Evaluator_dependabot |
1126395 ns |
1084077 ns |
1.04 |
E2E_Evaluator_draft-04 |
21509695 ns |
20556891 ns |
1.05 |
E2E_Evaluator_fabric-mod |
2377950 ns |
2411457 ns |
0.99 |
E2E_Evaluator_geojson |
24754952 ns |
24961568 ns |
0.99 |
E2E_Evaluator_gitpod-configuration |
723886 ns |
722763 ns |
1.00 |
E2E_Evaluator_helm-chart-lock |
985550 ns |
1051301 ns |
0.94 |
E2E_Evaluator_importmap |
265937 ns |
272303 ns |
0.98 |
E2E_Evaluator_jasmine |
306076 ns |
279967 ns |
1.09 |
E2E_Evaluator_jsconfig |
1241878 ns |
1406254 ns |
0.88 |
E2E_Evaluator_jshintrc |
2733422 ns |
2901107 ns |
0.94 |
E2E_Evaluator_krakend |
676600 ns |
636532 ns |
1.06 |
E2E_Evaluator_lazygit |
504756 ns |
464273 ns |
1.09 |
E2E_Evaluator_lerna |
469004 ns |
438338 ns |
1.07 |
E2E_Evaluator_nest-cli |
584049 ns |
606273 ns |
0.96 |
E2E_Evaluator_omc |
119657 ns |
115720 ns |
1.03 |
E2E_Evaluator_omnisharp |
1385570 ns |
1452065 ns |
0.95 |
E2E_Evaluator_openapi |
42390649 ns |
40122556 ns |
1.06 |
E2E_Evaluator_pre-commit-hooks |
2081019 ns |
2047419 ns |
1.02 |
E2E_Evaluator_pulumi |
1879598 ns |
1974150 ns |
0.95 |
E2E_Evaluator_semantic-release |
252431 ns |
236129 ns |
1.07 |
E2E_Evaluator_stale |
399354 ns |
387379 ns |
1.03 |
E2E_Evaluator_stylecop |
1209912 ns |
1204861 ns |
1.00 |
E2E_Evaluator_tmuxinator |
233208 ns |
217233 ns |
1.07 |
E2E_Evaluator_ui5 |
2264737 ns |
2197666 ns |
1.03 |
E2E_Evaluator_ui5-manifest |
10370833 ns |
9694830 ns |
1.07 |
E2E_Evaluator_unreal-engine-uproject |
1507422 ns |
1553546 ns |
0.97 |
E2E_Evaluator_users-array |
3246308 ns |
2856907 ns |
1.14 |
E2E_Evaluator_vercel |
1004363 ns |
1014923 ns |
0.99 |
E2E_Evaluator_yamllint |
25869 ns |
23842 ns |
1.09 |
This comment was automatically generated by workflow using github-action-benchmark.
There was a problem hiding this comment.
3 issues found across 12 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/canonicalizer/rules/min_properties_covered_by_required.h">
<violation number="1" location="src/canonicalizer/rules/min_properties_covered_by_required.h:27">
P2: When `required` contains duplicate non-string entries, this guard skips the new string-only handling and leaves canonicalization incomplete. Check uniqueness after filtering valid string names.</violation>
</file>
<file name="src/canonicalizer/rules/implicit_object_keywords.h">
<violation number="1" location="src/canonicalizer/rules/implicit_object_keywords.h:48">
P2: When `required` contains duplicate strings, this counts the same property more than once and emits an overly large `minProperties`. Count distinct string names instead, so `required: ["a", "a"]` does not reject one-property instances after deduplication.</violation>
</file>
<file name="src/canonicalizer/rules/unknown_type_names.h">
<violation number="1" location="src/canonicalizer/rules/unknown_type_names.h:47">
P2: When `type` is a non-string scalar such as `42`, `condition()` returns false before `transform()` runs, so this non-array cleanup is unreachable for that invalid form. Make `condition()` continue for non-array, non-string `type` values as well.</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
| required && required->is_array() && required->unique() && | ||
| std::cmp_greater(required->size(), static_cast<std::uint64_t>( | ||
| min_properties->to_integer()))); | ||
| ONLY_CONTINUE_IF(required && required->is_array() && required->unique()); |
There was a problem hiding this comment.
P2: When required contains duplicate non-string entries, this guard skips the new string-only handling and leaves canonicalization incomplete. Check uniqueness after filtering valid string names.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/canonicalizer/rules/min_properties_covered_by_required.h, line 27:
<comment>When `required` contains duplicate non-string entries, this guard skips the new string-only handling and leaves canonicalization incomplete. Check uniqueness after filtering valid string names.</comment>
<file context>
@@ -24,15 +24,26 @@ class MinPropertiesCoveredByRequired final : public SchemaTransformRule {
- required && required->is_array() && required->unique() &&
- std::cmp_greater(required->size(), static_cast<std::uint64_t>(
- min_properties->to_integer())));
+ ONLY_CONTINUE_IF(required && required->is_array() && required->unique());
+
+ // Only string entries name a property, so only they raise the lower bound
</file context>
| schema.assign("minProperties", sourcemeta::core::JSON{0}); | ||
| for (const auto &property : schema.at("required").as_array()) { | ||
| if (property.is_string()) { | ||
| names += 1; |
There was a problem hiding this comment.
P2: When required contains duplicate strings, this counts the same property more than once and emits an overly large minProperties. Count distinct string names instead, so required: ["a", "a"] does not reject one-property instances after deduplication.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/canonicalizer/rules/implicit_object_keywords.h, line 48:
<comment>When `required` contains duplicate strings, this counts the same property more than once and emits an overly large `minProperties`. Count distinct string names instead, so `required: ["a", "a"]` does not reject one-property instances after deduplication.</comment>
<file context>
@@ -40,12 +40,17 @@ class ImplicitObjectKeywords final : public SchemaTransformRule {
- schema.assign("minProperties", sourcemeta::core::JSON{0});
+ for (const auto &property : schema.at("required").as_array()) {
+ if (property.is_string()) {
+ names += 1;
+ }
+ }
</file context>
|
|
||
| auto transform(sourcemeta::core::JSON &schema) const -> void override { | ||
| if (schema.at("type").is_string()) { | ||
| if (!schema.at("type").is_array()) { |
There was a problem hiding this comment.
P2: When type is a non-string scalar such as 42, condition() returns false before transform() runs, so this non-array cleanup is unreachable for that invalid form. Make condition() continue for non-array, non-string type values as well.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/canonicalizer/rules/unknown_type_names.h, line 47:
<comment>When `type` is a non-string scalar such as `42`, `condition()` returns false before `transform()` runs, so this non-array cleanup is unreachable for that invalid form. Make `condition()` continue for non-array, non-string `type` values as well.</comment>
<file context>
@@ -44,14 +44,14 @@ class UnknownTypeNames final : public SchemaTransformRule {
auto transform(sourcemeta::core::JSON &schema) const -> void override {
- if (schema.at("type").is_string()) {
+ if (!schema.at("type").is_array()) {
schema.erase("type");
return;
</file context>
Metaschema checks should be run by a user beforehand, to confirm the schema is fully valid to begin with. See: sourcemeta/jsonschema#834 Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
a1ec864 to
95f78b3
Compare
There was a problem hiding this comment.
2 issues found across 16 files (changes from recent commits).
Prompt for AI agents (unresolved issues)
Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.
<file name="src/compiler/compile.cc">
<violation number="1" location="src/compiler/compile.cc:593">
P1: When `anyOf` or `oneOf` contains a non-schema element, this return turns the invalid element into an empty, successful branch. For example, `anyOf: [1, false]` and `oneOf: [1, false]` pass instead of ignoring `1`; filter invalid branches before constructing the disjunction.</violation>
</file>
<file name="src/evaluator/evaluator_describe.cc">
<violation number="1" location="src/evaluator/evaluator_describe.cc:332">
P2: A `false` subschema under a property that happens to be named `anyOf` or `oneOf` (e.g. `{"properties":{"anyOf":false}}`) now hits this branch because the evaluate path ends at the author-chosen name, so it reports "not expected to validate against the empty list of subschemas" even though the array is not empty. This is the same collision the neighbouring additionalProperties/unevaluatedProperties branches guard against with an instance_location check; distinguish a genuine empty applicator (schema path ending at the `anyOf`/`oneOf` keyword) from a property named like the keyword.</violation>
</file>
Tip: Review your code locally with the cubic CLI to iterate faster.
Re-trigger cubic
| // An invalid schema may set an applicator to a value that is not a schema | ||
| // at all, in which case we consider it to impose no constraints | ||
| if (!new_schema.is_object() && !new_schema.is_boolean()) [[unlikely]] { | ||
| return {}; |
There was a problem hiding this comment.
P1: When anyOf or oneOf contains a non-schema element, this return turns the invalid element into an empty, successful branch. For example, anyOf: [1, false] and oneOf: [1, false] pass instead of ignoring 1; filter invalid branches before constructing the disjunction.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/compiler/compile.cc, line 593:
<comment>When `anyOf` or `oneOf` contains a non-schema element, this return turns the invalid element into an empty, successful branch. For example, `anyOf: [1, false]` and `oneOf: [1, false]` pass instead of ignoring `1`; filter invalid branches before constructing the disjunction.</comment>
<file context>
@@ -547,7 +586,12 @@ auto compile(const Context &context, const SchemaContext &schema_context,
+ // An invalid schema may set an applicator to a value that is not a schema
+ // at all, in which case we consider it to impose no constraints
+ if (!new_schema.is_object() && !new_schema.is_boolean()) [[unlikely]] {
+ return {};
+ }
</file context>
| return "The constraints declared for this keyword were not satisfiable"; | ||
| } | ||
|
|
||
| if (keyword == "anyOf" || keyword == "oneOf") { |
There was a problem hiding this comment.
P2: A false subschema under a property that happens to be named anyOf or oneOf (e.g. {"properties":{"anyOf":false}}) now hits this branch because the evaluate path ends at the author-chosen name, so it reports "not expected to validate against the empty list of subschemas" even though the array is not empty. This is the same collision the neighbouring additionalProperties/unevaluatedProperties branches guard against with an instance_location check; distinguish a genuine empty applicator (schema path ending at the anyOf/oneOf keyword) from a property named like the keyword.
Prompt for AI agents
Check if this issue is valid — if so, understand the root cause and fix it. At src/evaluator/evaluator_describe.cc, line 332:
<comment>A `false` subschema under a property that happens to be named `anyOf` or `oneOf` (e.g. `{"properties":{"anyOf":false}}`) now hits this branch because the evaluate path ends at the author-chosen name, so it reports "not expected to validate against the empty list of subschemas" even though the array is not empty. This is the same collision the neighbouring additionalProperties/unevaluatedProperties branches guard against with an instance_location check; distinguish a genuine empty applicator (schema path ending at the `anyOf`/`oneOf` keyword) from a property named like the keyword.</comment>
<file context>
@@ -329,6 +329,14 @@ auto describe(const bool valid, const Instruction &step,
return "The constraints declared for this keyword were not satisfiable";
}
+ if (keyword == "anyOf" || keyword == "oneOf") {
+ std::ostringstream message;
+ message << "The " << type_name(target.type())
</file context>
Metaschema checks should be run by a user beforehand, to confirm the
schema is fully valid to begin with.
See: sourcemeta/jsonschema#834
Signed-off-by: Juan Cruz Viotti jv@jviotti.com