Skip to content

Conversation

@jviotti
Copy link
Member

@jviotti jviotti commented Jan 23, 2026

See: sourcemeta/jsonschema#624
Signed-off-by: Juan Cruz Viotti jv@jviotti.com

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Bindings (linux/nodejs)

Details
Benchmark suite Current: 13d388a Previous: 132dcca Ratio
E2E_Parse_BlazeJSON_ui5_manifest 105 ops/sec (±1.43%) 110 ops/sec (±0.39%) 1.05
E2E_Parse_JSON_ui5_manifest 779 ops/sec (±1.94%) 805 ops/sec (±0.76%) 1.03
E2E_Evaluator_adaptivecard 19340 ops/sec (±2.06%) 20054 ops/sec (±2.55%) 1.04
E2E_Evaluator_ansible_meta 1752 ops/sec (±3.47%) 1841 ops/sec (±0.49%) 1.05
E2E_Evaluator_aws_cdk 2677 ops/sec (±0.14%) 2669 ops/sec (±0.30%) 1.00
E2E_Evaluator_babelrc 1360 ops/sec (±4.92%) 1517 ops/sec (±0.09%) 1.12
E2E_Evaluator_clang_format 4836 ops/sec (±1.40%) 4930 ops/sec (±0.81%) 1.02
E2E_Evaluator_cmake_presets 116 ops/sec (±6.27%) 130 ops/sec (±0.81%) 1.12
E2E_Evaluator_code_climate 519 ops/sec (±3.01%) 560 ops/sec (±0.11%) 1.08
E2E_Evaluator_cql2 2389 ops/sec (±1.93%) 2469 ops/sec (±0.55%) 1.03
E2E_Evaluator_cspell 719 ops/sec (±2.28%) 748 ops/sec (±0.19%) 1.04
E2E_Evaluator_cypress 1206 ops/sec (±0.16%) 1216 ops/sec (±0.93%) 1.01
E2E_Evaluator_deno 919 ops/sec (±2.56%) 948 ops/sec (±0.42%) 1.03
E2E_Evaluator_dependabot 763 ops/sec (±4.38%) 824 ops/sec (±0.63%) 1.08
E2E_Evaluator_draft_04 86.9 ops/sec (±7.46%) 93.2 ops/sec (±0.68%) 1.07
E2E_Evaluator_fabric_mod 554 ops/sec (±5.96%) 595 ops/sec (±0.29%) 1.07
E2E_Evaluator_geojson 32.08 ops/sec (±6.81%) 35.13 ops/sec (±1.36%) 1.10
E2E_Evaluator_gitpod_configuration 947 ops/sec (±6.21%) 1036 ops/sec (±0.47%) 1.09
E2E_Evaluator_helm_chart_lock 330 ops/sec (±4.23%) 322 ops/sec (±1.19%) 0.98
E2E_Evaluator_importmap 1459 ops/sec (±2.50%) 1525 ops/sec (±0.47%) 1.05
E2E_Evaluator_jasmine 1167 ops/sec (±2.57%) 1268 ops/sec (±0.20%) 1.09
E2E_Evaluator_jsconfig 779 ops/sec (±3.96%) 839 ops/sec (±0.27%) 1.08
E2E_Evaluator_jshintrc 559 ops/sec (±2.22%) 591 ops/sec (±0.13%) 1.06
E2E_Evaluator_krakend 3233 ops/sec (±3.17%) 3404 ops/sec (±0.17%) 1.05
E2E_Evaluator_lazygit 2350 ops/sec (±3.75%) 2671 ops/sec (±0.22%) 1.14
E2E_Evaluator_lerna 1183 ops/sec (±2.26%) 1252 ops/sec (±0.38%) 1.06
E2E_Evaluator_nest_cli 1017 ops/sec (±3.90%) 1087 ops/sec (±0.46%) 1.07
E2E_Evaluator_omc 22488 ops/sec (±1.74%) 22417 ops/sec (±0.38%) 1.00
E2E_Evaluator_omnisharp 762 ops/sec (±2.61%) 795 ops/sec (±0.23%) 1.04
E2E_Evaluator_openapi 62.89 ops/sec (±2.59%) 61.29 ops/sec (±0.32%) 0.97
E2E_Evaluator_pre_commit_hooks 742 ops/sec (±4.66%) 760 ops/sec (±0.94%) 1.02
E2E_Evaluator_pulumi 234 ops/sec (±7.00%) 228 ops/sec (±1.35%) 0.97
E2E_Evaluator_semantic_release 1437 ops/sec (±2.69%) 1514 ops/sec (±0.34%) 1.05
E2E_Evaluator_stale 1167 ops/sec (±3.28%) 1245 ops/sec (±0.18%) 1.07
E2E_Evaluator_stylecop 937 ops/sec (±2.47%) 943 ops/sec (±0.43%) 1.01
E2E_Evaluator_tmuxinator 2437 ops/sec (±3.87%) 2592 ops/sec (±0.31%) 1.06
E2E_Evaluator_ui5 661 ops/sec (±4.87%) 702 ops/sec (±0.24%) 1.06
E2E_Evaluator_ui5_manifest 256 ops/sec (±2.18%) 183 ops/sec (±1.01%) 0.71
E2E_Evaluator_unreal_engine_uproject 778 ops/sec (±1.88%) 779 ops/sec (±0.72%) 1.00
E2E_Evaluator_vercel 1158 ops/sec (±3.55%) 1201 ops/sec (±0.18%) 1.04
E2E_Evaluator_yamllint 1600 ops/sec (±2.19%) 1643 ops/sec (±0.78%) 1.03

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (linux/llvm)

