mawosoft / Mawosoft.Extensions.BenchmarkDotNet

An extensions library for BenchmarkDotNet
https://mawosoft.github.io/Mawosoft.Extensions.BenchmarkDotNet/
MIT License
0 stars 0 forks source link

NuGet version alone is unreliable for tracking BDN API changes #32

Closed mawosoft closed 2 years ago

mawosoft commented 2 years ago

PRs on BDN still seem to publish to the AppVeyor feed. They also overwrite existing versions. See https://github.com/dotnet/BenchmarkDotNet/issues/1937. We have to include the SHA and/or publishing timestamp in the LastChecked.json when checking for updated versions.

https://github.com/mawosoft/Mawosoft.Extensions.BenchmarkDotNet/blob/691dd68c845f817c1841a215f98921751b32ac33/build/checkBreakingBDNChange.ps1#L98-L99 https://github.com/mawosoft/Mawosoft.Extensions.BenchmarkDotNet/blob/691dd68c845f817c1841a215f98921751b32ac33/build/ApiDiffHelper.psm1#L263-L271

mawosoft commented 2 years ago

The only way to mitigate this with the current toolset would be to store the refPackage as artifact which seems a bit overkill. Consider using an alternative to api-tools:

mawosoft commented 2 years ago

PublicApiGenerator is available as dotnet tool and as library package. The dotnet tool creates a csproj with package refs, therefore leaving all the package retrival to the project system. The output is much better readable, smaller (~300KB for benchmarkdotnet.dll), and suitable for a standard diff tool like git diff. The output for the latest package can be stored as artifact and then used by the next run, avoiding any problems due to overwrites on the AppVeyor feed.

In general, breaking changes are removals in the diff, but not sure yet, how reliable that assumption is. Also, api-tools regards the removal of a type, method, etc. as non-breaking if it previously was marked as obsolete. That's not doable with a simple diff.

Example workflow

dotnet tool install --global PublicApiGenerator.Tool

generate-public-api --target-frameworks net5.0 --package benchmarkdotnet --package-version 0.13.1 >refbasepkg.txt
generate-public-api --target-frameworks net5.0 --package benchmarkdotnet --package-version *-* --package-source https://ci.appveyor.com/nuget/benchmarkdotnet >diffpkg.txt

