Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 0 additions & 6 deletions src/BenchmarkDotNet.Annotations/Jobs/RuntimeMoniker.cs
Original file line number Diff line number Diff line change
Expand Up @@ -81,8 +81,6 @@ public static class RuntimeMoniker
public const string Mono10_0 = "mono10.0";
/// <summary>.NET 11 using MonoVM (not CLR which is the default)</summary>
public const string Mono11_0 = "mono11.0";
/// <summary>.NET 12 using MonoVM (not CLR which is the default)</summary>
public const string Mono12_0 = "mono12.0";

/// <summary>.NET 8 CLR with composite ReadyToRun compilation</summary>
public const string R2R80 = "r2r8.0";
Expand All @@ -103,8 +101,6 @@ public static class RuntimeMoniker
public const string MonoWasm10_0 = "monowasm10.0";
/// <summary>Mono WebAssembly with net11.0</summary>
public const string MonoWasm11_0 = "monowasm11.0";
/// <summary>Mono WebAssembly with net12.0</summary>
public const string MonoWasm12_0 = "monowasm12.0";

/// <summary>Mono WebAssembly AOT with net8.0</summary>
public const string MonoWasmAot80 = "monowasmaot8.0";
Expand All @@ -114,8 +110,6 @@ public static class RuntimeMoniker
public const string MonoWasmAot10_0 = "monowasmaot10.0";
/// <summary>Mono WebAssembly AOT with net11.0</summary>
public const string MonoWasmAot11_0 = "monowasmaot11.0";
/// <summary>Mono WebAssembly AOT with net12.0</summary>
public const string MonoWasmAot12_0 = "monowasmaot12.0";

// Still experimental
//public const string CoreWasm11_0 = "corewasm11.0";
Expand Down
2 changes: 0 additions & 2 deletions src/BenchmarkDotNet/Environments/Runtimes/MonoCoreRuntime.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ public sealed class MonoCoreRuntime : Runtime
public static readonly MonoCoreRuntime Net90 = new(new(9, 0));
public static readonly MonoCoreRuntime Net10_0 = new(new(10, 0));
public static readonly MonoCoreRuntime Net11_0 = new(new(11, 0));
public static readonly MonoCoreRuntime Net12_0 = new(new(12, 0));

private MonoCoreRuntime(Version version) => Version = ToRuntimeVersion(version);

Expand All @@ -37,7 +36,6 @@ public static MonoCoreRuntime From(Version version)
9 => Net90,
10 => Net10_0,
11 => Net11_0,
12 => Net12_0,
_ => new(version),
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public sealed class MonoWasmAotRuntime : WasmRuntime
public static readonly MonoWasmAotRuntime Net90 = new(new(9, 0));
public static readonly MonoWasmAotRuntime Net10_0 = new(new(10, 0));
public static readonly MonoWasmAotRuntime Net11_0 = new(new(11, 0));
public static readonly MonoWasmAotRuntime Net12_0 = new(new(12, 0));

private MonoWasmAotRuntime(Version version) : base(version) { }

Expand All @@ -27,7 +26,6 @@ public static MonoWasmAotRuntime From(Version version)
9 => Net90,
10 => Net10_0,
11 => Net11_0,
12 => Net12_0,
_ => new(version),
};

Expand Down
2 changes: 0 additions & 2 deletions src/BenchmarkDotNet/Environments/Runtimes/MonoWasmRuntime.cs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public sealed class MonoWasmRuntime : WasmRuntime
public static readonly MonoWasmRuntime Net90 = new(new(9, 0));
public static readonly MonoWasmRuntime Net10_0 = new(new(10, 0));
public static readonly MonoWasmRuntime Net11_0 = new(new(11, 0));
public static readonly MonoWasmRuntime Net12_0 = new(new(12, 0));

private MonoWasmRuntime(Version version) : base(version) { }

Expand All @@ -27,7 +26,6 @@ public static MonoWasmRuntime From(Version version)
9 => Net90,
10 => Net10_0,
11 => Net11_0,
12 => Net12_0,
_ => new(version),
};