Details
Benchmark suite Current: 13d388a Previous: 132dcca Ratio
E2E_Compiler_adaptivecard 69919392.11111584 ns/iter 72394376.7499975 ns/iter 0.97
E2E_Compiler_ansible_meta 29840898.62500146 ns/iter 29676706.54166691 ns/iter 1.01
E2E_Compiler_aws_cdk 530274.5353074917 ns/iter 521786.01713859785 ns/iter 1.02
E2E_Compiler_babelrc 3051579.969432403 ns/iter 3027544.264069327 ns/iter 1.01
E2E_Compiler_clang_format 20340660.142856646 ns/iter 20144316.600000627 ns/iter 1.01
E2E_Compiler_cmake_presets 32107715.045456912 ns/iter 32388659.8181828 ns/iter 0.99
E2E_Compiler_code_climate 2917454.1166665806 ns/iter 2903588.0413221656 ns/iter 1.00
E2E_Compiler_cql2 14905616.106382674 ns/iter 15025566.17021384 ns/iter 0.99
E2E_Compiler_cspell 26765614.846154377 ns/iter 27028603.384615317 ns/iter 0.99
E2E_Compiler_cypress 4973510.907801235 ns/iter 5019642.778571714 ns/iter 0.99
E2E_Compiler_deno 9241997.98684212 ns/iter 9346653.76000036 ns/iter 0.99
E2E_Compiler_dependabot 4939838.04964531 ns/iter 4933929.2836879855 ns/iter 1.00
E2E_Compiler_draft_04 2977912.3702129023 ns/iter 2948330.544303815 ns/iter 1.01
E2E_Compiler_fabric_mod 5359348.484615094 ns/iter 5302817.636363825 ns/iter 1.01
E2E_Compiler_geojson 30005068.782607533 ns/iter 30206427.391303606 ns/iter 0.99
E2E_Compiler_gitpod_configuration 5604463.392000071 ns/iter 5626086.591999864 ns/iter 1.00
E2E_Compiler_helm_chart_lock 873438.3021223908 ns/iter 870690.5624227569 ns/iter 1.00
E2E_Compiler_importmap 438840.4843561786 ns/iter 418952.85143196554 ns/iter 1.05
E2E_Compiler_jasmine 1641483.8183962388 ns/iter 1600768.3066361453 ns/iter 1.03
E2E_Compiler_jshintrc 5256570.751824781 ns/iter 5164270.779411845 ns/iter 1.02
E2E_Compiler_jsconfig 26010446.333333235 ns/iter 25721600.962962534 ns/iter 1.01
E2E_Compiler_krakend 169511156.25001022 ns/iter 173572304.4999986 ns/iter 0.98
E2E_Compiler_lazygit 43319349.749999955 ns/iter 42962568.562501244 ns/iter 1.01
E2E_Compiler_lerna 2040710.9127906517 ns/iter 2000223.142450209 ns/iter 1.02
E2E_Compiler_nest_cli 8658507.320987672 ns/iter 8534402.426829224 ns/iter 1.01
E2E_Compiler_omc 203395646.0000089 ns/iter 209608464.99999282 ns/iter 0.97
E2E_Compiler_omnisharp 8278832.416666979 ns/iter 8163874.20930231 ns/iter 1.01
E2E_Compiler_openapi 28390859.240000736 ns/iter 28164116.64000043 ns/iter 1.01
E2E_Compiler_pre_commit_hooks 5830898.361344745 ns/iter 5659825.260162658 ns/iter 1.03
E2E_Compiler_pulumi 4620189.006622442 ns/iter 4552069.331168695 ns/iter 1.01
E2E_Compiler_semantic_release 1784860.168367358 ns/iter 1766443.3944019813 ns/iter 1.01
E2E_Compiler_stale 1843728.5312498847 ns/iter 1816753.7272728472 ns/iter 1.01
E2E_Compiler_stylecop 7200767.083333541 ns/iter 7113983.193877449 ns/iter 1.01
E2E_Compiler_tmuxinator 2377784.4109587995 ns/iter 2355069.414141491 ns/iter 1.01
E2E_Compiler_ui5 67208330.20000328 ns/iter 67609929.20000035 ns/iter 0.99
E2E_Compiler_ui5_manifest 396190078.4999841 ns/iter 404542405.00000083 ns/iter 0.98
E2E_Compiler_unreal_engine_uproject 5140066.859259049 ns/iter 5164789.6000001 ns/iter 1.00
E2E_Compiler_vercel 17075971.09756113 ns/iter 17304100.900000207 ns/iter 0.99
E2E_Compiler_yamllint 462012.88029101485 ns/iter 456450.7990867372 ns/iter 1.01
E2E_Evaluator_adaptivecard 38141.81233834192 ns/iter 38678.3895294835 ns/iter 0.99
E2E_Evaluator_ansible_meta 322597.1916439528 ns/iter 312802.5240882527 ns/iter 1.03
E2E_Evaluator_aws_cdk 74892.43305148157 ns/iter 74125.840947548 ns/iter 1.01
E2E_Evaluator_babelrc 152176.86163935374 ns/iter 153958.18357488123 ns/iter 0.99
E2E_Evaluator_clang_format 136597.58761062354 ns/iter 140721.473090102 ns/iter 0.97
E2E_Evaluator_cmake_presets 5504705.388888837 ns/iter 5550087.4508196805 ns/iter 0.99
E2E_Evaluator_code_climate 282740.404449737 ns/iter 281273.7526104534 ns/iter 1.01
E2E_Evaluator_cql2 308244.6034946256 ns/iter 312408.27228381735 ns/iter 0.99
E2E_Evaluator_cspell 773354.8264642094 ns/iter 725323.5791106849 ns/iter 1.07
E2E_Evaluator_cypress 230477.39136168663 ns/iter 231712.2955599709 ns/iter 0.99
E2E_Evaluator_deno 404355.5826137144 ns/iter 392184.6649888039 ns/iter 1.03
E2E_Evaluator_dependabot 575208.2029702815 ns/iter 582080.4962717494 ns/iter 0.99
E2E_Evaluator_draft_04 9008221.2894741 ns/iter 9993640.405797498 ns/iter 0.90
E2E_Evaluator_fabric_mod 921649.2292490348 ns/iter 912495.4993498521 ns/iter 1.01
E2E_Evaluator_geojson 30478499.17391224 ns/iter 30129009.60869581 ns/iter 1.01
E2E_Evaluator_gitpod_configuration 317401.7854562083 ns/iter 309370.9467713669 ns/iter 1.03
E2E_Evaluator_helm_chart_lock 439408.48826888157 ns/iter 448534.7897538369 ns/iter 0.98
E2E_Evaluator_importmap 68610.74792053532 ns/iter 68111.62716901774 ns/iter 1.01
E2E_Evaluator_jasmine 160082.75314572486 ns/iter 171675.30162976548 ns/iter 0.93
E2E_Evaluator_jshintrc 1311199.2881040333 ns/iter 1306684.6759776478 ns/iter 1.00
E2E_Evaluator_jsconfig 521431.21882002073 ns/iter 524063.1881040871 ns/iter 0.99
E2E_Evaluator_krakend 279104.3120539385 ns/iter 264855.63571158773 ns/iter 1.05
E2E_Evaluator_lazygit 200531.38180341313 ns/iter 186008.97904510522 ns/iter 1.08
E2E_Evaluator_lerna 215122.05115562511 ns/iter 199300.91231613458 ns/iter 1.08
E2E_Evaluator_nest_cli 251111.7427790796 ns/iter 249578.14104818387 ns/iter 1.01
E2E_Evaluator_omc 29310.823668438035 ns/iter 28988.657306162393 ns/iter 1.01
E2E_Evaluator_omnisharp 722143.8568527552 ns/iter 728948.8742393823 ns/iter 0.99
E2E_Evaluator_openapi 14883584.130434776 ns/iter 16576103.767442608 ns/iter 0.90
E2E_Evaluator_pre_commit_hooks 606044.8414211234 ns/iter 587526.4941077012 ns/iter 1.03
E2E_Evaluator_pulumi 878601.0087064327 ns/iter 901484.2020459858 ns/iter 0.97
E2E_Evaluator_semantic_release 140027.642745107 ns/iter 138158.76085240528 ns/iter 1.01
E2E_Evaluator_stale 200817.35584044948 ns/iter 209558.8441596306 ns/iter 0.96
E2E_Evaluator_stylecop 366260.40271967667 ns/iter 357597.1185487863 ns/iter 1.02
E2E_Evaluator_tmuxinator 138456.78949446048 ns/iter 137302.10192306913 ns/iter 1.01
E2E_Evaluator_ui5 708108.8060913732 ns/iter 711904.8020408233 ns/iter 0.99
E2E_Evaluator_ui5_manifest 3339274.2692307946 ns/iter 3337702.2548078867 ns/iter 1.00
E2E_Evaluator_unreal_engine_uproject 529986.2682193819 ns/iter 530459.8826219519 ns/iter 1.00
E2E_Evaluator_vercel 394486.58044343966 ns/iter 405034.91585574584 ns/iter 0.97
E2E_Evaluator_yamllint 19094.1734926819 ns/iter 18837.903576389264 ns/iter 1.01
Micro_Draft4_Meta_1_No_Callback 253.22129523136456 ns/iter 255.5556986261952 ns/iter 0.99
Micro_Draft4_Required_Properties 1165.3321540379695 ns/iter 1133.0855881425587 ns/iter 1.03
Micro_Draft4_Many_Optional_Properties_Minimal_Match 30.778561529766836 ns/iter 32.07577511679718 ns/iter 0.96
Micro_Draft4_Few_Optional_Properties_Minimal_Match 20.277714119551362 ns/iter 19.972562177834543 ns/iter 1.02
Micro_Draft4_Items_Schema 655.7680084238744 ns/iter 614.7062929820878 ns/iter 1.07
Micro_Draft4_Nested_Object 3.1083529342569465 ns/iter 3.1110497925920835 ns/iter 1.00
Micro_Draft4_Properties_Triad_Optional 389.15115318688385 ns/iter 392.6748840265675 ns/iter 0.99
Micro_Draft4_Properties_Triad_Closed 318.34207251445474 ns/iter 326.59286287808976 ns/iter 0.97
Micro_Draft4_Properties_Triad_Required 429.3818456820379 ns/iter 432.2828978587363 ns/iter 0.99
Micro_Draft4_Properties_Closed 83.11313742259713 ns/iter 79.19910880453017 ns/iter 1.05
Micro_Draft4_Non_Recursive_Ref 32.11932227854742 ns/iter 32.29864374417632 ns/iter 0.99
Micro_Draft4_Pattern_Properties_True 258.83502494535753 ns/iter 268.1119045176675 ns/iter 0.97
Micro_Draft4_Ref_To_Single_Property 20.266396041485446 ns/iter 20.00480475484274 ns/iter 1.01
Micro_Draft4_Additional_Properties_Type 59.72712571220744 ns/iter 59.9683597800049 ns/iter 1.00
Micro_Draft4_Nested_Oneof 88.08132547424547 ns/iter 86.8007858143195 ns/iter 1.01
Micro_Draft4_Short_Enum 15.248695219357797 ns/iter 15.253968419020298 ns/iter 1.00
Micro_Draft4_Long_Enum 19.991110199556957 ns/iter 18.675459217253724 ns/iter 1.07
Micro_Draft4_Long_Enum_Short_Strings 15.245438454311309 ns/iter 15.2822161127372 ns/iter 1.00
Micro_Draft4_Type_Object 9.650407916650702 ns/iter 9.034789800713375 ns/iter 1.07
Micro_Draft4_Ref_Single_100 2838073.471544598 ns/iter 2855741.081632645 ns/iter 0.99
Micro_Draft4_Compile_Ref_Many_Nested 1952597.2960894075 ns/iter 1969400.901685479 ns/iter 0.99
Micro_Draft6_Property_Names 126.00590534599483 ns/iter 117.37855114565072 ns/iter 1.07
Micro_Draft7_If_Then_Else 38.936371484309404 ns/iter 38.58116782069814 ns/iter 1.01
Micro_2019_09_Unevaluated_Properties 54.85825090294553 ns/iter 87.93356378478738 ns/iter 0.62
Micro_2020_12_Dynamic_Ref 350.56511285927394 ns/iter 357.6111187424521 ns/iter 0.98
Micro_2020_12_Dynamic_Ref_Single 9.336797613391132 ns/iter 8.721108729668309 ns/iter 1.07
Micro_2020_12_Simple_Output_Mask 139025.24018247158 ns/iter 139679.99980253074 ns/iter 1.00
Micro_2020_12_Simple_Output_Annotations 166342.07031985384 ns/iter 167634.01141226006 ns/iter 0.99
Micro_2020_12_Compile_NonCircular_Shared_Refs 1181805.9018612711 ns/iter 1174757.2211055637 ns/iter 1.01

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

Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (macos/llvm)