git diff --no-index refbasepkg.txt diffpkg.txt >diffbase.txt
git diff --no-index previouspkg.txt diffpkg.txt >diffprevious.txt
diffprevious BDN 0.13.1.1740 <-> 0.13.1.1741 ```diff diff --git a/1740.txt b/latest.txt index b373d7c..78ffe14 100644 --- a/1740.txt +++ b/latest.txt @@ -2356,7 +2356,8 @@ namespace BenchmarkDotNet.Environments } public class MonoAotLLVMRuntime : BenchmarkDotNet.Environments.Runtime, System.IEquatable { - public MonoAotLLVMRuntime(System.IO.FileInfo aotCompilerPath, string msBuildMoniker = "net6.0", string displayName = "MonoAOTLLVM") { } + public MonoAotLLVMRuntime(System.IO.FileInfo aotCompilerPath, BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode aotCompilerMode, string msBuildMoniker = "net6.0", string displayName = "MonoAOTLLVM") { } + public BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode AOTCompilerMode { get; } public System.IO.FileInfo AOTCompilerPath { get; } public override bool IsAOT { get; } public bool Equals(BenchmarkDotNet.Environments.MonoAotLLVMRuntime other) { } ```
diffbase BDN 0.13.1 <-> 0.13.1.1741 ```diff diff --git a/0.13.1.txt b/latest.txt index cc50467..78ffe14 100644 --- a/0.13.1.txt +++ b/latest.txt @@ -48,7 +48,7 @@ namespace BenchmarkDotNet.Analysers } public static class ConclusionHelper { - public static void Print(BenchmarkDotNet.Loggers.ILogger logger, System.Collections.Generic.List conclusions) { } + public static void Print(BenchmarkDotNet.Loggers.ILogger logger, System.Collections.Generic.IEnumerable conclusions) { } } public enum ConclusionKind { @@ -168,11 +168,6 @@ namespace BenchmarkDotNet.Attributes { public CoreJobAttribute() { } } - [System.Obsolete("Please use [SimpleJob(RuntimeMoniker.CoreRt$)] instead.", false)] - public class CoreRtJobAttribute : BenchmarkDotNet.Attributes.JobConfigBaseAttribute - { - public CoreRtJobAttribute() { } - } public class CsvExporterAttribute : BenchmarkDotNet.Attributes.ExporterConfigBaseAttribute { public CsvExporterAttribute(BenchmarkDotNet.Exporters.Csv.CsvSeparator separator = 2) { } @@ -197,11 +192,6 @@ namespace BenchmarkDotNet.Attributes { public DryCoreJobAttribute() { } } - [System.Obsolete("Please use [DryJob(RuntimeMoniker.CoreRt$)] instead.", false)] - public class DryCoreRtJobAttribute : BenchmarkDotNet.Attributes.JobConfigBaseAttribute - { - public DryCoreRtJobAttribute() { } - } [System.AttributeUsage(System.AttributeTargets.Assembly | System.AttributeTargets.Class, AllowMultiple=true)] public class DryJobAttribute : BenchmarkDotNet.Attributes.JobConfigBaseAttribute { @@ -647,6 +637,13 @@ namespace BenchmarkDotNet.Attributes } } } +namespace BenchmarkDotNet.Attributes.Filters +{ + public class AotFilterAttribute : BenchmarkDotNet.Attributes.FilterConfigBaseAttribute + { + public AotFilterAttribute(string reason = null) { } + } +} namespace BenchmarkDotNet.Characteristics { public abstract class Characteristic @@ -700,8 +697,10 @@ namespace BenchmarkDotNet.Characteristics public bool HasValue(BenchmarkDotNet.Characteristics.Characteristic characteristic) { } public object ResolveValue(BenchmarkDotNet.Characteristics.Characteristic characteristic, BenchmarkDotNet.Characteristics.IResolver resolver) { } public object ResolveValue(BenchmarkDotNet.Characteristics.Characteristic characteristic, object defaultValue) { } + public object ResolveValue(BenchmarkDotNet.Characteristics.Characteristic characteristic, BenchmarkDotNet.Characteristics.IResolver resolver, object defaultValue) { } public T ResolveValue(BenchmarkDotNet.Characteristics.Characteristic characteristic, BenchmarkDotNet.Characteristics.IResolver resolver) { } public T ResolveValue(BenchmarkDotNet.Characteristics.Characteristic characteristic, T defaultValue) { } + public T ResolveValue(BenchmarkDotNet.Characteristics.Characteristic characteristic, BenchmarkDotNet.Characteristics.IResolver resolver, T defaultValue) { } public T? ResolveValueAsNullable(BenchmarkDotNet.Characteristics.Characteristic characteristic) where T : struct { } public override string ToString() { } @@ -761,13 +760,17 @@ namespace BenchmarkDotNet.Characteristics public CompositeResolver(params BenchmarkDotNet.Characteristics.IResolver[] resolvers) { } public bool CanResolve(BenchmarkDotNet.Characteristics.Characteristic characteristic) { } public object Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic) { } + public object Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic, object defaultValue) { } public T Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic) { } + public T Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic, T defaultValue) { } } public interface IResolver { bool CanResolve(BenchmarkDotNet.Characteristics.Characteristic characteristic); object Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic); + object Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic, object defaultValue); T Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic); + T Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic, T defaultValue); } public class Resolver : BenchmarkDotNet.Characteristics.IResolver { @@ -776,7 +779,9 @@ namespace BenchmarkDotNet.Characteristics protected void Register(BenchmarkDotNet.Characteristics.Characteristic characteristic, System.Func resolver) { } protected void Register(BenchmarkDotNet.Characteristics.Characteristic characteristic, System.Func resolver) { } public object Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic) { } + public object Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic, object defaultValue) { } public T Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic) { } + public T Resolve(BenchmarkDotNet.Characteristics.CharacteristicObject obj, BenchmarkDotNet.Characteristics.Characteristic characteristic, T defaultValue) { } } } namespace BenchmarkDotNet.Code @@ -804,6 +809,18 @@ namespace BenchmarkDotNet.Code } namespace BenchmarkDotNet.Columns { + public class BaselineAllocationRatioColumn : BenchmarkDotNet.Columns.BaselineCustomColumn + { + public BaselineAllocationRatioColumn() { } + public override BenchmarkDotNet.Columns.ColumnCategory Category { get; } + public override string ColumnName { get; } + public override string Id { get; } + public override bool IsNumeric { get; } + public override string Legend { get; } + public override int PriorityInCategory { get; } + public override BenchmarkDotNet.Columns.UnitType UnitType { get; } + public override string GetValue(BenchmarkDotNet.Reports.Summary summary, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Mathematics.Statistics baseline, System.Collections.Generic.IReadOnlyDictionary baselineMetrics, BenchmarkDotNet.Mathematics.Statistics current, System.Collections.Generic.IReadOnlyDictionary currentMetrics, bool isBaseline) { } + } public class BaselineColumn : BenchmarkDotNet.Columns.IColumn { public static readonly BenchmarkDotNet.Columns.IColumn Default; @@ -825,7 +842,7 @@ namespace BenchmarkDotNet.Columns { protected BaselineCustomColumn() { } public bool AlwaysShow { get; } - public BenchmarkDotNet.Columns.ColumnCategory Category { get; } + public virtual BenchmarkDotNet.Columns.ColumnCategory Category { get; } public abstract string ColumnName { get; } public abstract string Id { get; } public abstract bool IsNumeric { get; } @@ -1186,6 +1203,7 @@ namespace BenchmarkDotNet.Columns Dimensionless = 0, Time = 1, Size = 2, + CodeSize = 3, } } namespace BenchmarkDotNet.Configs @@ -1266,6 +1284,7 @@ namespace BenchmarkDotNet.Configs DisableOptimizationsValidator = 8, DontOverwriteResults = 16, DisableLogFile = 32, + LogBuildOutput = 64, } public enum ConfigUnionRule { @@ -1282,6 +1301,8 @@ namespace BenchmarkDotNet.Configs { protected DebugConfig() { } public string ArtifactsPath { get; } + public System.TimeSpan BuildTimeout { get; } + public System.Collections.Generic.IReadOnlyList ConfigAnalysisConclusion { get; } public System.Globalization.CultureInfo CultureInfo { get; } public BenchmarkDotNet.Configs.ConfigOptions Options { get; } public BenchmarkDotNet.Order.IOrderer Orderer { get; } @@ -1307,6 +1328,8 @@ namespace BenchmarkDotNet.Configs { public static readonly BenchmarkDotNet.Configs.IConfig Instance; public string ArtifactsPath { get; } + public System.TimeSpan BuildTimeout { get; } + public System.Collections.Generic.IReadOnlyList ConfigAnalysisConclusion { get; } public System.Globalization.CultureInfo CultureInfo { get; } public BenchmarkDotNet.Configs.ConfigOptions Options { get; } public BenchmarkDotNet.Order.IOrderer Orderer { get; } @@ -1326,6 +1349,8 @@ namespace BenchmarkDotNet.Configs public interface IConfig { string ArtifactsPath { get; } + System.TimeSpan BuildTimeout { get; } + System.Collections.Generic.IReadOnlyList ConfigAnalysisConclusion { get; } System.Globalization.CultureInfo CultureInfo { get; } BenchmarkDotNet.Configs.ConfigOptions Options { get; } BenchmarkDotNet.Order.IOrderer Orderer { get; } @@ -1349,6 +1374,8 @@ namespace BenchmarkDotNet.Configs public sealed class ImmutableConfig : BenchmarkDotNet.Configs.IConfig { public string ArtifactsPath { get; } + public System.TimeSpan BuildTimeout { get; } + public System.Collections.Generic.IReadOnlyList ConfigAnalysisConclusion { get; } public System.Globalization.CultureInfo CultureInfo { get; } public BenchmarkDotNet.Configs.ConfigOptions Options { get; } public BenchmarkDotNet.Order.IOrderer Orderer { get; } @@ -1382,6 +1409,8 @@ namespace BenchmarkDotNet.Configs { public ManualConfig() { } public string ArtifactsPath { get; set; } + public System.TimeSpan BuildTimeout { get; set; } + public System.Collections.Generic.IReadOnlyList ConfigAnalysisConclusion { get; } public System.Globalization.CultureInfo CultureInfo { get; set; } public BenchmarkDotNet.Configs.ConfigOptions Options { get; set; } public BenchmarkDotNet.Order.IOrderer Orderer { get; set; } @@ -1435,6 +1464,7 @@ namespace BenchmarkDotNet.Configs public System.Collections.Generic.IEnumerable GetLogicalGroupRules() { } public System.Collections.Generic.IEnumerable GetValidators() { } public BenchmarkDotNet.Configs.ManualConfig WithArtifactsPath(string artifactsPath) { } + public BenchmarkDotNet.Configs.ManualConfig WithBuildTimeout(System.TimeSpan buildTimeout) { } public BenchmarkDotNet.Configs.ManualConfig WithOption(BenchmarkDotNet.Configs.ConfigOptions option, bool value) { } public BenchmarkDotNet.Configs.ManualConfig WithOptions(BenchmarkDotNet.Configs.ConfigOptions options) { } public BenchmarkDotNet.Configs.ManualConfig WithOrderer(BenchmarkDotNet.Order.IOrderer orderer) { } @@ -1473,11 +1503,6 @@ namespace BenchmarkDotNet.ConsoleArguments [CommandLine.Option("clrVersion", HelpText="Optional version of private CLR build used as the value of COMPLUS_Version env va" + "r.", Required=false)] public string ClrVersion { get; set; } - [CommandLine.Option("ilcPath", HelpText="Optional IlcPath which should be used to run with private CoreRT build.", Required=false)] - public System.IO.DirectoryInfo CoreRtPath { get; set; } - [CommandLine.Option("coreRtVersion", HelpText="Optional version of Microsoft.DotNet.ILCompiler which should be used to run with " + - "CoreRT. Example: \"1.0.0-alpha-26414-01\"", Required=false)] - public string CoreRtVersion { get; set; } [CommandLine.Option("coreRun", HelpText="Path(s) to CoreRun (optional).", Required=false)] public System.Collections.Generic.IReadOnlyList CoreRunPaths { get; set; } [CommandLine.Option("customRuntimePack", HelpText="Path to a custom runtime pack. Only used for wasm/MonoAotLLVM currently.", Required=false)] @@ -1501,6 +1526,11 @@ namespace BenchmarkDotNet.ConsoleArguments public System.Collections.Generic.IEnumerable Filters { get; set; } [CommandLine.Option("counters", HelpText="Hardware Counters", Required=false, Separator='+')] public System.Collections.Generic.IEnumerable HardwareCounters { get; set; } + [CommandLine.Option("ilCompilerVersion", HelpText="Optional version of Microsoft.DotNet.ILCompiler which should be used to run with " + + "NativeAOT. Example: \"7.0.0-preview.3.22123.2\"", Required=false)] + public string ILCompilerVersion { get; set; } + [CommandLine.Option("ilcPath", HelpText="Optional IlcPath which should be used to run with private NativeAOT build.", Required=false)] + public System.IO.DirectoryInfo IlcPath { get; set; } [CommandLine.Option("invocationCount", HelpText="Invocation count in a single iteration. By default calculated by the heuristic.", Required=false)] public int? InvocationCount { get; set; } [CommandLine.Option("iterationCount", HelpText="How many target iterations should be performed. By default calculated by the heur" + @@ -1518,6 +1548,8 @@ namespace BenchmarkDotNet.ConsoleArguments public int? LaunchCount { get; set; } [CommandLine.Option("list", Default=BenchmarkDotNet.ConsoleArguments.ListBenchmarks.ListBenchmarkCaseMode.Disabled, HelpText="Prints all of the available benchmark names. Flat/Tree", Required=false)] public BenchmarkDotNet.ConsoleArguments.ListBenchmarks.ListBenchmarkCaseMode ListBenchmarkCaseMode { get; set; } + [CommandLine.Option("logBuildOutput", HelpText="Log Build output.", Required=false)] + public bool LogBuildOutput { get; set; } [CommandLine.Option("maxIterationCount", HelpText="Maximum number of iterations to run. The default is 100.", Required=false)] public int? MaxIterationCount { get; set; } [CommandLine.Option("maxWidth", HelpText="Max paramter column width, the default is 20.", Required=false)] @@ -1552,11 +1584,9 @@ namespace BenchmarkDotNet.ConsoleArguments public bool RunOncePerIteration { get; set; } [CommandLine.Option("strategy", HelpText="The RunStrategy that should be used. Throughput/ColdStart/Monitoring.", Required=false)] public BenchmarkDotNet.Engines.RunStrategy? RunStrategy { get; set; } - [CommandLine.Option("runtimeSrcDir", HelpText="Path to a local copy of dotnet/runtime. . Used by the WASM toolchain when AOTComp" + - "ilerMode is \'wasm\'.", Required=false)] - public System.IO.DirectoryInfo RuntimeSrcDir { get; set; } - [CommandLine.Option('r', "runtimes", HelpText="Full target framework moniker for .NET Core and .NET. For Mono just \'Mono\', for C" + - "oreRT just \'CoreRT\'. First one will be marked as baseline!", Required=false)] + [CommandLine.Option('r', "runtimes", HelpText="Full target framework moniker for .NET Core and .NET. For Mono just \'Mono\'. For N" + + "ativeAOT please append target runtime version (example: \'nativeaot7.0\'). First o" + + "ne will be marked as baseline!", Required=false)] public System.Collections.Generic.IEnumerable Runtimes { get; set; } [CommandLine.Option("statisticalTest", HelpText="Threshold for Mann-Whitney U Test. Examples: 5%, 10ms, 100ns, 1s", Required=false)] public string StatisticalTestThreshold { get; set; } @@ -1576,14 +1606,13 @@ namespace BenchmarkDotNet.ConsoleArguments [CommandLine.Option("warmupCount", HelpText="How many warmup iterations should be performed. If you set it, the minWarmupCount" + " and maxWarmupCount are ignored. By default calculated by the heuristic.", Required=false)] public int? WarmupIterationCount { get; set; } + [CommandLine.Option("wasmDataDir", HelpText="Wasm data directory", Required=false)] + public System.IO.DirectoryInfo WasmDataDirectory { get; set; } [CommandLine.Option("wasmArgs", Default="--expose_wasm", HelpText="Arguments for the javascript engine used by Wasm toolchain.", Required=false)] public string WasmJavaScriptEngineArguments { get; set; } [CommandLine.Option("wasmEngine", HelpText="Full path to a java script engine used to run the benchmarks, used by Wasm toolch" + "ain.", Required=false)] public System.IO.FileInfo WasmJavascriptEngine { get; set; } - [CommandLine.Option("wasmMainJS", HelpText="Path to the main.js file used by Wasm toolchain. Mandatory when using \"--runtimes" + - " wasm\"", Required=false)] - public System.IO.FileInfo WasmMainJs { get; set; } [CommandLine.Text.Usage(ApplicationAlias="")] public static System.Collections.Generic.IEnumerable Examples { get; } } @@ -1623,6 +1652,7 @@ namespace BenchmarkDotNet.Diagnosers public BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters) { } public System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults results) { } + public bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters) { } } public class DiagnoserActionParameters @@ -1635,7 +1665,7 @@ namespace BenchmarkDotNet.Diagnosers } public class DiagnoserResults { - public DiagnoserResults(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, long totalOperations, BenchmarkDotNet.Engines.GcStats gcStats, BenchmarkDotNet.Engines.ThreadingStats threadingStats, BenchmarkDotNet.Toolchains.Results.BuildResult buildResult) { } + public DiagnoserResults(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Toolchains.Results.ExecuteResult executeResult, BenchmarkDotNet.Toolchains.Results.BuildResult buildResult) { } public BenchmarkDotNet.Running.BenchmarkCase BenchmarkCase { get; } public BenchmarkDotNet.Toolchains.Results.BuildResult BuildResult { get; } public BenchmarkDotNet.Engines.GcStats GcStats { get; } @@ -1654,6 +1684,7 @@ namespace BenchmarkDotNet.Diagnosers public BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters) { } public System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults diagnoserResults) { } + public bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters) { } } public class DisassemblyDiagnoserConfig @@ -1687,6 +1718,7 @@ namespace BenchmarkDotNet.Diagnosers public BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters) { } public System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults results) { } + public bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters) { } } public enum HardwareCounter @@ -1724,6 +1756,7 @@ namespace BenchmarkDotNet.Diagnosers BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase); void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters); System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults results); + bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase); System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters); } public class MemoryDiagnoser : BenchmarkDotNet.Diagnosers.IDiagnoser @@ -1738,6 +1771,7 @@ namespace BenchmarkDotNet.Diagnosers public BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters) { } public System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults diagnoserResults) { } + public bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters) { } } public class MemoryDiagnoserConfig @@ -1779,6 +1813,7 @@ namespace BenchmarkDotNet.Diagnosers public BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters) { } public System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults results) { } + public bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters) { } } public class UnresolvedDiagnoser : BenchmarkDotNet.Diagnosers.IDiagnoser @@ -1791,6 +1826,7 @@ namespace BenchmarkDotNet.Diagnosers public BenchmarkDotNet.Diagnosers.RunMode GetRunMode(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public void Handle(BenchmarkDotNet.Engines.HostSignal signal, BenchmarkDotNet.Diagnosers.DiagnoserActionParameters parameters) { } public System.Collections.Generic.IEnumerable ProcessResults(BenchmarkDotNet.Diagnosers.DiagnoserResults _) { } + public bool RequiresBlockingAcknowledgments(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public System.Collections.Generic.IEnumerable Validate(BenchmarkDotNet.Validators.ValidationParameters validationParameters) { } } } @@ -2260,16 +2296,10 @@ namespace BenchmarkDotNet.Environments public override int GetHashCode() { } public static BenchmarkDotNet.Environments.ClrRuntime CreateForLocalFullNetFrameworkBuild(string version) { } } - public class CoreRtRuntime : BenchmarkDotNet.Environments.Runtime + [System.Obsolete("Please use NativeAotRuntime instead.", true)] + public class CoreRtRuntime { - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt20; - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt21; - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt22; - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt30; - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt31; - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt50; - public static readonly BenchmarkDotNet.Environments.CoreRtRuntime CoreRt60; - public static BenchmarkDotNet.Environments.CoreRtRuntime GetCurrentVersion() { } + public CoreRtRuntime() { } } public class CoreRuntime : BenchmarkDotNet.Environments.Runtime { @@ -2280,6 +2310,7 @@ namespace BenchmarkDotNet.Environments public static readonly BenchmarkDotNet.Environments.CoreRuntime Core31; public static readonly BenchmarkDotNet.Environments.CoreRuntime Core50; public static readonly BenchmarkDotNet.Environments.CoreRuntime Core60; + public static readonly BenchmarkDotNet.Environments.CoreRuntime Core70; public bool IsPlatformSpecific { get; } public static BenchmarkDotNet.Environments.CoreRuntime CreateForNewVersion(string msBuildMoniker, string displayName) { } } @@ -2325,8 +2356,10 @@ namespace BenchmarkDotNet.Environments } public class MonoAotLLVMRuntime : BenchmarkDotNet.Environments.Runtime, System.IEquatable { - public MonoAotLLVMRuntime(System.IO.FileInfo aotCompilerPath, string msBuildMoniker = "net6.0", string displayName = "MonoAOTLLVM") { } + public MonoAotLLVMRuntime(System.IO.FileInfo aotCompilerPath, BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode aotCompilerMode, string msBuildMoniker = "net6.0", string displayName = "MonoAOTLLVM") { } + public BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode AOTCompilerMode { get; } public System.IO.FileInfo AOTCompilerPath { get; } + public override bool IsAOT { get; } public bool Equals(BenchmarkDotNet.Environments.MonoAotLLVMRuntime other) { } public override bool Equals(object obj) { } public override int GetHashCode() { } @@ -2338,11 +2371,20 @@ namespace BenchmarkDotNet.Environments public MonoRuntime(string name, string customPath, string aotArgs, string monoBclPath) { } public string AotArgs { get; } public string CustomPath { get; } + public override bool IsAOT { get; } public string MonoBclPath { get; } public bool Equals(BenchmarkDotNet.Environments.MonoRuntime other) { } public override bool Equals(object obj) { } public override int GetHashCode() { } } + public class NativeAotRuntime : BenchmarkDotNet.Environments.Runtime + { + public static readonly BenchmarkDotNet.Environments.NativeAotRuntime Net50; + public static readonly BenchmarkDotNet.Environments.NativeAotRuntime Net60; + public static readonly BenchmarkDotNet.Environments.NativeAotRuntime Net70; + public override bool IsAOT { get; } + public static BenchmarkDotNet.Environments.NativeAotRuntime GetCurrentVersion() { } + } public class OsBrandStringHelper { public OsBrandStringHelper() { } @@ -2373,15 +2415,8 @@ namespace BenchmarkDotNet.Environments } public abstract class Runtime : System.IEquatable { - [System.Obsolete("Please use ClrRuntime.Net$Version instead", true)] - public static readonly BenchmarkDotNet.Environments.Runtime Clr; - [System.Obsolete("Please use CoreRuntime.Core$Version instead", true)] - public static readonly BenchmarkDotNet.Environments.Runtime Core; - [System.Obsolete("Please use CoreRtRuntime.CoreRt$Version instead", true)] - public static readonly BenchmarkDotNet.Environments.Runtime CoreRT; - [System.Obsolete("Please use new MonoRuntime() instead", true)] - public static readonly BenchmarkDotNet.Environments.Runtime Mono; protected Runtime(BenchmarkDotNet.Jobs.RuntimeMoniker runtimeMoniker, string msBuildMoniker, string displayName) { } + public virtual bool IsAOT { get; } public string MsBuildMoniker { get; } public string Name { get; } public BenchmarkDotNet.Jobs.RuntimeMoniker RuntimeMoniker { get; } @@ -2392,12 +2427,11 @@ namespace BenchmarkDotNet.Environments } public class WasmRuntime : BenchmarkDotNet.Environments.Runtime, System.IEquatable { - public WasmRuntime(System.IO.FileInfo mainJs, string msBuildMoniker = "net5.0", string displayName = "Wasm", string javaScriptEngine = "v8", string javaScriptEngineArguments = "--expose_wasm", bool aot = false, System.IO.DirectoryInfo runtimeSrcDir = null) { } + public WasmRuntime(string msBuildMoniker = "net5.0", string displayName = "Wasm", string javaScriptEngine = "v8", string javaScriptEngineArguments = "--expose_wasm", bool aot = false, string wasmDataDir = null, BenchmarkDotNet.Jobs.RuntimeMoniker moniker = 21) { } public bool Aot { get; } public string JavaScriptEngine { get; } public string JavaScriptEngineArguments { get; } - public System.IO.FileInfo MainJs { get; } - public System.IO.DirectoryInfo RuntimeSrcDir { get; } + public string WasmDataDir { get; } public bool Equals(BenchmarkDotNet.Environments.WasmRuntime other) { } public override bool Equals(object obj) { } public override int GetHashCode() { } @@ -2723,7 +2757,7 @@ namespace BenchmarkDotNet.Jobs public static readonly BenchmarkDotNet.Jobs.EnvironmentMode LegacyJitX64; public static readonly BenchmarkDotNet.Jobs.EnvironmentMode LegacyJitX86; public static readonly BenchmarkDotNet.Characteristics.Characteristic PlatformCharacteristic; - public static readonly BenchmarkDotNet.Characteristics.Characteristic PowerPlanModeCharacteristic; + public static readonly BenchmarkDotNet.Characteristics.Characteristic PowerPlanModeCharacteristic; public static readonly BenchmarkDotNet.Characteristics.Characteristic RuntimeCharacteristic; public static readonly BenchmarkDotNet.Jobs.EnvironmentMode RyuJitX64; public static readonly BenchmarkDotNet.Jobs.EnvironmentMode RyuJitX86; @@ -2736,7 +2770,7 @@ namespace BenchmarkDotNet.Jobs public BenchmarkDotNet.Jobs.GcMode Gc { get; } public BenchmarkDotNet.Environments.Jit Jit { get; set; } public BenchmarkDotNet.Environments.Platform Platform { get; set; } - public System.Guid PowerPlanMode { get; set; } + public System.Guid? PowerPlanMode { get; set; } public BenchmarkDotNet.Environments.Runtime Runtime { get; set; } public void SetEnvironmentVariable(BenchmarkDotNet.Jobs.EnvironmentVariable variable) { } } @@ -2809,21 +2843,7 @@ namespace BenchmarkDotNet.Jobs public sealed class Job : BenchmarkDotNet.Jobs.JobMode { public static readonly BenchmarkDotNet.Characteristics.Characteristic AccuracyCharacteristic; - [System.Obsolete("Please use Job.Default.WithRuntime(ClrRuntime.Net$Version) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job Clr; - [System.Obsolete("Please use Job.Default.WithRuntime(CoreRuntime.Core$Version) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job Core; - [System.Obsolete("Please use Job.Default.WithRuntime(CoreRtRuntime.CoreRt$Version) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job CoreRT; public static readonly BenchmarkDotNet.Jobs.Job Dry; - [System.Obsolete("Please use Job.Dry.WithRuntime(ClrRuntime.Net$Version) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job DryClr; - [System.Obsolete("Please use Job.Dry.WithRuntime(CoreRuntime.Core$Version) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job DryCore; - [System.Obsolete("Please use Job.Dry.WithRuntime(CoreRtRuntime.CoreRt$Version) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job DryCoreRT; - [System.Obsolete("Please use Job.Dry.WithRuntime(MonoRuntime.Default) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job DryMono; public static readonly BenchmarkDotNet.Characteristics.Characteristic EnvironmentCharacteristic; public static readonly BenchmarkDotNet.Jobs.Job InProcess; public static readonly BenchmarkDotNet.Jobs.Job InProcessDontLogOutput; @@ -2833,8 +2853,6 @@ namespace BenchmarkDotNet.Jobs public static readonly BenchmarkDotNet.Jobs.Job LongRun; public static readonly BenchmarkDotNet.Jobs.Job MediumRun; public static readonly BenchmarkDotNet.Characteristics.Characteristic MetaCharacteristic; - [System.Obsolete("Please use Job.Default.WithRuntime(MonoRuntime.Default) instead", true)] - public static readonly BenchmarkDotNet.Jobs.Job Mono; public static readonly BenchmarkDotNet.Characteristics.Characteristic RunCharacteristic; public static readonly BenchmarkDotNet.Jobs.Job RyuJitX64; public static readonly BenchmarkDotNet.Jobs.Job RyuJitX86; @@ -3233,20 +3251,20 @@ namespace BenchmarkDotNet.Order public BenchmarkDotNet.Order.MethodOrderPolicy MethodOrderPolicy { get; } public bool SeparateLogicalGroups { get; } public BenchmarkDotNet.Order.SummaryOrderPolicy SummaryOrderPolicy { get; } - public virtual System.Collections.Generic.IEnumerable GetExecutionOrder(System.Collections.Immutable.ImmutableArray benchmarkCases) { } + public virtual System.Collections.Generic.IEnumerable GetExecutionOrder(System.Collections.Immutable.ImmutableArray benchmarkCases, System.Collections.Generic.IEnumerable order = null) { } public string GetHighlightGroupKey(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } public string GetLogicalGroupKey(System.Collections.Immutable.ImmutableArray allBenchmarksCases, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase) { } - public virtual System.Collections.Generic.IEnumerable> GetLogicalGroupOrder(System.Collections.Generic.IEnumerable> logicalGroups) { } + public virtual System.Collections.Generic.IEnumerable> GetLogicalGroupOrder(System.Collections.Generic.IEnumerable> logicalGroups, System.Collections.Generic.IEnumerable order = null) { } public virtual System.Collections.Generic.IEnumerable GetSummaryOrder(System.Collections.Immutable.ImmutableArray benchmarksCases, BenchmarkDotNet.Reports.Summary summary) { } protected virtual System.Collections.Generic.IEnumerable GetSummaryOrderForGroup(System.Collections.Immutable.ImmutableArray benchmarksCase, BenchmarkDotNet.Reports.Summary summary) { } } public interface IOrderer { bool SeparateLogicalGroups { get; } - System.Collections.Generic.IEnumerable GetExecutionOrder(System.Collections.Immutable.ImmutableArray benchmarksCase); + System.Collections.Generic.IEnumerable GetExecutionOrder(System.Collections.Immutable.ImmutableArray benchmarksCase, System.Collections.Generic.IEnumerable order = null); string GetHighlightGroupKey(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase); string GetLogicalGroupKey(System.Collections.Immutable.ImmutableArray allBenchmarksCases, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase); - System.Collections.Generic.IEnumerable> GetLogicalGroupOrder(System.Collections.Generic.IEnumerable> logicalGroups); + System.Collections.Generic.IEnumerable> GetLogicalGroupOrder(System.Collections.Generic.IEnumerable> logicalGroups, System.Collections.Generic.IEnumerable order = null); System.Collections.Generic.IEnumerable GetSummaryOrder(System.Collections.Immutable.ImmutableArray benchmarksCases, BenchmarkDotNet.Reports.Summary summary); } public enum MethodOrderPolicy @@ -3373,7 +3391,7 @@ namespace BenchmarkDotNet.Properties { public static class BenchmarkDotNetInfo { - public const string PrereleaseLabel = ""; + public const string PrereleaseLabel = "-nightly"; public static string FullTitle { get; } public static string FullVersion { get; } } @@ -3382,7 +3400,7 @@ namespace BenchmarkDotNet.Reports { public sealed class BenchmarkReport { - public BenchmarkReport(bool success, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Toolchains.Results.BuildResult buildResult, System.Collections.Generic.IReadOnlyList executeResults, System.Collections.Generic.IReadOnlyList allMeasurements, BenchmarkDotNet.Engines.GcStats gcStats, System.Collections.Generic.IReadOnlyList metrics) { } + public BenchmarkReport(bool success, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Toolchains.Results.BuildResult buildResult, System.Collections.Generic.IReadOnlyList executeResults, System.Collections.Generic.IReadOnlyList metrics) { } public System.Collections.Generic.IReadOnlyList AllMeasurements { get; } public BenchmarkDotNet.Running.BenchmarkCase BenchmarkCase { get; } public BenchmarkDotNet.Toolchains.Results.BuildResult BuildResult { get; } @@ -3423,7 +3441,7 @@ namespace BenchmarkDotNet.Reports public int CompareTo(BenchmarkDotNet.Reports.Measurement other) { } public Perfolizer.Horology.TimeInterval GetAverageTime() { } public override string ToString() { } - public static BenchmarkDotNet.Reports.Measurement Parse(BenchmarkDotNet.Loggers.ILogger logger, string line, int processIndex) { } + public static BenchmarkDotNet.Reports.Measurement Parse(string line, int processIndex) { } } public static class MeasurementExtensions { @@ -3600,6 +3618,7 @@ namespace BenchmarkDotNet.Running public static BenchmarkDotNet.Reports.Summary[] Run(System.Reflection.Assembly assembly, BenchmarkDotNet.Configs.IConfig config = null, string[] args = null) { } public static BenchmarkDotNet.Reports.Summary Run(System.Type type, BenchmarkDotNet.Configs.IConfig config = null, string[] args = null) { } public static BenchmarkDotNet.Reports.Summary Run(System.Type type, System.Reflection.MethodInfo[] methods, BenchmarkDotNet.Configs.IConfig config = null) { } + public static BenchmarkDotNet.Reports.Summary[] Run(System.Type[] types, BenchmarkDotNet.Configs.IConfig config = null, string[] args = null) { } public static BenchmarkDotNet.Reports.Summary Run(BenchmarkDotNet.Configs.IConfig config = null, string[] args = null) { } public static BenchmarkDotNet.Reports.Summary RunSource(string source, BenchmarkDotNet.Configs.IConfig config = null) { } public static BenchmarkDotNet.Reports.Summary RunUrl(string url, BenchmarkDotNet.Configs.IConfig config = null) { } @@ -3626,16 +3645,19 @@ namespace BenchmarkDotNet.Running public string AssemblyLocation { get; } public BenchmarkDotNet.Running.BenchmarkBuildInfo[] Benchmarks { get; } public string BuildConfiguration { get; } - public bool IsCoreRT { get; } public bool IsCustomBuildConfiguration { get; } + public bool IsNativeAot { get; } public bool IsNetFramework { get; } public bool IsWasm { get; } public BenchmarkDotNet.Environments.Jit Jit { get; } + public bool LogBuildOutput { get; } + public bool NoAcknowledgments { get; } public BenchmarkDotNet.Environments.Platform Platform { get; } public string ProgramName { get; } public BenchmarkDotNet.Running.BenchmarkCase RepresentativeBenchmarkCase { get; } public BenchmarkDotNet.Characteristics.IResolver Resolver { get; } public BenchmarkDotNet.Environments.Runtime Runtime { get; } + public System.TimeSpan Timeout { get; } public override string ToString() { } } public class Descriptor @@ -3663,6 +3685,14 @@ namespace BenchmarkDotNet.Running { public InvalidBenchmarkDeclarationException(string message) { } } + public static class TypeFilter + { + public static BenchmarkDotNet.Running.BenchmarkRunInfo[] Filter(BenchmarkDotNet.Configs.IConfig effectiveConfig, System.Collections.Generic.IEnumerable types) { } + [return: System.Runtime.CompilerServices.TupleElementNames(new string[] { + "allTypesValid", + "runnable"})] + public static System.ValueTuple> GetTypesWithRunnableBenchmarks(System.Collections.Generic.IEnumerable types, System.Collections.Generic.IEnumerable assemblies, BenchmarkDotNet.Loggers.ILogger logger) { } + } } namespace BenchmarkDotNet.Toolchains { @@ -3740,40 +3770,15 @@ namespace BenchmarkDotNet.Toolchains } namespace BenchmarkDotNet.Toolchains.CoreRt { - public class CoreRtToolchain : BenchmarkDotNet.Toolchains.Toolchain - { - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core20; - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core21; - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core22; - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core30; - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core31; - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core50; - public static readonly BenchmarkDotNet.Toolchains.IToolchain Core60; - public string IlcPath { get; } - public static BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder CreateBuilder() { } - } - public class CoreRtToolchainBuilder : BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder + [System.Obsolete("Please use NativeAotToolchain instead.", true)] + public class CoreRtToolchain { - public CoreRtToolchainBuilder() { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder IlcGenerateCompleteTypeMetadata(bool value) { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder IlcGenerateStackTraceData(bool value) { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder PackagesRestorePath(string packagesRestorePath) { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder RootAllApplicationAssemblies(bool value) { } - public override BenchmarkDotNet.Toolchains.IToolchain ToToolchain() { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder UseCoreRtLocal(string newIlcPath) { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder UseCoreRtNuGet(string microsoftDotNetILCompilerVersion = "6.0.0-*", string nuGetFeedUrl = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-experimental/nuget/v3/index.json") { } - public BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder UseCppCodeGenerator() { } - public static BenchmarkDotNet.Toolchains.CoreRt.CoreRtToolchainBuilder Create() { } + public CoreRtToolchain() { } } - public class Generator : BenchmarkDotNet.Toolchains.CsProj.CsProjGenerator + [System.Obsolete("Please use NativeAotToolchainBuilder instead.", true)] + public class CoreRtToolchainBuilder { - protected override void GenerateBuildScript(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths) { } - protected override void GenerateNuGetConfig(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths) { } - protected override void GenerateProject(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, BenchmarkDotNet.Loggers.ILogger logger) { } - protected override string[] GetArtifactsToCleanup(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths) { } - protected override string GetBinariesDirectoryPath(string buildArtifactsDirectoryPath, string configuration) { } - protected override string GetBuildArtifactsDirectoryPath(BenchmarkDotNet.Running.BuildPartition buildPartition, string programName) { } - protected override string GetExecutableExtension() { } + public CoreRtToolchainBuilder() { } } } namespace BenchmarkDotNet.Toolchains.CoreRun @@ -3788,12 +3793,12 @@ namespace BenchmarkDotNet.Toolchains.CoreRun } public class CoreRunPublisher : BenchmarkDotNet.Toolchains.IBuilder { - public CoreRunPublisher(System.IO.FileInfo coreRun, System.IO.FileInfo customDotNetCliPath = null, System.TimeSpan? timeout = default) { } + public CoreRunPublisher(System.IO.FileInfo coreRun, System.IO.FileInfo customDotNetCliPath = null) { } public BenchmarkDotNet.Toolchains.Results.BuildResult Build(BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Loggers.ILogger logger) { } } public class CoreRunToolchain : BenchmarkDotNet.Toolchains.IToolchain { - public CoreRunToolchain(System.IO.FileInfo coreRun, bool createCopy = true, string targetFrameworkMoniker = "netcoreapp2.1", System.IO.FileInfo customDotNetCliPath = null, System.IO.DirectoryInfo restorePath = null, string displayName = "CoreRun", System.TimeSpan? timeout = default) { } + public CoreRunToolchain(System.IO.FileInfo coreRun, bool createCopy = true, string targetFrameworkMoniker = "netcoreapp2.1", System.IO.FileInfo customDotNetCliPath = null, System.IO.DirectoryInfo restorePath = null, string displayName = "CoreRun") { } public BenchmarkDotNet.Toolchains.IBuilder Builder { get; } public System.IO.FileInfo CopyCoreRun { get; } public System.IO.FileInfo CustomDotNetCliPath { get; } @@ -3818,7 +3823,7 @@ namespace BenchmarkDotNet.Toolchains.CsProj public static readonly BenchmarkDotNet.Toolchains.IToolchain Net472; public static readonly BenchmarkDotNet.Toolchains.IToolchain Net48; public override bool IsSupported(BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Loggers.ILogger logger, BenchmarkDotNet.Characteristics.IResolver resolver) { } - public static BenchmarkDotNet.Toolchains.IToolchain From(string targetFrameworkMoniker, string packagesPath = null, System.TimeSpan? timeout = default) { } + public static BenchmarkDotNet.Toolchains.IToolchain From(string targetFrameworkMoniker, string packagesPath = null) { } } public class CsProjCoreToolchain : BenchmarkDotNet.Toolchains.Toolchain, System.IEquatable { @@ -3829,6 +3834,7 @@ namespace BenchmarkDotNet.Toolchains.CsProj public static readonly BenchmarkDotNet.Toolchains.IToolchain NetCoreApp31; public static readonly BenchmarkDotNet.Toolchains.IToolchain NetCoreApp50; public static readonly BenchmarkDotNet.Toolchains.IToolchain NetCoreApp60; + public static readonly BenchmarkDotNet.Toolchains.IToolchain NetCoreApp70; public bool Equals(BenchmarkDotNet.Toolchains.CsProj.CsProjCoreToolchain other) { } public override bool Equals(object obj) { } public override int GetHashCode() { } @@ -3859,7 +3865,6 @@ namespace BenchmarkDotNet.Toolchains.DotNetCli protected string displayName; protected string runtimeFrameworkVersion; protected string runtimeIdentifier; - protected System.TimeSpan? timeout; protected bool useNuGetClearTag; protected bool useTempFolderForRestore; protected CustomDotNetCliToolchainBuilder() { } @@ -3870,24 +3875,24 @@ namespace BenchmarkDotNet.Toolchains.DotNetCli public BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder RuntimeFrameworkVersion(string newRuntimeFrameworkVersion) { } public BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder RuntimeIdentifier(string newRuntimeIdentifier) { } public BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder TargetFrameworkMoniker(string targetFrameworkMoniker) { } - public BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder Timeout(System.TimeSpan timeout) { } public abstract BenchmarkDotNet.Toolchains.IToolchain ToToolchain(); public BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder UseNuGetClearTag(bool value) { } public BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder UseTempFolderForRestore(bool value) { } } public class DotNetCliBuilder : BenchmarkDotNet.Toolchains.IBuilder { - public DotNetCliBuilder(string targetFrameworkMoniker, string customDotNetCliPath = null, System.TimeSpan? timeout = default) { } + public DotNetCliBuilder(string targetFrameworkMoniker, string customDotNetCliPath = null, bool logOutput = false) { } public BenchmarkDotNet.Toolchains.Results.BuildResult Build(BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Loggers.ILogger logger) { } } public class DotNetCliCommand { - public DotNetCliCommand(string cliPath, string arguments, BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Loggers.ILogger logger, BenchmarkDotNet.Running.BuildPartition buildPartition, System.Collections.Generic.IReadOnlyList environmentVariables, System.TimeSpan timeout) { } + public DotNetCliCommand(string cliPath, string arguments, BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Loggers.ILogger logger, BenchmarkDotNet.Running.BuildPartition buildPartition, System.Collections.Generic.IReadOnlyList environmentVariables, System.TimeSpan timeout, bool logOutput = false) { } public string Arguments { get; } public BenchmarkDotNet.Running.BuildPartition BuildPartition { get; } public string CliPath { get; } public System.Collections.Generic.IReadOnlyList EnvironmentVariables { get; } public BenchmarkDotNet.Toolchains.Results.GenerateResult GenerateResult { get; } + public bool LogOutput { get; } public BenchmarkDotNet.Loggers.ILogger Logger { get; } public System.TimeSpan Timeout { get; } public BenchmarkDotNet.Toolchains.DotNetCli.DotNetCliCommandResult AddPackages() { } @@ -3938,12 +3943,11 @@ namespace BenchmarkDotNet.Toolchains.DotNetCli } public class DotNetCliPublisher : BenchmarkDotNet.Toolchains.IBuilder { - public DotNetCliPublisher(string customDotNetCliPath = null, string extraArguments = null, System.Collections.Generic.IReadOnlyList environmentVariables = null, System.TimeSpan? timeout = default) { } + public DotNetCliPublisher(string customDotNetCliPath = null, string extraArguments = null, System.Collections.Generic.IReadOnlyList environmentVariables = null) { } public BenchmarkDotNet.Toolchains.Results.BuildResult Build(BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Loggers.ILogger logger) { } } public class NetCoreAppSettings { - public static readonly System.TimeSpan DefaultBuildTimeout; public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp20; public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp21; public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp22; @@ -3951,7 +3955,8 @@ namespace BenchmarkDotNet.Toolchains.DotNetCli public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp31; public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp50; public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp60; - public NetCoreAppSettings(string targetFrameworkMoniker, string runtimeFrameworkVersion, string name, string customDotNetCliPath = null, string packagesPath = null, System.TimeSpan? timeout = default, string customRuntimePack = null, string aotCompilerPath = null, BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode aotCompilerMode = 0) { } + public static readonly BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings NetCoreApp70; + public NetCoreAppSettings(string targetFrameworkMoniker, string runtimeFrameworkVersion, string name, string customDotNetCliPath = null, string packagesPath = null, string customRuntimePack = null, string aotCompilerPath = null, BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode aotCompilerMode = 0) { } public BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode AOTCompilerMode { get; } public string AOTCompilerPath { get; } public string CustomDotNetCliPath { get; } @@ -3960,10 +3965,8 @@ namespace BenchmarkDotNet.Toolchains.DotNetCli public string PackagesPath { get; } public string RuntimeFrameworkVersion { get; } public string TargetFrameworkMoniker { get; } - public System.TimeSpan Timeout { get; } public BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings WithCustomDotNetCliPath(string customDotNetCliPath, string displayName = null) { } public BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings WithCustomPackagesRestorePath(string packagesPath, string displayName = null) { } - public BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings WithTimeout(System.TimeSpan? timeOut) { } } } namespace BenchmarkDotNet.Toolchains.InProcess @@ -4234,12 +4237,6 @@ namespace BenchmarkDotNet.Toolchains.MonoAotLLVM llvm = 1, wasm = 2, } - public class MonoAotLLVMBuilder : BenchmarkDotNet.Toolchains.IBuilder - { - public MonoAotLLVMBuilder(string targetFrameworkMoniker, string customDotNetCliPath = null, System.TimeSpan? timeout = default) { } - public BenchmarkDotNet.Toolchains.Results.BuildResult Build(BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Loggers.ILogger logger) { } - public void RenameSharedLibaries(BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Loggers.ILogger logger) { } - } public class MonoAotLLVMGenerator : BenchmarkDotNet.Toolchains.CsProj.CsProjGenerator { public MonoAotLLVMGenerator(string targetFrameworkMoniker, string cliPath, string packagesPath, string customRuntimePack, string aotCompilerPath, BenchmarkDotNet.Toolchains.MonoAotLLVM.MonoAotCompilerMode aotCompilerMode) { } @@ -4255,17 +4252,11 @@ namespace BenchmarkDotNet.Toolchains.MonoAotLLVM } namespace BenchmarkDotNet.Toolchains.MonoWasm { - public class WasmBuilder : BenchmarkDotNet.Toolchains.IBuilder - { - public WasmBuilder(string targetFrameworkMoniker, string customDotNetCliPath = null, System.TimeSpan? timeout = default) { } - public BenchmarkDotNet.Toolchains.Results.BuildResult Build(BenchmarkDotNet.Toolchains.Results.GenerateResult generateResult, BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Loggers.ILogger logger) { } - } public class WasmGenerator : BenchmarkDotNet.Toolchains.CsProj.CsProjGenerator { public WasmGenerator(string targetFrameworkMoniker, string cliPath, string packagesPath, string customRuntimePack, bool aot) { } protected override void GenerateProject(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, BenchmarkDotNet.Loggers.ILogger logger) { } - protected void GenerateProjectAot(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, BenchmarkDotNet.Loggers.ILogger logger) { } - protected void GenerateProjectInterpreter(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, BenchmarkDotNet.Loggers.ILogger logger) { } + protected void GenerateProjectFile(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, bool aot, BenchmarkDotNet.Loggers.ILogger logger) { } protected override string GetBinariesDirectoryPath(string buildArtifactsDirectoryPath, string configuration) { } protected override string GetExecutablePath(string binariesDirectoryPath, string programName) { } } @@ -4275,15 +4266,51 @@ namespace BenchmarkDotNet.Toolchains.MonoWasm public static BenchmarkDotNet.Toolchains.IToolchain From(BenchmarkDotNet.Toolchains.DotNetCli.NetCoreAppSettings netCoreAppSettings) { } } } +namespace BenchmarkDotNet.Toolchains.NativeAot +{ + public class Generator : BenchmarkDotNet.Toolchains.CsProj.CsProjGenerator + { + protected override void GenerateBuildScript(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths) { } + protected override void GenerateNuGetConfig(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths) { } + protected override void GenerateProject(BenchmarkDotNet.Running.BuildPartition buildPartition, BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, BenchmarkDotNet.Loggers.ILogger logger) { } + protected override string[] GetArtifactsToCleanup(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths) { } + protected override string GetBinariesDirectoryPath(string buildArtifactsDirectoryPath, string configuration) { } + protected override string GetBuildArtifactsDirectoryPath(BenchmarkDotNet.Running.BuildPartition buildPartition, string programName) { } + protected override string GetExecutableExtension() { } + } + public class NativeAotToolchain : BenchmarkDotNet.Toolchains.Toolchain + { + public static readonly BenchmarkDotNet.Toolchains.IToolchain Net50; + public static readonly BenchmarkDotNet.Toolchains.IToolchain Net60; + public static readonly BenchmarkDotNet.Toolchains.IToolchain Net70; + public string IlcPath { get; } + public static BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder CreateBuilder() { } + public static string GetExtraArguments(bool useCppCodeGenerator, string runtimeIdentifier) { } + } + public class NativeAotToolchainBuilder : BenchmarkDotNet.Toolchains.DotNetCli.CustomDotNetCliToolchainBuilder + { + public NativeAotToolchainBuilder() { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder IlcGenerateCompleteTypeMetadata(bool value) { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder IlcGenerateStackTraceData(bool value) { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder PackagesRestorePath(string packagesRestorePath) { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder RootAllApplicationAssemblies(bool value) { } + public override BenchmarkDotNet.Toolchains.IToolchain ToToolchain() { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder UseCppCodeGenerator() { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder UseLocalBuild(string newIlcPath) { } + public BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder UseNuGet(string microsoftDotNetILCompilerVersion = "7.0.0-*", string nuGetFeedUrl = "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json") { } + public static BenchmarkDotNet.Toolchains.NativeAot.NativeAotToolchainBuilder Create() { } + } +} namespace BenchmarkDotNet.Toolchains.Parameters { public class ExecuteParameters { - public ExecuteParameters(BenchmarkDotNet.Toolchains.Results.BuildResult buildResult, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Running.BenchmarkId benchmarkId, BenchmarkDotNet.Loggers.ILogger logger, BenchmarkDotNet.Characteristics.IResolver resolver, BenchmarkDotNet.Diagnosers.IDiagnoser diagnoser = null) { } + public ExecuteParameters(BenchmarkDotNet.Toolchains.Results.BuildResult buildResult, BenchmarkDotNet.Running.BenchmarkCase benchmarkCase, BenchmarkDotNet.Running.BenchmarkId benchmarkId, BenchmarkDotNet.Loggers.ILogger logger, BenchmarkDotNet.Characteristics.IResolver resolver, int launchIndex, BenchmarkDotNet.Diagnosers.IDiagnoser diagnoser = null) { } public BenchmarkDotNet.Running.BenchmarkCase BenchmarkCase { get; } public BenchmarkDotNet.Running.BenchmarkId BenchmarkId { get; } public BenchmarkDotNet.Toolchains.Results.BuildResult BuildResult { get; } public BenchmarkDotNet.Diagnosers.IDiagnoser Diagnoser { get; } + public int LaunchIndex { get; } public BenchmarkDotNet.Loggers.ILogger Logger { get; } public BenchmarkDotNet.Characteristics.IResolver Resolver { get; } } @@ -4301,24 +4328,28 @@ namespace BenchmarkDotNet.Toolchains.Results } public class ExecuteResult { - public ExecuteResult(bool foundExecutable, int? exitCode, int? processId, System.Collections.Generic.IReadOnlyList data, System.Collections.Generic.IReadOnlyList linesWithExtraOutput) { } - public System.Collections.Generic.IReadOnlyList Data { get; } + public ExecuteResult(bool foundExecutable, int? exitCode, int? processId, System.Collections.Generic.IReadOnlyList data, System.Collections.Generic.IReadOnlyList linesWithExtraOutput, int launchIndex) { } + public System.Collections.Generic.IReadOnlyList Errors { get; } public int? ExitCode { get; } public System.Collections.Generic.IReadOnlyList ExtraOutput { get; } public bool FoundExecutable { get; } + public bool IsSuccess { get; } + public System.Collections.Generic.IReadOnlyList Measurements { get; } public int? ProcessId { get; } + public void LogIssues(BenchmarkDotNet.Loggers.ILogger logger, BenchmarkDotNet.Toolchains.Results.BuildResult buildResult) { } public override string ToString() { } } public class GenerateResult { - public GenerateResult(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, bool isGenerateSuccess, System.Exception generateException, System.Collections.Generic.IReadOnlyCollection artifactsToCleanup) { } + public GenerateResult(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, bool isGenerateSuccess, System.Exception generateException, System.Collections.Generic.IReadOnlyCollection artifactsToCleanup, bool noAcknowledgments) { } public BenchmarkDotNet.Toolchains.ArtifactsPaths ArtifactsPaths { get; } public System.Collections.Generic.IReadOnlyCollection ArtifactsToCleanup { get; } public System.Exception GenerateException { get; } public bool IsGenerateSuccess { get; } + public bool NoAcknowledgments { get; } public override string ToString() { } public static BenchmarkDotNet.Toolchains.Results.GenerateResult Failure(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, System.Collections.Generic.IReadOnlyCollection artifactsToCleanup, System.Exception exception = null) { } - public static BenchmarkDotNet.Toolchains.Results.GenerateResult Success(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, System.Collections.Generic.IReadOnlyCollection artifactsToCleanup) { } + public static BenchmarkDotNet.Toolchains.Results.GenerateResult Success(BenchmarkDotNet.Toolchains.ArtifactsPaths artifactsPaths, System.Collections.Generic.IReadOnlyCollection artifactsToCleanup, bool noAcknowledgments) { } } } namespace BenchmarkDotNet.Toolchains.Roslyn ```