Expand Down
19 changes: 19 additions & 0 deletions src/BenchmarkDotNet/Toolchains/CsProj/CsProjNetToolchain.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,25 @@ public abstract class CsProjNetToolchain(string name, Runtime runtime, DotNetCli

public override async IAsyncEnumerable<ValidationError> ValidateAsync(BenchmarkCase benchmarkCase, IResolver resolver)
{
if (Runtime is MonoCoreRuntime or MonoWasmRuntime or MonoWasmAotRuntime)
{
Version? targetVersion = Runtime.Version;
if (settings.TargetFrameworkMoniker.IsNotBlank())
{
targetVersion = Environments.Runtime.TryParse(settings.TargetFrameworkMoniker, out var targetRuntime)
? targetRuntime.Version
: null;
}

if (targetVersion is { Major: >= 12 })
{
yield return new ValidationError(true,
"Mono runtime packs are not available for .NET 12 and later. Select CoreCLR or an earlier target framework.",
benchmarkCase);
yield break;
}
}

await foreach (var validationError in base.ValidateAsync(benchmarkCase, resolver).ConfigureAwait(false))
{
yield return validationError;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@ public sealed class CsProjMonoCoreToolchain : CsProjNetToolchain
public static readonly CsProjMonoCoreToolchain Mono90 = new(MonoCoreRuntime.Net90, MonoCoreSettings.Default);
public static readonly CsProjMonoCoreToolchain Mono10_0 = new(MonoCoreRuntime.Net10_0, MonoCoreSettings.Default);
public static readonly CsProjMonoCoreToolchain Mono11_0 = new(MonoCoreRuntime.Net11_0, MonoCoreSettings.Default);
public static readonly CsProjMonoCoreToolchain Mono12_0 = new(MonoCoreRuntime.Net12_0, MonoCoreSettings.Default);

private CsProjMonoCoreToolchain(MonoCoreRuntime runtime, MonoCoreSettings settings)
: this(runtime, settings, Resolve(settings, runtime)) { }
Expand Down Expand Up @@ -44,7 +43,6 @@ public static CsProjMonoCoreToolchain From(MonoCoreRuntime runtime, MonoCoreSett
9 => Mono90,
10 => Mono10_0,
11 => Mono11_0,
12 => Mono12_0,
_ => new CsProjMonoCoreToolchain(runtime, settings),
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ public sealed class CsProjMonoWasmAotToolchain : CsProjWasmToolchain
public static readonly CsProjMonoWasmAotToolchain Net90 = new(MonoWasmAotRuntime.Net90, WasmSettings.Default);
public static readonly CsProjMonoWasmAotToolchain Net10_0 = new(MonoWasmAotRuntime.Net10_0, WasmSettings.Default);
public static readonly CsProjMonoWasmAotToolchain Net11_0 = new(MonoWasmAotRuntime.Net11_0, WasmSettings.Default);
public static readonly CsProjMonoWasmAotToolchain Net12_0 = new(MonoWasmAotRuntime.Net12_0, WasmSettings.Default);

private CsProjMonoWasmAotToolchain(MonoWasmAotRuntime runtime, WasmSettings settings)
: base("MonoWasmAot", runtime, settings, aot: true, useCoreClrRuntime: false) { }
Expand All @@ -26,7 +25,6 @@ public static CsProjMonoWasmAotToolchain From(MonoWasmAotRuntime runtime, WasmSe
9 => Net90,
10 => Net10_0,
11 => Net11_0,
12 => Net12_0,
_ => new CsProjMonoWasmAotToolchain(runtime, settings),
};
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ public sealed class CsProjMonoWasmToolchain : CsProjWasmToolchain
public static readonly CsProjMonoWasmToolchain Net90 = new(MonoWasmRuntime.Net90, WasmSettings.Default);
public static readonly CsProjMonoWasmToolchain Net10_0 = new(MonoWasmRuntime.Net10_0, WasmSettings.Default);
public static readonly CsProjMonoWasmToolchain Net11_0 = new(MonoWasmRuntime.Net11_0, WasmSettings.Default);
public static readonly CsProjMonoWasmToolchain Net12_0 = new(MonoWasmRuntime.Net12_0, WasmSettings.Default);

private CsProjMonoWasmToolchain(MonoWasmRuntime runtime, WasmSettings settings)
: base("MonoWasm", runtime, settings, aot: false, useCoreClrRuntime: false) { }
Expand All @@ -26,7 +25,6 @@ public static CsProjMonoWasmToolchain From(MonoWasmRuntime runtime, WasmSettings
9 => Net90,
10 => Net10_0,
11 => Net11_0,
12 => Net12_0,
_ => new CsProjMonoWasmToolchain(runtime, settings),
};
}
Expand Down
6 changes: 3 additions & 3 deletions tests/BenchmarkDotNet.Tests/ConfigParserTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -400,10 +400,10 @@ public void WasmRuntimesResolveToTheirToolchains(string moniker, Type expectedTo
[Theory]
[InlineData(RuntimeMoniker.Net12_0, typeof(CsProjCoreToolchain))]
[InlineData(RuntimeMoniker.NativeAot12_0, typeof(CsProjNativeAotToolchain))]
[InlineData(RuntimeMoniker.Mono12_0, typeof(CsProjMonoCoreToolchain))]
[InlineData("mono12.0", typeof(CsProjMonoCoreToolchain))]
[InlineData(RuntimeMoniker.R2R12_0, typeof(CsProjR2RToolchain))]
[InlineData(RuntimeMoniker.MonoWasm12_0, typeof(CsProjMonoWasmToolchain))]
[InlineData(RuntimeMoniker.MonoWasmAot12_0, typeof(CsProjMonoWasmAotToolchain))]
[InlineData("monowasm12.0", typeof(CsProjMonoWasmToolchain))]
[InlineData("monowasmaot12.0", typeof(CsProjMonoWasmAotToolchain))]
[InlineData("corewasm12.0", typeof(CsProjCoreWasmToolchain))]
public void Net12RuntimesResolveToTheirToolchains(string moniker, Type expectedToolchain)
{
Expand Down
12 changes: 3 additions & 9 deletions tests/BenchmarkDotNet.Tests/RuntimeParseTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@ public class RuntimeParseTests
[InlineData("net10.0", typeof(CoreRuntime), 10, 0)]
[InlineData(RuntimeMoniker.Net12_0, typeof(CoreRuntime), 12, 0)]
[InlineData(RuntimeMoniker.NativeAot12_0, typeof(NativeAotRuntime), 12, 0)]
[InlineData(RuntimeMoniker.Mono12_0, typeof(MonoCoreRuntime), 12, 0)]
[InlineData(RuntimeMoniker.MonoWasm12_0, typeof(MonoWasmRuntime), 12, 0)]
[InlineData(RuntimeMoniker.MonoWasmAot12_0, typeof(MonoWasmAotRuntime), 12, 0)]
[InlineData("mono12.0", typeof(MonoCoreRuntime), 12, 0)]
[InlineData("monowasm12.0", typeof(MonoWasmRuntime), 12, 0)]
[InlineData("monowasmAot12.0", typeof(MonoWasmAotRuntime), 12, 0)]
[InlineData(RuntimeMoniker.R2R12_0, typeof(R2RRuntime), 12, 0)]
[InlineData("corewasm12.0", typeof(CoreWasmRuntime), 12, 0)]
[InlineData("netcoreapp3.1", typeof(CoreRuntime), 3, 1)]
Expand Down Expand Up @@ -265,17 +265,11 @@ public void Net12RuntimesAndDefaultToolchainsUseCachedInstances()
{
Assert.Same(CoreRuntime.Core12_0, Runtime.Parse(RuntimeMoniker.Net12_0));
Assert.Same(NativeAotRuntime.Net12_0, Runtime.Parse(RuntimeMoniker.NativeAot12_0));
Assert.Same(MonoCoreRuntime.Net12_0, Runtime.Parse(RuntimeMoniker.Mono12_0));
Assert.Same(MonoWasmRuntime.Net12_0, Runtime.Parse(RuntimeMoniker.MonoWasm12_0));
Assert.Same(MonoWasmAotRuntime.Net12_0, Runtime.Parse(RuntimeMoniker.MonoWasmAot12_0));
Assert.Same(R2RRuntime.Net12_0, Runtime.Parse(RuntimeMoniker.R2R12_0));
Assert.Same(CoreRuntime.Core12_0, CoreRuntime.Latest);

Assert.Same(CsProjCoreToolchain.NetCoreApp12_0, CsProjCoreToolchain.From(CoreRuntime.Core12_0, NetCoreAppSettings.Default));
Assert.Same(CsProjNativeAotToolchain.Net12_0, CsProjNativeAotToolchain.From(NativeAotRuntime.Net12_0, NativeAotSettings.Default));
Assert.Same(CsProjMonoCoreToolchain.Mono12_0, CsProjMonoCoreToolchain.From(MonoCoreRuntime.Net12_0, MonoCoreSettings.Default));
Assert.Same(CsProjMonoWasmToolchain.Net12_0, CsProjMonoWasmToolchain.From(MonoWasmRuntime.Net12_0, WasmSettings.Default));
Assert.Same(CsProjMonoWasmAotToolchain.Net12_0, CsProjMonoWasmAotToolchain.From(MonoWasmAotRuntime.Net12_0, WasmSettings.Default));
Assert.Same(CsProjR2RToolchain.R2R12_0, CsProjR2RToolchain.From(R2RRuntime.Net12_0, R2RSettings.Default));
}

Expand Down
Loading