Details
Benchmark suite Current: 13d388a Previous: 132dcca Ratio
E2E_Compiler_adaptivecard 72873435.11110419 ns/iter 101874421.87499584 ns/iter 0.72
E2E_Compiler_ansible_meta 29403461.791668896 ns/iter 38952729.16666827 ns/iter 0.75
E2E_Compiler_aws_cdk 442301.20553842984 ns/iter 540219.3598252962 ns/iter 0.82
E2E_Compiler_babelrc 2986714.7403844176 ns/iter 4858556.53216359 ns/iter 0.61
E2E_Compiler_clang_format 26622560.71428796 ns/iter 27435994.241378814 ns/iter 0.97
E2E_Compiler_cmake_presets 46797940.91666167 ns/iter 51113220.800004914 ns/iter 0.92
E2E_Compiler_code_climate 3251726.981734962 ns/iter 4458643.749999424 ns/iter 0.73
E2E_Compiler_cql2 16235169.391304385 ns/iter 21624947.51851901 ns/iter 0.75
E2E_Compiler_cspell 31589985.40000084 ns/iter 41128299.99999879 ns/iter 0.77
E2E_Compiler_cypress 6001157.763358877 ns/iter 7076944.022900228 ns/iter 0.85
E2E_Compiler_deno 9583696.961038647 ns/iter 12925149.016948929 ns/iter 0.74
E2E_Compiler_dependabot 5725617.909999982 ns/iter 7687632.01052647 ns/iter 0.74
E2E_Compiler_draft_04 2740655.528052782 ns/iter 3701195.3551914776 ns/iter 0.74
E2E_Compiler_fabric_mod 5071978.583333229 ns/iter 6495707.920791601 ns/iter 0.78
E2E_Compiler_geojson 34044364.54999882 ns/iter 52552520.85713989 ns/iter 0.65
E2E_Compiler_gitpod_configuration 5471175.500000045 ns/iter 7649648.611111894 ns/iter 0.72
E2E_Compiler_helm_chart_lock 752585.9592216025 ns/iter 998204.3512785415 ns/iter 0.75
E2E_Compiler_importmap 375465.9244306345 ns/iter 441714.59003321966 ns/iter 0.85
E2E_Compiler_jasmine 1527399.014778125 ns/iter 1798741.3663665229 ns/iter 0.85
E2E_Compiler_jshintrc 4921763.526316394 ns/iter 5517597.000000024 ns/iter 0.89
E2E_Compiler_jsconfig 27991681.11538655 ns/iter 37751935.40000145 ns/iter 0.74
E2E_Compiler_krakend 210256013.66667008 ns/iter 251729361.0000024 ns/iter 0.84
E2E_Compiler_lazygit 51181708.35714052 ns/iter 68501384.22222093 ns/iter 0.75
E2E_Compiler_lerna 2231140.8522015433 ns/iter 2565778.1324785226 ns/iter 0.87
E2E_Compiler_nest_cli 10205946.4886369 ns/iter 11197278.84615247 ns/iter 0.91
E2E_Compiler_omc 255464986.3333225 ns/iter 354979020.5000249 ns/iter 0.72
E2E_Compiler_omnisharp 10409272.88732413 ns/iter 13653736.38461602 ns/iter 0.76
E2E_Compiler_openapi 31918276.041665196 ns/iter 30560423.611114457 ns/iter 1.04
E2E_Compiler_pre_commit_hooks 7746579.160000238 ns/iter 6312492.094890915 ns/iter 1.23
E2E_Compiler_pulumi 7857056.577235405 ns/iter 5093219.999999974 ns/iter 1.54
E2E_Compiler_semantic_release 2201260.5311353677 ns/iter 2239712.7926418562 ns/iter 0.98
E2E_Compiler_stale 2050956.2246833341 ns/iter 1968357.8076923199 ns/iter 1.04
E2E_Compiler_stylecop 9006866.666666409 ns/iter 8649150.102273365 ns/iter 1.04
E2E_Compiler_tmuxinator 2769934.834586102 ns/iter 2834661.9318181286 ns/iter 0.98
E2E_Compiler_ui5 97449732.14286087 ns/iter 119686118.00000417 ns/iter 0.81
E2E_Compiler_ui5_manifest 543497792.0000392 ns/iter 593876270.5000044 ns/iter 0.92
E2E_Compiler_unreal_engine_uproject 5422963.33999957 ns/iter 6699730.7941180365 ns/iter 0.81
E2E_Compiler_vercel 24811128.78788074 ns/iter 28446509.999998853 ns/iter 0.87
E2E_Compiler_yamllint 416814.9031555833 ns/iter 488619.0707620232 ns/iter 0.85
E2E_Evaluator_adaptivecard 25392.3258188717 ns/iter 41308.82983283264 ns/iter 0.61
E2E_Evaluator_ansible_meta 229900.07038917267 ns/iter 261652.0358523909 ns/iter 0.88
E2E_Evaluator_aws_cdk 54119.16249998967 ns/iter 68169.24684837859 ns/iter 0.79
E2E_Evaluator_babelrc 119499.57206068812 ns/iter 156961.5197383175 ns/iter 0.76
E2E_Evaluator_clang_format 130216.13354530888 ns/iter 133681.95952689083 ns/iter 0.97
E2E_Evaluator_cmake_presets 5487418.6026490135 ns/iter 5978052.919999754 ns/iter 0.92
E2E_Evaluator_code_climate 242379.27143778876 ns/iter 233951.42648460445 ns/iter 1.04
E2E_Evaluator_cql2 214417.41196424855 ns/iter 281545.40070918645 ns/iter 0.76
E2E_Evaluator_cspell 517124.87500003586 ns/iter 718149.3278866373 ns/iter 0.72
E2E_Evaluator_cypress 182451.80265970563 ns/iter 206909.95612791379 ns/iter 0.88
E2E_Evaluator_deno 376508.7990327695 ns/iter 445536.2993889502 ns/iter 0.85
E2E_Evaluator_dependabot 378645.2566560369 ns/iter 568555.3682692575 ns/iter 0.67
E2E_Evaluator_draft_04 6144411.543859581 ns/iter 8812285.644444274 ns/iter 0.70
E2E_Evaluator_fabric_mod 574933.8753918263 ns/iter 842093.907809142 ns/iter 0.68
E2E_Evaluator_geojson 16517360.756097332 ns/iter 24075589.73076745 ns/iter 0.69
E2E_Evaluator_gitpod_configuration 218146.49357696145 ns/iter 279026.46453898237 ns/iter 0.78
E2E_Evaluator_helm_chart_lock 301159.43436545297 ns/iter 545053.709589015 ns/iter 0.55
E2E_Evaluator_importmap 51409.75329151587 ns/iter 56548.93999252198 ns/iter 0.91
E2E_Evaluator_jasmine 113333.32686383501 ns/iter 147437.151992409 ns/iter 0.77
E2E_Evaluator_jshintrc 1116564.0926830703 ns/iter 1311884.1681575587 ns/iter 0.85
E2E_Evaluator_jsconfig 513070.6533332961 ns/iter 459429.2507626511 ns/iter 1.12
E2E_Evaluator_krakend 208504.92495307478 ns/iter 243807.41596909496 ns/iter 0.86
E2E_Evaluator_lazygit 116179.23948900071 ns/iter 177103.84461619865 ns/iter 0.66
E2E_Evaluator_lerna 159241.56923452683 ns/iter 233093.725905955 ns/iter 0.68
E2E_Evaluator_nest_cli 158044.47972348495 ns/iter 225857.96873778928 ns/iter 0.70
E2E_Evaluator_omc 18464.29722098624 ns/iter 24879.98203369951 ns/iter 0.74
E2E_Evaluator_omnisharp 527715.5420000099 ns/iter 943553.8174977105 ns/iter 0.56
E2E_Evaluator_openapi 8494945.744185442 ns/iter 14673424.128207631 ns/iter 0.58
E2E_Evaluator_pre_commit_hooks 393534.56858408806 ns/iter 513521.5829999424 ns/iter 0.77
E2E_Evaluator_pulumi 708329.2787644976 ns/iter 749382.2423313326 ns/iter 0.95
E2E_Evaluator_semantic_release 107345.43241350706 ns/iter 123997.90536038305 ns/iter 0.87
E2E_Evaluator_stale 153090.5649388457 ns/iter 199188.87216868863 ns/iter 0.77
E2E_Evaluator_stylecop 246987.26721478184 ns/iter 290190.5925774872 ns/iter 0.85
E2E_Evaluator_tmuxinator 87534.74790434103 ns/iter 121052.5136255231 ns/iter 0.72
E2E_Evaluator_ui5 472934.98035604606 ns/iter 560189.0621805266 ns/iter 0.84
E2E_Evaluator_ui5_manifest 2103786.8916407656 ns/iter 3071809.3350785347 ns/iter 0.68
E2E_Evaluator_unreal_engine_uproject 376764.96062993567 ns/iter 566448.37500005 ns/iter 0.67
E2E_Evaluator_vercel 250565.45034060904 ns/iter 395272.64389753964 ns/iter 0.63
E2E_Evaluator_yamllint 12995.045467329339 ns/iter 17305.5398839291 ns/iter 0.75
Micro_Draft4_Meta_1_No_Callback 181.69646367431994 ns/iter 251.6820615819162 ns/iter 0.72
Micro_Draft4_Required_Properties 734.2161298188481 ns/iter 1103.9981261822968 ns/iter 0.67
Micro_Draft4_Many_Optional_Properties_Minimal_Match 25.536395333361007 ns/iter 39.55164863520194 ns/iter 0.65
Micro_Draft4_Few_Optional_Properties_Minimal_Match 13.79964385054471 ns/iter 16.39895907984825 ns/iter 0.84
Micro_Draft4_Items_Schema 537.8347002059252 ns/iter 644.2606832076067 ns/iter 0.83
Micro_Draft4_Nested_Object 3.5534105261572155 ns/iter 3.961857066997841 ns/iter 0.90
Micro_Draft4_Properties_Triad_Optional 335.1976452700876 ns/iter 526.4299120339858 ns/iter 0.64
Micro_Draft4_Properties_Triad_Closed 289.9626460341218 ns/iter 471.35286503298045 ns/iter 0.62
Micro_Draft4_Properties_Triad_Required 361.1229770924995 ns/iter 689.0443526794747 ns/iter 0.52
Micro_Draft4_Properties_Closed 52.78013971687583 ns/iter 67.61245868276596 ns/iter 0.78
Micro_Draft4_Non_Recursive_Ref 26.413863235464966 ns/iter 27.704826512666447 ns/iter 0.95
Micro_Draft4_Pattern_Properties_True 185.6792110348978 ns/iter 217.75550879406978 ns/iter 0.85
Micro_Draft4_Ref_To_Single_Property 14.873973569857172 ns/iter 15.372705777493206 ns/iter 0.97
Micro_Draft4_Additional_Properties_Type 44.39778307192389 ns/iter 59.17017207055777 ns/iter 0.75
Micro_Draft4_Nested_Oneof 59.47051157569109 ns/iter 83.98885351341436 ns/iter 0.71
Micro_Draft4_Short_Enum 11.189622179931913 ns/iter 12.077229091461227 ns/iter 0.93
Micro_Draft4_Long_Enum 17.325411361692733 ns/iter 18.279079780671484 ns/iter 0.95
Micro_Draft4_Long_Enum_Short_Strings 11.264108351942708 ns/iter 15.685306301009662 ns/iter 0.72
Micro_Draft4_Type_Object 6.297637665211384 ns/iter 11.21780085653003 ns/iter 0.56
Micro_Draft4_Ref_Single_100 3003182.450757608 ns/iter 3089373.49549532 ns/iter 0.97
Micro_Draft4_Compile_Ref_Many_Nested 1939769.181585561 ns/iter 2290756.752293541 ns/iter 0.85
Micro_Draft6_Property_Names 117.87422529332976 ns/iter 138.5747914880639 ns/iter 0.85
Micro_Draft7_If_Then_Else 33.969067183534186 ns/iter 40.78439709815503 ns/iter 0.83
Micro_2019_09_Unevaluated_Properties 48.00127200106062 ns/iter 60.32496367210772 ns/iter 0.80
Micro_2020_12_Dynamic_Ref 269.2012457093813 ns/iter 376.3106471004339 ns/iter 0.72
Micro_2020_12_Dynamic_Ref_Single 6.075687792953517 ns/iter 7.505607966678486 ns/iter 0.81
Micro_2020_12_Simple_Output_Mask 146589.79429018832 ns/iter 181830.98510880538 ns/iter 0.81
Micro_2020_12_Simple_Output_Annotations 164914.36655946018 ns/iter 210634.29508194208 ns/iter 0.78
Micro_2020_12_Compile_NonCircular_Shared_Refs 951408.4373039962 ns/iter 1199669.6087786432 ns/iter 0.79

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

