-
Notifications
You must be signed in to change notification settings - Fork 145
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Record SSI injection values in configuration #5611
Conversation
Datadog ReportBranch report: ✅ 0 Failed, 335001 Passed, 1556 Skipped, 13h 49m 47.74s Total Time |
Execution-Time Benchmarks Report ⏱️Execution-time results for samples comparing the following branches/commits: Execution-time benchmarks measure the whole time it takes to execute a program. And are intended to measure the one-off costs. Cases where the execution time results for the PR are worse than latest master results are shown in red. The following thresholds were used for comparing the execution times:
Note that these results are based on a single point-in-time result for each branch. For full results, see the dashboard. Graphs show the p99 interval based on the mean and StdDev of the test run, as well as the mean value of the run (shown as a diamond below the graph). gantt
title Execution time (ms) FakeDbCommand (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5611) - mean (74ms) : 64, 83
. : milestone, 74,
master - mean (75ms) : 61, 90
. : milestone, 75,
section CallTarget+Inlining+NGEN
This PR (5611) - mean (980ms) : 960, 1001
. : milestone, 980,
master - mean (978ms) : 947, 1010
. : milestone, 978,
gantt
title Execution time (ms) FakeDbCommand (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5611) - mean (110ms) : 106, 113
. : milestone, 110,
master - mean (109ms) : 107, 112
. : milestone, 109,
section CallTarget+Inlining+NGEN
This PR (5611) - mean (692ms) : 669, 715
. : milestone, 692,
master - mean (688ms) : 669, 707
. : milestone, 688,
gantt
title Execution time (ms) FakeDbCommand (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5611) - mean (93ms) : 90, 96
. : milestone, 93,
master - mean (93ms) : 90, 96
. : milestone, 93,
section CallTarget+Inlining+NGEN
This PR (5611) - mean (645ms) : 624, 667
. : milestone, 645,
master - mean (643ms) : 622, 663
. : milestone, 643,
gantt
title Execution time (ms) HttpMessageHandler (.NET Framework 4.6.2)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5611) - mean (192ms) : 188, 195
. : milestone, 192,
master - mean (192ms) : 188, 196
. : milestone, 192,
section CallTarget+Inlining+NGEN
This PR (5611) - mean (1,072ms) : 1043, 1101
. : milestone, 1072,
master - mean (1,066ms) : 1041, 1090
. : milestone, 1066,
gantt
title Execution time (ms) HttpMessageHandler (.NET Core 3.1)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5611) - mean (278ms) : 272, 283
. : milestone, 278,
master - mean (276ms) : 272, 280
. : milestone, 276,
section CallTarget+Inlining+NGEN
This PR (5611) - mean (864ms) : 836, 891
. : milestone, 864,
master - mean (864ms) : 840, 888
. : milestone, 864,
gantt
title Execution time (ms) HttpMessageHandler (.NET 6)
dateFormat X
axisFormat %s
todayMarker off
section Baseline
This PR (5611) - mean (266ms) : 263, 270
. : milestone, 266,
master - mean (266ms) : 262, 270
. : milestone, 266,
section CallTarget+Inlining+NGEN
This PR (5611) - mean (858ms) : 830, 887
. : milestone, 858,
master - mean (855ms) : 828, 881
. : milestone, 855,
|
Benchmarks Report for tracer 🐌Benchmarks for #5611 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.ActivityBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AgentWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.AspNetCoreBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.CIVisibilityProtocolWriterBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.DbCommandBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ElasticsearchBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.GraphQLBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.HttpClientBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.ILoggerBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.Log4netBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.NLogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.RedisBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SerilogBenchmark - Same speed ✔️ Same allocations ✔️Raw results
Benchmarks.Trace.SpanBenchmark - Faster 🎉 Same allocations ✔️
|
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.SpanBenchmark.StartFinishScope‑netcoreapp3.1 | 1.221 | 782.32 | 640.62 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StartFinishSpan |
net6.0 | 398ns | 0.112ns | 0.433ns | 0.00817 | 0 | 0 | 576 B |
master | StartFinishSpan |
netcoreapp3.1 | 539ns | 0.183ns | 0.708ns | 0.00767 | 0 | 0 | 576 B |
master | StartFinishSpan |
net472 | 694ns | 0.544ns | 2.11ns | 0.0917 | 0 | 0 | 578 B |
master | StartFinishScope |
net6.0 | 478ns | 0.161ns | 0.625ns | 0.00984 | 0 | 0 | 696 B |
master | StartFinishScope |
netcoreapp3.1 | 783ns | 0.287ns | 1.07ns | 0.00935 | 0 | 0 | 696 B |
master | StartFinishScope |
net472 | 847ns | 0.518ns | 2.01ns | 0.104 | 0 | 0 | 658 B |
#5611 | StartFinishSpan |
net6.0 | 389ns | 0.126ns | 0.487ns | 0.00804 | 0 | 0 | 576 B |
#5611 | StartFinishSpan |
netcoreapp3.1 | 545ns | 0.689ns | 2.67ns | 0.00788 | 0 | 0 | 576 B |
#5611 | StartFinishSpan |
net472 | 640ns | 0.31ns | 1.2ns | 0.0918 | 0 | 0 | 578 B |
#5611 | StartFinishScope |
net6.0 | 479ns | 0.175ns | 0.678ns | 0.00966 | 0 | 0 | 696 B |
#5611 | StartFinishScope |
netcoreapp3.1 | 641ns | 0.318ns | 1.23ns | 0.00927 | 0 | 0 | 696 B |
#5611 | StartFinishScope |
net472 | 787ns | 1.06ns | 4.09ns | 0.104 | 0 | 0 | 658 B |
Benchmarks.Trace.TraceAnnotationsBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunOnMethodBegin |
net6.0 | 626ns | 0.209ns | 0.809ns | 0.00965 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
netcoreapp3.1 | 944ns | 0.488ns | 1.82ns | 0.00921 | 0 | 0 | 696 B |
master | RunOnMethodBegin |
net472 | 1.04μs | 0.451ns | 1.75ns | 0.104 | 0 | 0 | 658 B |
#5611 | RunOnMethodBegin |
net6.0 | 666ns | 0.237ns | 0.918ns | 0.00967 | 0 | 0 | 696 B |
#5611 | RunOnMethodBegin |
netcoreapp3.1 | 994ns | 0.396ns | 1.54ns | 0.00937 | 0 | 0 | 696 B |
#5611 | RunOnMethodBegin |
net472 | 1.14μs | 0.614ns | 2.38ns | 0.104 | 0 | 0 | 658 B |
Throughput/Crank Report:zap:Throughput results for AspNetCoreSimpleController comparing the following branches/commits: Cases where throughput results for the PR are worse than latest master (5% drop or greater), results are shown in red. Note that these results are based on a single point-in-time result for each branch. For full results, see one of the many, many dashboards! gantt
title Throughput Linux x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (5611) (11.784M) : 0, 11783733
master (11.972M) : 0, 11972066
benchmarks/2.9.0 (11.919M) : 0, 11919161
section Automatic
This PR (5611) (8.037M) : 0, 8036520
master (8.084M) : 0, 8083606
benchmarks/2.9.0 (8.337M) : 0, 8336508
section Trace stats
master (8.417M) : 0, 8417179
section Manual
This PR (5611) (10.253M) : 0, 10253020
master (10.405M) : 0, 10405345
section Manual + Automatic
This PR (5611) (7.628M) : 0, 7627797
master (7.642M) : 0, 7641659
section Version Conflict
master (6.857M) : 0, 6856617
gantt
title Throughput Linux arm64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (5611) (9.762M) : 0, 9761946
master (9.615M) : 0, 9614582
benchmarks/2.9.0 (9.646M) : 0, 9645709
section Automatic
This PR (5611) (6.598M) : 0, 6598474
master (6.402M) : 0, 6402466
section Trace stats
master (6.817M) : 0, 6817163
section Manual
This PR (5611) (8.175M) : 0, 8175203
master (8.034M) : 0, 8034215
section Manual + Automatic
This PR (5611) (6.106M) : 0, 6105671
master (6.128M) : 0, 6128473
section Version Conflict
master (5.698M) : 0, 5697938
gantt
title Throughput Windows x64 (Total requests)
dateFormat X
axisFormat %s
section Baseline
This PR (5611) (10.266M) : 0, 10266356
master (9.952M) : 0, 9951590
benchmarks/2.9.0 (10.036M) : 0, 10035695
section Automatic
This PR (5611) (7.100M) : 0, 7099657
master (6.926M) : 0, 6925768
benchmarks/2.9.0 (7.475M) : 0, 7475419
section Trace stats
master (7.324M) : 0, 7323983
section Manual
This PR (5611) (8.859M) : 0, 8858981
master (8.618M) : 0, 8618295
section Manual + Automatic
This PR (5611) (6.800M) : 0, 6799767
master (6.808M) : 0, 6808180
section Version Conflict
master (6.168M) : 0, 6167577
|
21b9ae5
to
7c05e4e
Compare
Benchmarks Report for appsec 🐌Benchmarks for #5611 compared to master:
The following thresholds were used for comparing the benchmark speeds:
Allocation changes below 0.5% are ignored. Benchmark detailsBenchmarks.Trace.Asm.AppSecBodyBenchmark - Slower
|
Benchmark | diff/base | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.Asm.AppSecBodyBenchmark.ObjectExtractorSimpleBody‑netcoreapp3.1 | 1.132 | 211.52 | 239.38 |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | AllCycleSimpleBody |
net6.0 | 74.3μs | 97.3ns | 364ns | 0.074 | 0 | 0 | 6 KB |
master | AllCycleSimpleBody |
netcoreapp3.1 | 64μs | 77.7ns | 291ns | 0.0954 | 0 | 0 | 6.94 KB |
master | AllCycleSimpleBody |
net472 | 50.5μs | 80.1ns | 300ns | 1.31 | 0 | 0 | 8.33 KB |
master | AllCycleMoreComplexBody |
net6.0 | 80μs | 62.8ns | 243ns | 0.12 | 0 | 0 | 9.5 KB |
master | AllCycleMoreComplexBody |
netcoreapp3.1 | 71.3μs | 78.1ns | 281ns | 0.108 | 0 | 0 | 10.36 KB |
master | AllCycleMoreComplexBody |
net472 | 57.8μs | 79.4ns | 307ns | 1.87 | 0.0288 | 0 | 11.84 KB |
master | ObjectExtractorSimpleBody |
net6.0 | 144ns | 0.149ns | 0.557ns | 0.00394 | 0 | 0 | 280 B |
master | ObjectExtractorSimpleBody |
netcoreapp3.1 | 212ns | 0.134ns | 0.502ns | 0.00382 | 0 | 0 | 272 B |
master | ObjectExtractorSimpleBody |
net472 | 182ns | 0.39ns | 1.51ns | 0.0446 | 0 | 0 | 281 B |
master | ObjectExtractorMoreComplexBody |
net6.0 | 3.04μs | 2.09ns | 7.81ns | 0.0535 | 0 | 0 | 3.78 KB |
master | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 4.02μs | 2.71ns | 10.5ns | 0.0503 | 0 | 0 | 3.69 KB |
master | ObjectExtractorMoreComplexBody |
net472 | 3.98μs | 4.05ns | 15.7ns | 0.602 | 0.00594 | 0 | 3.8 KB |
#5611 | AllCycleSimpleBody |
net6.0 | 71.1μs | 53.7ns | 208ns | 0.0707 | 0 | 0 | 6 KB |
#5611 | AllCycleSimpleBody |
netcoreapp3.1 | 62.2μs | 82.2ns | 318ns | 0.0934 | 0 | 0 | 6.94 KB |
#5611 | AllCycleSimpleBody |
net472 | 48.4μs | 54.8ns | 205ns | 1.32 | 0 | 0 | 8.33 KB |
#5611 | AllCycleMoreComplexBody |
net6.0 | 77.2μs | 40.2ns | 145ns | 0.115 | 0 | 0 | 9.5 KB |
#5611 | AllCycleMoreComplexBody |
netcoreapp3.1 | 69.6μs | 81.1ns | 303ns | 0.14 | 0 | 0 | 10.36 KB |
#5611 | AllCycleMoreComplexBody |
net472 | 56.1μs | 52.9ns | 198ns | 1.86 | 0.0281 | 0 | 11.84 KB |
#5611 | ObjectExtractorSimpleBody |
net6.0 | 153ns | 0.134ns | 0.501ns | 0.00397 | 0 | 0 | 280 B |
#5611 | ObjectExtractorSimpleBody |
netcoreapp3.1 | 239ns | 0.16ns | 0.599ns | 0.00363 | 0 | 0 | 272 B |
#5611 | ObjectExtractorSimpleBody |
net472 | 172ns | 0.628ns | 2.43ns | 0.0446 | 0 | 0 | 281 B |
#5611 | ObjectExtractorMoreComplexBody |
net6.0 | 3.03μs | 1.65ns | 6.19ns | 0.053 | 0 | 0 | 3.78 KB |
#5611 | ObjectExtractorMoreComplexBody |
netcoreapp3.1 | 4.12μs | 3.2ns | 12ns | 0.0494 | 0 | 0 | 3.69 KB |
#5611 | ObjectExtractorMoreComplexBody |
net472 | 3.78μs | 1.91ns | 7.39ns | 0.603 | 0.00567 | 0 | 3.8 KB |
Benchmarks.Trace.Asm.AppSecEncoderBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | EncodeArgs |
net6.0 | 41.3μs | 21.5ns | 83.1ns | 0.454 | 0 | 0 | 32.4 KB |
master | EncodeArgs |
netcoreapp3.1 | 56.3μs | 62.1ns | 241ns | 0.447 | 0 | 0 | 32.4 KB |
master | EncodeArgs |
net472 | 71.1μs | 62.2ns | 241ns | 5.15 | 0.0711 | 0 | 32.5 KB |
master | EncodeLegacyArgs |
net6.0 | 71.8μs | 91.2ns | 353ns | 0 | 0 | 0 | 2.14 KB |
master | EncodeLegacyArgs |
netcoreapp3.1 | 105μs | 119ns | 459ns | 0 | 0 | 0 | 2.14 KB |
master | EncodeLegacyArgs |
net472 | 155μs | 118ns | 459ns | 0.308 | 0 | 0 | 2.15 KB |
#5611 | EncodeArgs |
net6.0 | 39.8μs | 15.9ns | 59.4ns | 0.456 | 0 | 0 | 32.4 KB |
#5611 | EncodeArgs |
netcoreapp3.1 | 55.5μs | 26ns | 101ns | 0.443 | 0 | 0 | 32.4 KB |
#5611 | EncodeArgs |
net472 | 68.3μs | 46.8ns | 175ns | 5.15 | 0.0683 | 0 | 32.5 KB |
#5611 | EncodeLegacyArgs |
net6.0 | 75.2μs | 46.5ns | 180ns | 0 | 0 | 0 | 2.14 KB |
#5611 | EncodeLegacyArgs |
netcoreapp3.1 | 104μs | 53.2ns | 206ns | 0 | 0 | 0 | 2.14 KB |
#5611 | EncodeLegacyArgs |
net472 | 156μs | 97.5ns | 378ns | 0.311 | 0 | 0 | 2.15 KB |
Benchmarks.Trace.Asm.AppSecWafBenchmark - Same speed ✔️ Same allocations ✔️
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | RunWafRealisticBenchmark |
net6.0 | 186μs | 127ns | 492ns | 0 | 0 | 0 | 2.42 KB |
master | RunWafRealisticBenchmark |
netcoreapp3.1 | 199μs | 195ns | 731ns | 0 | 0 | 0 | 2.37 KB |
master | RunWafRealisticBenchmark |
net472 | 218μs | 126ns | 486ns | 0.326 | 0 | 0 | 2.43 KB |
master | RunWafRealisticBenchmarkWithAttack |
net6.0 | 123μs | 90.4ns | 350ns | 0 | 0 | 0 | 1.46 KB |
master | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 133μs | 231ns | 893ns | 0 | 0 | 0 | 1.45 KB |
master | RunWafRealisticBenchmarkWithAttack |
net472 | 144μs | 174ns | 675ns | 0.216 | 0 | 0 | 1.48 KB |
#5611 | RunWafRealisticBenchmark |
net6.0 | 183μs | 129ns | 501ns | 0 | 0 | 0 | 2.42 KB |
#5611 | RunWafRealisticBenchmark |
netcoreapp3.1 | 196μs | 388ns | 1.5μs | 0 | 0 | 0 | 2.37 KB |
#5611 | RunWafRealisticBenchmark |
net472 | 216μs | 84.1ns | 315ns | 0.324 | 0 | 0 | 2.43 KB |
#5611 | RunWafRealisticBenchmarkWithAttack |
net6.0 | 123μs | 76.9ns | 298ns | 0 | 0 | 0 | 1.46 KB |
#5611 | RunWafRealisticBenchmarkWithAttack |
netcoreapp3.1 | 131μs | 213ns | 823ns | 0 | 0 | 0 | 1.45 KB |
#5611 | RunWafRealisticBenchmarkWithAttack |
net472 | 143μs | 24.2ns | 93.6ns | 0.214 | 0 | 0 | 1.48 KB |
Benchmarks.Trace.Iast.StringAspectsBenchmark - Faster 🎉 More allocations ⚠️
Faster 🎉 in #5611
Benchmark
base/diff
Base Median (ns)
Diff Median (ns)
Modality
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472
1.206
45,600.00
37,800.00
More allocations ⚠️ in #5611
Benchmark
Base Allocated
Diff Allocated
Change
Change %
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472
56.65 KB
59.45 KB
2.8 KB
4.94%
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1
252.13 KB
254.18 KB
2.06 KB
0.82%
Benchmark | base/diff | Base Median (ns) | Diff Median (ns) | Modality |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 | 1.206 | 45,600.00 | 37,800.00 |
Benchmark | Base Allocated | Diff Allocated | Change | Change % |
---|---|---|---|---|
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatBenchmark‑net472 | 56.65 KB | 59.45 KB | 2.8 KB | 4.94% |
Benchmarks.Trace.Iast.StringAspectsBenchmark.StringConcatAspectBenchmark‑netcoreapp3.1 | 252.13 KB | 254.18 KB | 2.06 KB | 0.82% |
Raw results
Branch | Method | Toolchain | Mean | StdError | StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
---|---|---|---|---|---|---|---|---|---|
master | StringConcatBenchmark |
net6.0 | 60.4μs | 730ns | 7.27μs | 0 | 0 | 0 | 43.44 KB |
master | StringConcatBenchmark |
netcoreapp3.1 | 65.4μs | 908ns | 9.03μs | 0 | 0 | 0 | 42.64 KB |
master | StringConcatBenchmark |
net472 | 46.5μs | 367ns | 3.58μs | 0 | 0 | 0 | 56.65 KB |
master | StringConcatAspectBenchmark |
net6.0 | 336μs | 1.86μs | 13.5μs | 0 | 0 | 0 | 256.05 KB |
master | StringConcatAspectBenchmark |
netcoreapp3.1 | 342μs | 3.08μs | 29.5μs | 0 | 0 | 0 | 252.13 KB |
master | StringConcatAspectBenchmark |
net472 | 332μs | 7.22μs | 69.6μs | 0 | 0 | 0 | 278.53 KB |
#5611 | StringConcatBenchmark |
net6.0 | 51.5μs | 189ns | 732ns | 0 | 0 | 0 | 43.44 KB |
#5611 | StringConcatBenchmark |
netcoreapp3.1 | 62.4μs | 817ns | 8.17μs | 0 | 0 | 0 | 42.64 KB |
#5611 | StringConcatBenchmark |
net472 | 37.9μs | 96ns | 346ns | 0 | 0 | 0 | 59.45 KB |
#5611 | StringConcatAspectBenchmark |
net6.0 | 303μs | 1.65μs | 9.92μs | 0 | 0 | 0 | 255.25 KB |
#5611 | StringConcatAspectBenchmark |
netcoreapp3.1 | 315μs | 4.96μs | 49.1μs | 0 | 0 | 0 | 254.18 KB |
#5611 | StringConcatAspectBenchmark |
net472 | 295μs | 6.89μs | 66.5μs | 0 | 0 | 0 | 278.53 KB |
7207c23
to
37a18f4
Compare
37a18f4
to
ea3708f
Compare
Summary of changes
Adds
ssi_injection_enabled
andssi_allow_unsupported_runtime_enabled
to configuration telemetry dataReason for change
We use these on the native side only, but could be useful to have with everything else in config telemetry
Implementation details
Read the env vars and add to config. Note that we only read the env vars (we don't use normal config) because only the env vars will have an impact
Test coverage
Meh
Other details
I'll do a PR to add these to the intake if consensus is yay
Prerequisite for single-step guard rails work stack
RuntimeInformation
to include "inferred" runtime version #5636