@jviotti jviotti force-pushed the invalid-target-error branch from acc3bc1 to 58bf352 Compare January 23, 2026 13:37
Copy link

@github-actions github-actions bot left a comment

Choose a reason for hiding this comment

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

Benchmark (linux/gcc)

Details
Benchmark suite Current: 13d388a Previous: 132dcca Ratio
Micro_2020_12_Dynamic_Ref 452.57459549599 ns/iter 451.5422942629223 ns/iter 1.00
Micro_2020_12_Dynamic_Ref_Single 9.167963275927862 ns/iter 9.613058507594058 ns/iter 0.95
Micro_2020_12_Simple_Output_Mask 138496.09098087606 ns/iter 143104.0302785371 ns/iter 0.97
Micro_2020_12_Simple_Output_Annotations 177215.0981486086 ns/iter 177139.06644934998 ns/iter 1.00
Micro_2020_12_Compile_NonCircular_Shared_Refs 1344950.042470975 ns/iter 1335018.1276191939 ns/iter 1.01
Micro_2019_09_Unevaluated_Properties 46.29002721951032 ns/iter 45.94104561033835 ns/iter 1.01
Micro_Draft7_If_Then_Else 45.08436089112683 ns/iter 44.689276641591256 ns/iter 1.01
Micro_Draft6_Property_Names 168.6065794376826 ns/iter 164.9182994379946 ns/iter 1.02
Micro_Draft4_Meta_1_No_Callback 227.58251869021694 ns/iter 229.47772793930088 ns/iter 0.99
Micro_Draft4_Required_Properties 832.50177322993 ns/iter 830.4787276147782 ns/iter 1.00
Micro_Draft4_Many_Optional_Properties_Minimal_Match 29.88128376741618 ns/iter 30.135211432104423 ns/iter 0.99
Micro_Draft4_Few_Optional_Properties_Minimal_Match 18.500100378391917 ns/iter 18.53936295081148 ns/iter 1.00
Micro_Draft4_Items_Schema 534.2962470029938 ns/iter 523.2160194374678 ns/iter 1.02
Micro_Draft4_Nested_Object 3.35294210748985 ns/iter 3.2483679353932415 ns/iter 1.03
Micro_Draft4_Properties_Triad_Optional 501.5979040000502 ns/iter 479.1094424095753 ns/iter 1.05
Micro_Draft4_Properties_Triad_Closed 411.2426318041902 ns/iter 426.468122994997 ns/iter 0.96
Micro_Draft4_Properties_Triad_Required 526.6896382969966 ns/iter 500.87376104343485 ns/iter 1.05
Micro_Draft4_Properties_Closed 83.09532424438767 ns/iter 82.7981895156797 ns/iter 1.00
Micro_Draft4_Non_Recursive_Ref 14.118267731579053 ns/iter 14.440815567799417 ns/iter 0.98
Micro_Draft4_Pattern_Properties_True 248.8613387791108 ns/iter 258.0242668176612 ns/iter 0.96
Micro_Draft4_Ref_To_Single_Property 18.292949033976104 ns/iter 18.85402789757299 ns/iter 0.97
Micro_Draft4_Additional_Properties_Type 19.41857804260124 ns/iter 19.176812043362595 ns/iter 1.01
Micro_Draft4_Nested_Oneof 109.81384794529046 ns/iter 111.26646989751833 ns/iter 0.99
Micro_Draft4_Short_Enum 17.768632677857155 ns/iter 17.7687134211676 ns/iter 1.00
Micro_Draft4_Long_Enum 19.42691666294594 ns/iter 18.861188331326165 ns/iter 1.03
Micro_Draft4_Long_Enum_Short_Strings 17.7641832269645 ns/iter 17.819433403740224 ns/iter 1.00
Micro_Draft4_Type_Object 9.190133002628425 ns/iter 9.588621988791386 ns/iter 0.96
Micro_Draft4_Ref_Single_100 3057852.258771682 ns/iter 2995497.3965520198 ns/iter 1.02
Micro_Draft4_Compile_Ref_Many_Nested 2091496.381818257 ns/iter 2070178.3775807612 ns/iter 1.01
E2E_Compiler_adaptivecard 74545885.74999832 ns/iter 72971655.74999553 ns/iter 1.02
E2E_Compiler_ansible_meta 33165610.142857205 ns/iter 32757178.238095243 ns/iter 1.01
E2E_Compiler_aws_cdk 584207.8811714615 ns/iter 577062.2883030956 ns/iter 1.01
E2E_Compiler_babelrc 3387660.3543688767 ns/iter 3361558.8653842765 ns/iter 1.01
E2E_Compiler_clang_format 22618149.483873237 ns/iter 22458753.74194017 ns/iter 1.01
E2E_Compiler_cmake_presets 34718359.29999543 ns/iter 34500015.25000061 ns/iter 1.01
E2E_Compiler_code_climate 3311378.971830515 ns/iter 3267529.7757006316 ns/iter 1.01
E2E_Compiler_cql2 16736198.833333066 ns/iter 16449022.37209207 ns/iter 1.02
E2E_Compiler_cspell 29278854.91304432 ns/iter 28855770.999996364 ns/iter 1.01
E2E_Compiler_cypress 5364265.587786576 ns/iter 5352179.702289962 ns/iter 1.00
E2E_Compiler_deno 10320000.61764774 ns/iter 10295421.32352938 ns/iter 1.00
E2E_Compiler_dependabot 5496096.968992485 ns/iter 5454753.054264144 ns/iter 1.01
E2E_Compiler_draft_04 3383082.40776707 ns/iter 3337620.180952529 ns/iter 1.01
E2E_Compiler_fabric_mod 6006230.372881642 ns/iter 6078648.220338082 ns/iter 0.99
E2E_Compiler_geojson 32584938.181819532 ns/iter 32333166.59090881 ns/iter 1.01
E2E_Compiler_gitpod_configuration 6335255.490909152 ns/iter 6245618.000000215 ns/iter 1.01
E2E_Compiler_helm_chart_lock 958936.3978052455 ns/iter 946578.0746267522 ns/iter 1.01
E2E_Compiler_importmap 464619.41156914824 ns/iter 462405.4639108118 ns/iter 1.00
E2E_Compiler_jasmine 1796053.4923470186 ns/iter 1769065.1370558413 ns/iter 1.02
E2E_Compiler_jshintrc 5813717.462809876 ns/iter 5853574.491803542 ns/iter 0.99
E2E_Compiler_jsconfig 27899317.000001244 ns/iter 27761047.359999795 ns/iter 1.00
E2E_Compiler_krakend 178148606.5000024 ns/iter 175274211.74997926 ns/iter 1.02
E2E_Compiler_lazygit 46541957.13333896 ns/iter 46195269.153853446 ns/iter 1.01
E2E_Compiler_lerna 2249365.6923078564 ns/iter 2226715.509677448 ns/iter 1.01
E2E_Compiler_nest_cli 9567895.85135127 ns/iter 9453050.135134988 ns/iter 1.01
E2E_Compiler_omc 219790901.00001028 ns/iter 211471871.3333635 ns/iter 1.04
E2E_Compiler_omnisharp 9038509.153845971 ns/iter 9064689.743590511 ns/iter 1.00
E2E_Compiler_openapi 31295380.227272127 ns/iter 31103451.13042928 ns/iter 1.01
E2E_Compiler_pre_commit_hooks 6336886.243242556 ns/iter 6291005.090088629 ns/iter 1.01
E2E_Compiler_pulumi 5103315.773722552 ns/iter 5093627.0145976 ns/iter 1.00
E2E_Compiler_semantic_release 1999279.7457143753 ns/iter 1977978.6977404894 ns/iter 1.01
E2E_Compiler_stale 2035439.6676300978 ns/iter 2023719.6040463692 ns/iter 1.01
E2E_Compiler_stylecop 7846502.011236144 ns/iter 7761811.022222294 ns/iter 1.01
E2E_Compiler_tmuxinator 2669773.5954200677 ns/iter 2644067.7121218992 ns/iter 1.01
E2E_Compiler_ui5 69503429.7999996 ns/iter 69139752.5000184 ns/iter 1.01
E2E_Compiler_ui5_manifest 412458180.49998206 ns/iter 403750451.9999402 ns/iter 1.02
E2E_Compiler_unreal_engine_uproject 5761731.190082812 ns/iter 5729986.672131641 ns/iter 1.01
E2E_Compiler_vercel 18272170.605263524 ns/iter 18213491.894734465 ns/iter 1.00
E2E_Compiler_yamllint 513285.7802359642 ns/iter 505629.99564585806 ns/iter 1.02
E2E_Evaluator_adaptivecard 34412.0955279552 ns/iter 34258.636182522176 ns/iter 1.00
E2E_Evaluator_ansible_meta 304744.961572019 ns/iter 304487.1432302779 ns/iter 1.00
E2E_Evaluator_aws_cdk 59299.047127126316 ns/iter 59650.16692150247 ns/iter 0.99
E2E_Evaluator_babelrc 139093.77147391601 ns/iter 141754.27147211632 ns/iter 0.98
E2E_Evaluator_clang_format 114452.72687079942 ns/iter 108496.34726337102 ns/iter 1.05
E2E_Evaluator_cmake_presets 5451399.418803765 ns/iter 5314046.378788535 ns/iter 1.03
E2E_Evaluator_code_climate 236859.99186988792 ns/iter 233221.16689055975 ns/iter 1.02
E2E_Evaluator_cql2 317366.92133815796 ns/iter 316768.2891403048 ns/iter 1.00
E2E_Evaluator_cspell 638623.9944750904 ns/iter 649040.9536178161 ns/iter 0.98
E2E_Evaluator_cypress 189004.21272579284 ns/iter 189003.77813852113 ns/iter 1.00
E2E_Evaluator_deno 365447.90037291014 ns/iter 374619.5440042925 ns/iter 0.98
E2E_Evaluator_dependabot 534905.2162576835 ns/iter 523272.43296707945 ns/iter 1.02
E2E_Evaluator_draft_04 7758769.693332397 ns/iter 7752847.750000766 ns/iter 1.00
E2E_Evaluator_fabric_mod 955758.9179207572 ns/iter 965621.4666665001 ns/iter 0.99
E2E_Evaluator_geojson 26046441.4814797 ns/iter 26708240.85184567 ns/iter 0.98
E2E_Evaluator_gitpod_configuration 297238.539770302 ns/iter 295942.9581374994 ns/iter 1.00
E2E_Evaluator_helm_chart_lock 362383.5664948555 ns/iter 362906.0077519617 ns/iter 1.00
E2E_Evaluator_importmap 59392.620534193054 ns/iter 60484.706004854655 ns/iter 0.98
E2E_Evaluator_jasmine 158295.7232464386 ns/iter 152708.29679669594 ns/iter 1.04
E2E_Evaluator_jshintrc 1055483.0459967202 ns/iter 1046839.5344309602 ns/iter 1.01
E2E_Evaluator_jsconfig 484795.66946185793 ns/iter 485147.20922229294 ns/iter 1.00
E2E_Evaluator_krakend 238440.9570219887 ns/iter 240633.22892393576 ns/iter 0.99
E2E_Evaluator_lazygit 169309.82024391374 ns/iter 167441.4511904572 ns/iter 1.01
E2E_Evaluator_lerna 160550.18517673947 ns/iter 159427.4457941663 ns/iter 1.01
E2E_Evaluator_nest_cli 247882.56443661771 ns/iter 248993.27917705005 ns/iter 1.00
E2E_Evaluator_omc 27275.35020640997 ns/iter 27551.193192054678 ns/iter 0.99
E2E_Evaluator_omnisharp 622466.3126126338 ns/iter 602594.8134264301 ns/iter 1.03
E2E_Evaluator_openapi 14072565.75555746 ns/iter 12139528.76785486 ns/iter 1.16
E2E_Evaluator_pre_commit_hooks 581860.2353951543 ns/iter 574545.1205907867 ns/iter 1.01
E2E_Evaluator_pulumi 834922.8545887575 ns/iter 839243.4880093958 ns/iter 0.99
E2E_Evaluator_semantic_release 136918.3798299793 ns/iter 142617.82996942353 ns/iter 0.96
E2E_Evaluator_stale 176022.4352175993 ns/iter 179936.42166494363 ns/iter 0.98
E2E_Evaluator_stylecop 372160.44788882247 ns/iter 360633.03699890425 ns/iter 1.03
E2E_Evaluator_tmuxinator 126934.66273799891 ns/iter 128926.7189169289 ns/iter 0.98
E2E_Evaluator_ui5 679553.408518883 ns/iter 691094.3795122787 ns/iter 0.98
E2E_Evaluator_ui5_manifest 3278169.3878500974 ns/iter 3331424.8388623996 ns/iter 0.98
E2E_Evaluator_unreal_engine_uproject 542325.2849872435 ns/iter 532704.2601377442 ns/iter 1.02
E2E_Evaluator_vercel 352497.3742455229 ns/iter 358951.2536008341 ns/iter 0.98
E2E_Evaluator_yamllint 13662.623946396865 ns/iter 13654.502073153411 ns/iter 1.00

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

See: sourcemeta/jsonschema#624
Signed-off-by: Juan Cruz Viotti <jv@jviotti.com>
@jviotti jviotti force-pushed the invalid-target-error branch from 58bf352 to 13d388a Compare January 23, 2026 13:54
@jviotti jviotti changed the title [WIP] Throw a better exception on invalid $ref targets Throw a better exception on invalid $ref targets Jan 23, 2026
@jviotti jviotti marked this pull request as ready for review January 23, 2026 13:54
@jviotti jviotti merged commit fd356e2 into main Jan 23, 2026
16 checks passed
@jviotti jviotti deleted the invalid-target-error branch January 23, 2026 14:05
@augmentcode
Copy link

augmentcode bot commented Jan 23, 2026

🤖 Augment PR Summary

Summary: Improves error reporting for invalid $ref targets during compilation, aligning behavior with jsonschema issue #624.

Changes:

  • Bumps the vendored sourcemeta/core dependency.
  • Adds CompilerReferenceTargetNotSchemaError to expose the referenced identifier and the (target) schema location.
  • Updates the compiler to throw the new error when a reference resolves to a non-schema location, and adjusts internal invariants accordingly.
  • Enhances JSON Schema framing/identification to throw keyword-specific errors for invalid keyword types and invalid URI values.
  • Adds JSON Pointer slicing support to report a more precise location for invalid reference targets.
  • Updates/extends evaluator tests (Draft 4/6/7) to validate the new exception type and location semantics, including a new nested-unknown-keyword case.
  • Improves HTML element helpers to allow naming mismatches (e.g. template_ mapping to the <template> tag).

Technical Notes: Reference errors now report the invalid target’s pointer context rather than the source $ref pointer, and multiple keyword-type checks now surface as SchemaKeywordError instead of generic errors.

🤖 Was this summary useful? React with 👍 or 👎

Copy link

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

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

Review completed. 3 suggestions posted.

Fix All in Augment

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

destination, to_pointer(schema_context.relative_pointer),
"The target of the reference is not a valid schema");
}
assert(is_schema(new_schema));
Copy link

Choose a reason for hiding this comment

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

assert(is_schema(new_schema)) is compiled out in release builds, so if an unexpected non-schema target makes it here you may end up compiling against an invalid value (potential UB/crash). Consider keeping a runtime guard/exception here unless this path is provably unreachable for all inputs.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

private:
std::string keyword_;
std::string value_;
const char *message_;
Copy link

Choose a reason for hiding this comment

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

SchemaKeywordError stores message_ as a raw const char *; if any caller ever passes a non-static buffer (e.g. std::string::c_str() from a temporary), what() can dangle. Consider documenting/enforcing the lifetime requirement, or making message_ owning, to avoid accidental UB.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎


try {
sourcemeta::blaze::compile(schema, sourcemeta::core::schema_walker,
sourcemeta::core::schema_resolver,
Copy link

Choose a reason for hiding this comment

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

This new test will still pass if compile(...) unexpectedly does not throw, since the try block has no FAIL()/assertion after the call. Consider adding an explicit failure after compile(...) so the test enforces that an exception is required.

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants