From 35ee3137af48f98a28f6fb13387e71ff2a39c916 Mon Sep 17 00:00:00 2001 From: Steve Date: Wed, 12 Jun 2024 04:09:23 +0900 Subject: [PATCH] Refactor and adding new dotnet compilers (#6522) Depends on https://github.com/compiler-explorer/infra/pull/1312. I'm considering to unify all old compiler versions per dotnet minor version as patch upgrade in dotnet doesn't change the codegen. New patch versions come with quality updates like bug and security fixes, we only need the latest version per minor dotnet version instead. Here a version is consisting of `major.minor.patch`, such as `7.0.3` and `8.0.5`. i.e. - `dotnet6030csharp:dotnet6018csharp:dotnet6014csharp:dotnet6011csharp` -> `dotnet60csharp`, and rename it to `.NET 6.0`, as `6.0.30`, `6.0.18`, `6.0.14` and `6.0.11` are all `6.0` - `dotnet6030fsharp:dotnet6018fsharp:dotnet6014fsharp:dotnet6011fsharp` -> `dotnet60fsharp`, and rename it to `.NET 6.0`, as `6.0.30`, `6.0.18`, `6.0.14` and `6.0.11` are all `6.0` - `dotnet6030vb:dotnet6018vb:dotnet6014vb:dotnet6011vb` -> `dotnet60vb`, and rename it to `.NET 6.0`, as `6.0.30`, `6.0.18`, `6.0.14` and `6.0.11` are all `6.0` - `dotnet7019csharp:dotnet707csharp:dotnet703csharp:dotnet701csharp` -> `dotnet70csharp`, and rename it to `.NET 7.0`, as `7.0.19`, `7.0.7`, `7.0.3` and `7.0.1` are all `7.0` - `dotnet7019fsharp:dotnet707fsharp:dotnet703fsharp:dotnet701fsharp` -> `dotnet70fsharp`, and rename it to `.NET 7.0`, as `7.0.19`, `7.0.7`, `7.0.3` and `7.0.1` are all `7.0` - `dotnet7019vb:dotnet707vb:dotnet703vb:dotnet701vb` -> `dotnet70vb`, and rename it to `.NET 7.0`, as `7.0.19`, `7.0.7`, `7.0.3` and `7.0.1` are all `7.0` I'm keeping the minor version (ie. `.0`) in the name as there may be updates like `.NET Core 3.1` to `.NET Core 3.0` which does change the codegen. The compiler structure now is: ``` group: dotnetcoreclr .NET (main) .NET 8 .NET 7 group: dotnetcrossgen2 .NET (main) .NET 8 .NET 7 .NET 6 group: dotnetlegacy existing compilers for backward compact ``` --------- Co-authored-by: Patrick Quist --- etc/config/csharp.amazon.properties | 70 ++++++++++++++++++++++--- etc/config/csharp.defaults.properties | 72 +++++++++++++++++++++++--- etc/config/fsharp.amazon.properties | 70 ++++++++++++++++++++++--- etc/config/fsharp.defaults.properties | 72 +++++++++++++++++++++++--- etc/config/vb.amazon.properties | 72 +++++++++++++++++++++++--- etc/config/vb.defaults.properties | 74 ++++++++++++++++++++++++--- lib/compilers/_all.ts | 6 +-- lib/compilers/dotnet.ts | 28 ++++++---- 8 files changed, 409 insertions(+), 55 deletions(-) diff --git a/etc/config/csharp.amazon.properties b/etc/config/csharp.amazon.properties index 89db0ccd9af..f83edd75fad 100644 --- a/etc/config/csharp.amazon.properties +++ b/etc/config/csharp.amazon.properties @@ -1,10 +1,70 @@ -compilers=&csharp +compilers=&dotnetcoreclr:&dotnetcrossgen2:&dotnetlegacy supportsBinary=true needsMulti=false -compilerType=csharp -defaultCompiler=dotnet707csharp +defaultCompiler=dotnet80csharpcoreclr -group.csharp.compilers=dotnettrunkcsharp:dotnet707csharp:dotnet703csharp:dotnet701csharp:dotnet6018csharp:dotnet6014csharp:dotnet6011csharp +group.dotnetcoreclr.compilers=dotnettrunkcsharpcoreclr:dotnet80csharpcoreclr:dotnet70csharpcoreclr +group.dotnetcoreclr.compilerCategories=coreclr +group.dotnetcoreclr.compilerType=dotnetcoreclr +group.dotnetcoreclr.groupName=.NET CoreCLR +group.dotnetcrossgen2.compilers=dotnettrunkcsharpcrossgen2:dotnet80csharpcrossgen2:dotnet70csharpcrossgen2:dotnet60csharpcrossgen2 +group.dotnetcrossgen2.compilerCategories=crossgen2 +group.dotnetcrossgen2.compilerType=dotnetcrossgen2 +group.dotnetcrossgen2.groupName=.NET Crossgen2 +group.dotnetlegacy.compilers=dotnettrunkcsharp:dotnet707csharp:dotnet703csharp:dotnet701csharp:dotnet6018csharp:dotnet6014csharp:dotnet6011csharp +group.dotnetlegacy.compilerCategories=legacy +group.dotnetlegacy.compilerType=dotnetlegacy +group.dotnetlegacy.groupName=Legacy + +# CoreCLR compilers + +compiler.dotnet70csharpcoreclr.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70csharpcoreclr.name=.NET 7.0 +compiler.dotnet70csharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70csharpcoreclr.buildConfig=Release +compiler.dotnet70csharpcoreclr.langVersion=latest + +compiler.dotnet80csharpcoreclr.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80csharpcoreclr.name=.NET 8.0 +compiler.dotnet80csharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80csharpcoreclr.buildConfig=Release +compiler.dotnet80csharpcoreclr.langVersion=latest + +compiler.dotnettrunkcsharpcoreclr.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkcsharpcoreclr.name=.NET (main) +compiler.dotnettrunkcsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkcsharpcoreclr.buildConfig=Release +compiler.dotnettrunkcsharpcoreclr.langVersion=preview +compiler.dotnettrunkcsharpcoreclr.isNightly=true + +# Crossgen2 compilers + +compiler.dotnet60csharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v6.0.30/.dotnet/dotnet +compiler.dotnet60csharpcrossgen2.name=.NET 6.0 +compiler.dotnet60csharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v6.0.30 +compiler.dotnet60csharpcrossgen2.buildConfig=Release +compiler.dotnet60csharpcrossgen2.langVersion=latest + +compiler.dotnet70csharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70csharpcrossgen2.name=.NET 7.0 +compiler.dotnet70csharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70csharpcrossgen2.buildConfig=Release +compiler.dotnet70csharpcrossgen2.langVersion=latest + +compiler.dotnet80csharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80csharpcrossgen2.name=.NET 8.0 +compiler.dotnet80csharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80csharpcrossgen2.buildConfig=Release +compiler.dotnet80csharpcrossgen2.langVersion=latest + +compiler.dotnettrunkcsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkcsharpcrossgen2.name=.NET (main) +compiler.dotnettrunkcsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkcsharpcrossgen2.buildConfig=Release +compiler.dotnettrunkcsharpcrossgen2.langVersion=preview +compiler.dotnettrunkcsharpcrossgen2.isNightly=true + +# Legacy compilers (for backwards compatibility, don't add new compilers here) compiler.dotnet6011csharp.exe=/opt/compiler-explorer/dotnet-v6.0.11/.dotnet/dotnet compiler.dotnet6011csharp.name=.NET 6.0.110 @@ -29,7 +89,6 @@ compiler.dotnet701csharp.name=.NET 7.0.100 compiler.dotnet701csharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.1 compiler.dotnet701csharp.buildConfig=Release compiler.dotnet701csharp.langVersion=latest -compiler.dotnet701csharp.alias=dotnet700csharp compiler.dotnet703csharp.exe=/opt/compiler-explorer/dotnet-v7.0.3/.dotnet/dotnet compiler.dotnet703csharp.name=.NET 7.0.102 @@ -42,7 +101,6 @@ compiler.dotnet707csharp.name=.NET 7.0.105 compiler.dotnet707csharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.7 compiler.dotnet707csharp.buildConfig=Release compiler.dotnet707csharp.langVersion=latest -compiler.dotnet707csharp.alias=dotnet700csharp compiler.dotnettrunkcsharp.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet compiler.dotnettrunkcsharp.name=.NET (main) diff --git a/etc/config/csharp.defaults.properties b/etc/config/csharp.defaults.properties index 9ef85774d19..f83edd75fad 100644 --- a/etc/config/csharp.defaults.properties +++ b/etc/config/csharp.defaults.properties @@ -1,11 +1,70 @@ -compilers=&csharp +compilers=&dotnetcoreclr:&dotnetcrossgen2:&dotnetlegacy supportsBinary=true needsMulti=false -compilerType=csharp -defaultCompiler=dotnet707csharp -executionEnvironmentClass=local-dotnet +defaultCompiler=dotnet80csharpcoreclr -group.csharp.compilers=dotnettrunkcsharp:dotnet707csharp:dotnet703csharp:dotnet701csharp:dotnet6018csharp:dotnet6014csharp:dotnet6011csharp +group.dotnetcoreclr.compilers=dotnettrunkcsharpcoreclr:dotnet80csharpcoreclr:dotnet70csharpcoreclr +group.dotnetcoreclr.compilerCategories=coreclr +group.dotnetcoreclr.compilerType=dotnetcoreclr +group.dotnetcoreclr.groupName=.NET CoreCLR +group.dotnetcrossgen2.compilers=dotnettrunkcsharpcrossgen2:dotnet80csharpcrossgen2:dotnet70csharpcrossgen2:dotnet60csharpcrossgen2 +group.dotnetcrossgen2.compilerCategories=crossgen2 +group.dotnetcrossgen2.compilerType=dotnetcrossgen2 +group.dotnetcrossgen2.groupName=.NET Crossgen2 +group.dotnetlegacy.compilers=dotnettrunkcsharp:dotnet707csharp:dotnet703csharp:dotnet701csharp:dotnet6018csharp:dotnet6014csharp:dotnet6011csharp +group.dotnetlegacy.compilerCategories=legacy +group.dotnetlegacy.compilerType=dotnetlegacy +group.dotnetlegacy.groupName=Legacy + +# CoreCLR compilers + +compiler.dotnet70csharpcoreclr.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70csharpcoreclr.name=.NET 7.0 +compiler.dotnet70csharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70csharpcoreclr.buildConfig=Release +compiler.dotnet70csharpcoreclr.langVersion=latest + +compiler.dotnet80csharpcoreclr.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80csharpcoreclr.name=.NET 8.0 +compiler.dotnet80csharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80csharpcoreclr.buildConfig=Release +compiler.dotnet80csharpcoreclr.langVersion=latest + +compiler.dotnettrunkcsharpcoreclr.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkcsharpcoreclr.name=.NET (main) +compiler.dotnettrunkcsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkcsharpcoreclr.buildConfig=Release +compiler.dotnettrunkcsharpcoreclr.langVersion=preview +compiler.dotnettrunkcsharpcoreclr.isNightly=true + +# Crossgen2 compilers + +compiler.dotnet60csharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v6.0.30/.dotnet/dotnet +compiler.dotnet60csharpcrossgen2.name=.NET 6.0 +compiler.dotnet60csharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v6.0.30 +compiler.dotnet60csharpcrossgen2.buildConfig=Release +compiler.dotnet60csharpcrossgen2.langVersion=latest + +compiler.dotnet70csharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70csharpcrossgen2.name=.NET 7.0 +compiler.dotnet70csharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70csharpcrossgen2.buildConfig=Release +compiler.dotnet70csharpcrossgen2.langVersion=latest + +compiler.dotnet80csharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80csharpcrossgen2.name=.NET 8.0 +compiler.dotnet80csharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80csharpcrossgen2.buildConfig=Release +compiler.dotnet80csharpcrossgen2.langVersion=latest + +compiler.dotnettrunkcsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkcsharpcrossgen2.name=.NET (main) +compiler.dotnettrunkcsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkcsharpcrossgen2.buildConfig=Release +compiler.dotnettrunkcsharpcrossgen2.langVersion=preview +compiler.dotnettrunkcsharpcrossgen2.isNightly=true + +# Legacy compilers (for backwards compatibility, don't add new compilers here) compiler.dotnet6011csharp.exe=/opt/compiler-explorer/dotnet-v6.0.11/.dotnet/dotnet compiler.dotnet6011csharp.name=.NET 6.0.110 @@ -30,7 +89,6 @@ compiler.dotnet701csharp.name=.NET 7.0.100 compiler.dotnet701csharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.1 compiler.dotnet701csharp.buildConfig=Release compiler.dotnet701csharp.langVersion=latest -compiler.dotnet701csharp.alias=dotnet700csharp compiler.dotnet703csharp.exe=/opt/compiler-explorer/dotnet-v7.0.3/.dotnet/dotnet compiler.dotnet703csharp.name=.NET 7.0.102 @@ -43,10 +101,10 @@ compiler.dotnet707csharp.name=.NET 7.0.105 compiler.dotnet707csharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.7 compiler.dotnet707csharp.buildConfig=Release compiler.dotnet707csharp.langVersion=latest -compiler.dotnet707csharp.alias=dotnet700csharp compiler.dotnettrunkcsharp.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet compiler.dotnettrunkcsharp.name=.NET (main) compiler.dotnettrunkcsharp.clrDir=/opt/compiler-explorer/dotnet-trunk compiler.dotnettrunkcsharp.buildConfig=Release compiler.dotnettrunkcsharp.langVersion=preview +compiler.dotnettrunkcsharp.isNightly=true diff --git a/etc/config/fsharp.amazon.properties b/etc/config/fsharp.amazon.properties index 66f503a548f..185ac36f5db 100644 --- a/etc/config/fsharp.amazon.properties +++ b/etc/config/fsharp.amazon.properties @@ -1,10 +1,70 @@ -compilers=&fsharp +compilers=&dotnetcoreclr:&dotnetcrossgen2:&dotnetlegacy supportsBinary=true needsMulti=false -compilerType=fsharp -defaultCompiler=dotnet707fsharp +defaultCompiler=dotnet80fsharpcoreclr -group.fsharp.compilers=dotnettrunkfsharp:dotnet707fsharp:dotnet703fsharp:dotnet701fsharp:dotnet6018fsharp:dotnet6014fsharp:dotnet6011fsharp +group.dotnetcoreclr.compilers=dotnettrunkfsharpcoreclr:dotnet80fsharpcoreclr:dotnet70fsharpcoreclr +group.dotnetcoreclr.compilerCategories=coreclr +group.dotnetcoreclr.compilerType=dotnetcoreclr +group.dotnetcoreclr.groupName=.NET CoreCLR +group.dotnetcrossgen2.compilers=dotnettrunkfsharpcrossgen2:dotnet80fsharpcrossgen2:dotnet70fsharpcrossgen2:dotnet60fsharpcrossgen2 +group.dotnetcrossgen2.compilerCategories=crossgen2 +group.dotnetcrossgen2.compilerType=dotnetcrossgen2 +group.dotnetcrossgen2.groupName=.NET Crossgen2 +group.dotnetlegacy.compilers=dotnettrunkfsharp:dotnet707fsharp:dotnet703fsharp:dotnet701fsharp:dotnet6018fsharp:dotnet6014fsharp:dotnet6011fsharp +group.dotnetlegacy.compilerCategories=legacy +group.dotnetlegacy.compilerType=dotnetlegacy +group.dotnetlegacy.groupName=Legacy + +# CoreCLR compilers + +compiler.dotnet70fsharpcoreclr.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70fsharpcoreclr.name=.NET 7.0 +compiler.dotnet70fsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70fsharpcoreclr.buildConfig=Release +compiler.dotnet70fsharpcoreclr.langVersion=latest + +compiler.dotnet80fsharpcoreclr.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80fsharpcoreclr.name=.NET 8.0 +compiler.dotnet80fsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80fsharpcoreclr.buildConfig=Release +compiler.dotnet80fsharpcoreclr.langVersion=latest + +compiler.dotnettrunkfsharpcoreclr.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkfsharpcoreclr.name=.NET (main) +compiler.dotnettrunkfsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkfsharpcoreclr.buildConfig=Release +compiler.dotnettrunkfsharpcoreclr.langVersion=preview +compiler.dotnettrunkfsharpcoreclr.isNightly=true + +# Crossgen2 compilers + +compiler.dotnet60fsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v6.0.30/.dotnet/dotnet +compiler.dotnet60fsharpcrossgen2.name=.NET 6.0 +compiler.dotnet60fsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v6.0.30 +compiler.dotnet60fsharpcrossgen2.buildConfig=Release +compiler.dotnet60fsharpcrossgen2.langVersion=latest + +compiler.dotnet70fsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70fsharpcrossgen2.name=.NET 7.0 +compiler.dotnet70fsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70fsharpcrossgen2.buildConfig=Release +compiler.dotnet70fsharpcrossgen2.langVersion=latest + +compiler.dotnet80fsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80fsharpcrossgen2.name=.NET 8.0 +compiler.dotnet80fsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80fsharpcrossgen2.buildConfig=Release +compiler.dotnet80fsharpcrossgen2.langVersion=latest + +compiler.dotnettrunkfsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkfsharpcrossgen2.name=.NET (main) +compiler.dotnettrunkfsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkfsharpcrossgen2.buildConfig=Release +compiler.dotnettrunkfsharpcrossgen2.langVersion=preview +compiler.dotnettrunkfsharpcrossgen2.isNightly=true + +# Legacy compilers (for backwards compatibility, don't add new compilers here) compiler.dotnet6011fsharp.exe=/opt/compiler-explorer/dotnet-v6.0.11/.dotnet/dotnet compiler.dotnet6011fsharp.name=.NET 6.0.110 @@ -29,7 +89,6 @@ compiler.dotnet701fsharp.name=.NET 7.0.100 compiler.dotnet701fsharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.1 compiler.dotnet701fsharp.buildConfig=Release compiler.dotnet701fsharp.langVersion=latest -compiler.dotnet701fsharp.alias=dotnet700fsharp compiler.dotnet703fsharp.exe=/opt/compiler-explorer/dotnet-v7.0.3/.dotnet/dotnet compiler.dotnet703fsharp.name=.NET 7.0.102 @@ -42,7 +101,6 @@ compiler.dotnet707fsharp.name=.NET 7.0.105 compiler.dotnet707fsharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.7 compiler.dotnet707fsharp.buildConfig=Release compiler.dotnet707fsharp.langVersion=latest -compiler.dotnet707fsharp.alias=dotnet700fsharp compiler.dotnettrunkfsharp.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet compiler.dotnettrunkfsharp.name=.NET (main) diff --git a/etc/config/fsharp.defaults.properties b/etc/config/fsharp.defaults.properties index 76281fff232..185ac36f5db 100644 --- a/etc/config/fsharp.defaults.properties +++ b/etc/config/fsharp.defaults.properties @@ -1,11 +1,70 @@ -compilers=&fsharp +compilers=&dotnetcoreclr:&dotnetcrossgen2:&dotnetlegacy supportsBinary=true needsMulti=false -compilerType=fsharp -defaultCompiler=dotnet707fsharp -executionEnvironmentClass=local-dotnet +defaultCompiler=dotnet80fsharpcoreclr -group.fsharp.compilers=dotnettrunkfsharp:dotnet707fsharp:dotnet703fsharp:dotnet701fsharp:dotnet6018fsharp:dotnet6014fsharp:dotnet6011fsharp +group.dotnetcoreclr.compilers=dotnettrunkfsharpcoreclr:dotnet80fsharpcoreclr:dotnet70fsharpcoreclr +group.dotnetcoreclr.compilerCategories=coreclr +group.dotnetcoreclr.compilerType=dotnetcoreclr +group.dotnetcoreclr.groupName=.NET CoreCLR +group.dotnetcrossgen2.compilers=dotnettrunkfsharpcrossgen2:dotnet80fsharpcrossgen2:dotnet70fsharpcrossgen2:dotnet60fsharpcrossgen2 +group.dotnetcrossgen2.compilerCategories=crossgen2 +group.dotnetcrossgen2.compilerType=dotnetcrossgen2 +group.dotnetcrossgen2.groupName=.NET Crossgen2 +group.dotnetlegacy.compilers=dotnettrunkfsharp:dotnet707fsharp:dotnet703fsharp:dotnet701fsharp:dotnet6018fsharp:dotnet6014fsharp:dotnet6011fsharp +group.dotnetlegacy.compilerCategories=legacy +group.dotnetlegacy.compilerType=dotnetlegacy +group.dotnetlegacy.groupName=Legacy + +# CoreCLR compilers + +compiler.dotnet70fsharpcoreclr.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70fsharpcoreclr.name=.NET 7.0 +compiler.dotnet70fsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70fsharpcoreclr.buildConfig=Release +compiler.dotnet70fsharpcoreclr.langVersion=latest + +compiler.dotnet80fsharpcoreclr.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80fsharpcoreclr.name=.NET 8.0 +compiler.dotnet80fsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80fsharpcoreclr.buildConfig=Release +compiler.dotnet80fsharpcoreclr.langVersion=latest + +compiler.dotnettrunkfsharpcoreclr.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkfsharpcoreclr.name=.NET (main) +compiler.dotnettrunkfsharpcoreclr.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkfsharpcoreclr.buildConfig=Release +compiler.dotnettrunkfsharpcoreclr.langVersion=preview +compiler.dotnettrunkfsharpcoreclr.isNightly=true + +# Crossgen2 compilers + +compiler.dotnet60fsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v6.0.30/.dotnet/dotnet +compiler.dotnet60fsharpcrossgen2.name=.NET 6.0 +compiler.dotnet60fsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v6.0.30 +compiler.dotnet60fsharpcrossgen2.buildConfig=Release +compiler.dotnet60fsharpcrossgen2.langVersion=latest + +compiler.dotnet70fsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70fsharpcrossgen2.name=.NET 7.0 +compiler.dotnet70fsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70fsharpcrossgen2.buildConfig=Release +compiler.dotnet70fsharpcrossgen2.langVersion=latest + +compiler.dotnet80fsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80fsharpcrossgen2.name=.NET 8.0 +compiler.dotnet80fsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80fsharpcrossgen2.buildConfig=Release +compiler.dotnet80fsharpcrossgen2.langVersion=latest + +compiler.dotnettrunkfsharpcrossgen2.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkfsharpcrossgen2.name=.NET (main) +compiler.dotnettrunkfsharpcrossgen2.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkfsharpcrossgen2.buildConfig=Release +compiler.dotnettrunkfsharpcrossgen2.langVersion=preview +compiler.dotnettrunkfsharpcrossgen2.isNightly=true + +# Legacy compilers (for backwards compatibility, don't add new compilers here) compiler.dotnet6011fsharp.exe=/opt/compiler-explorer/dotnet-v6.0.11/.dotnet/dotnet compiler.dotnet6011fsharp.name=.NET 6.0.110 @@ -30,7 +89,6 @@ compiler.dotnet701fsharp.name=.NET 7.0.100 compiler.dotnet701fsharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.1 compiler.dotnet701fsharp.buildConfig=Release compiler.dotnet701fsharp.langVersion=latest -compiler.dotnet701fsharp.alias=dotnet700fsharp compiler.dotnet703fsharp.exe=/opt/compiler-explorer/dotnet-v7.0.3/.dotnet/dotnet compiler.dotnet703fsharp.name=.NET 7.0.102 @@ -43,10 +101,10 @@ compiler.dotnet707fsharp.name=.NET 7.0.105 compiler.dotnet707fsharp.clrDir=/opt/compiler-explorer/dotnet-v7.0.7 compiler.dotnet707fsharp.buildConfig=Release compiler.dotnet707fsharp.langVersion=latest -compiler.dotnet707fsharp.alias=dotnet700fsharp compiler.dotnettrunkfsharp.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet compiler.dotnettrunkfsharp.name=.NET (main) compiler.dotnettrunkfsharp.clrDir=/opt/compiler-explorer/dotnet-trunk compiler.dotnettrunkfsharp.buildConfig=Release compiler.dotnettrunkfsharp.langVersion=preview +compiler.dotnettrunkfsharp.isNightly=true diff --git a/etc/config/vb.amazon.properties b/etc/config/vb.amazon.properties index 90ad2fb2b03..8bc0c760e71 100644 --- a/etc/config/vb.amazon.properties +++ b/etc/config/vb.amazon.properties @@ -1,10 +1,70 @@ -compilers=&vb +compilers=&dotnetcoreclr:&dotnetcrossgen2:&dotnetlegacy supportsBinary=true needsMulti=false -compilerType=vb -defaultCompiler=dotnet707vb +defaultCompiler=dotnet80vbcoreclr -group.vb.compilers=dotnettrunkvb:dotnet707vb:dotnet703vb:dotnet701vb:dotnet6018vb:dotnet6014vb:dotnet6011vb +group.dotnetcoreclr.compilers=dotnettrunkvbcoreclr:dotnet80vbcoreclr:dotnet70vbcoreclr +group.dotnetcoreclr.compilerCategories=coreclr +group.dotnetcoreclr.compilerType=dotnetcoreclr +group.dotnetcoreclr.groupName=.NET CoreCLR +group.dotnetcrossgen2.compilers=dotnettrunkvbcrossgen2:dotnet80vbcrossgen2:dotnet70vbcrossgen2:dotnet60vbcrossgen2 +group.dotnetcrossgen2.compilerCategories=crossgen2 +group.dotnetcrossgen2.compilerType=dotnetcrossgen2 +group.dotnetcrossgen2.groupName=.NET Crossgen2 +group.dotnetlegacy.compilers=dotnettrunkvb:dotnet707vb:dotnet703vb:dotnet701vb:dotnet6018vb:dotnet6014vb:dotnet6011vb +group.dotnetlegacy.compilerCategories=legacy +group.dotnetlegacy.compilerType=dotnetlegacy +group.dotnetlegacy.groupName=Legacy + +# CoreCLR compilers + +compiler.dotnet70vbcoreclr.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70vbcoreclr.name=.NET 7.0 +compiler.dotnet70vbcoreclr.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70vbcoreclr.buildConfig=Release +compiler.dotnet70vbcoreclr.langVersion=latest + +compiler.dotnet80vbcoreclr.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80vbcoreclr.name=.NET 8.0 +compiler.dotnet80vbcoreclr.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80vbcoreclr.buildConfig=Release +compiler.dotnet80vbcoreclr.langVersion=latest + +compiler.dotnettrunkvbcoreclr.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkvbcoreclr.name=.NET (main) +compiler.dotnettrunkvbcoreclr.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkvbcoreclr.buildConfig=Release +compiler.dotnettrunkvbcoreclr.langVersion=preview +compiler.dotnettrunkvbcoreclr.isNightly=true + +# Crossgen2 compilers + +compiler.dotnet60vbcrossgen2.exe=/opt/compiler-explorer/dotnet-v6.0.30/.dotnet/dotnet +compiler.dotnet60vbcrossgen2.name=.NET 6.0 +compiler.dotnet60vbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v6.0.30 +compiler.dotnet60vbcrossgen2.buildConfig=Release +compiler.dotnet60vbcrossgen2.langVersion=latest + +compiler.dotnet70vbcrossgen2.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70vbcrossgen2.name=.NET 7.0 +compiler.dotnet70vbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70vbcrossgen2.buildConfig=Release +compiler.dotnet70vbcrossgen2.langVersion=latest + +compiler.dotnet80vbcrossgen2.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80vbcrossgen2.name=.NET 8.0 +compiler.dotnet80vbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80vbcrossgen2.buildConfig=Release +compiler.dotnet80vbcrossgen2.langVersion=latest + +compiler.dotnettrunkvbcrossgen2.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkvbcrossgen2.name=.NET (main) +compiler.dotnettrunkvbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkvbcrossgen2.buildConfig=Release +compiler.dotnettrunkvbcrossgen2.langVersion=preview +compiler.dotnettrunkvbcrossgen2.isNightly=true + +# Legacy compilers (for backwards compatibility, don't add new compilers here) compiler.dotnet6011vb.exe=/opt/compiler-explorer/dotnet-v6.0.11/.dotnet/dotnet compiler.dotnet6011vb.name=.NET 6.0.110 @@ -29,7 +89,6 @@ compiler.dotnet701vb.name=.NET 7.0.100 compiler.dotnet701vb.clrDir=/opt/compiler-explorer/dotnet-v7.0.1 compiler.dotnet701vb.buildConfig=Release compiler.dotnet701vb.langVersion=latest -compiler.dotnet701vb.alias=dotnet700vb compiler.dotnet703vb.exe=/opt/compiler-explorer/dotnet-v7.0.3/.dotnet/dotnet compiler.dotnet703vb.name=.NET 7.0.102 @@ -42,11 +101,10 @@ compiler.dotnet707vb.name=.NET 7.0.105 compiler.dotnet707vb.clrDir=/opt/compiler-explorer/dotnet-v7.0.7 compiler.dotnet707vb.buildConfig=Release compiler.dotnet707vb.langVersion=latest -compiler.dotnet707vb.alias=dotnet700vb compiler.dotnettrunkvb.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet compiler.dotnettrunkvb.name=.NET (main) compiler.dotnettrunkvb.clrDir=/opt/compiler-explorer/dotnet-trunk compiler.dotnettrunkvb.buildConfig=Release -compiler.dotnettrunkvb.langVersion=latest +compiler.dotnettrunkvb.langVersion=preview compiler.dotnettrunkvb.isNightly=true diff --git a/etc/config/vb.defaults.properties b/etc/config/vb.defaults.properties index 2db923c4bf6..8bc0c760e71 100644 --- a/etc/config/vb.defaults.properties +++ b/etc/config/vb.defaults.properties @@ -1,11 +1,70 @@ -compilers=&vb +compilers=&dotnetcoreclr:&dotnetcrossgen2:&dotnetlegacy supportsBinary=true needsMulti=false -compilerType=vb -defaultCompiler=dotnet707vb -executionEnvironmentClass=local-dotnet +defaultCompiler=dotnet80vbcoreclr -group.vb.compilers=dotnettrunkvb:dotnet707vb:dotnet703vb:dotnet701vb:dotnet6018vb:dotnet6014vb:dotnet6011vb +group.dotnetcoreclr.compilers=dotnettrunkvbcoreclr:dotnet80vbcoreclr:dotnet70vbcoreclr +group.dotnetcoreclr.compilerCategories=coreclr +group.dotnetcoreclr.compilerType=dotnetcoreclr +group.dotnetcoreclr.groupName=.NET CoreCLR +group.dotnetcrossgen2.compilers=dotnettrunkvbcrossgen2:dotnet80vbcrossgen2:dotnet70vbcrossgen2:dotnet60vbcrossgen2 +group.dotnetcrossgen2.compilerCategories=crossgen2 +group.dotnetcrossgen2.compilerType=dotnetcrossgen2 +group.dotnetcrossgen2.groupName=.NET Crossgen2 +group.dotnetlegacy.compilers=dotnettrunkvb:dotnet707vb:dotnet703vb:dotnet701vb:dotnet6018vb:dotnet6014vb:dotnet6011vb +group.dotnetlegacy.compilerCategories=legacy +group.dotnetlegacy.compilerType=dotnetlegacy +group.dotnetlegacy.groupName=Legacy + +# CoreCLR compilers + +compiler.dotnet70vbcoreclr.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70vbcoreclr.name=.NET 7.0 +compiler.dotnet70vbcoreclr.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70vbcoreclr.buildConfig=Release +compiler.dotnet70vbcoreclr.langVersion=latest + +compiler.dotnet80vbcoreclr.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80vbcoreclr.name=.NET 8.0 +compiler.dotnet80vbcoreclr.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80vbcoreclr.buildConfig=Release +compiler.dotnet80vbcoreclr.langVersion=latest + +compiler.dotnettrunkvbcoreclr.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkvbcoreclr.name=.NET (main) +compiler.dotnettrunkvbcoreclr.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkvbcoreclr.buildConfig=Release +compiler.dotnettrunkvbcoreclr.langVersion=preview +compiler.dotnettrunkvbcoreclr.isNightly=true + +# Crossgen2 compilers + +compiler.dotnet60vbcrossgen2.exe=/opt/compiler-explorer/dotnet-v6.0.30/.dotnet/dotnet +compiler.dotnet60vbcrossgen2.name=.NET 6.0 +compiler.dotnet60vbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v6.0.30 +compiler.dotnet60vbcrossgen2.buildConfig=Release +compiler.dotnet60vbcrossgen2.langVersion=latest + +compiler.dotnet70vbcrossgen2.exe=/opt/compiler-explorer/dotnet-v7.0.19/.dotnet/dotnet +compiler.dotnet70vbcrossgen2.name=.NET 7.0 +compiler.dotnet70vbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v7.0.19 +compiler.dotnet70vbcrossgen2.buildConfig=Release +compiler.dotnet70vbcrossgen2.langVersion=latest + +compiler.dotnet80vbcrossgen2.exe=/opt/compiler-explorer/dotnet-v8.0.5/.dotnet/dotnet +compiler.dotnet80vbcrossgen2.name=.NET 8.0 +compiler.dotnet80vbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-v8.0.5 +compiler.dotnet80vbcrossgen2.buildConfig=Release +compiler.dotnet80vbcrossgen2.langVersion=latest + +compiler.dotnettrunkvbcrossgen2.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet +compiler.dotnettrunkvbcrossgen2.name=.NET (main) +compiler.dotnettrunkvbcrossgen2.clrDir=/opt/compiler-explorer/dotnet-trunk +compiler.dotnettrunkvbcrossgen2.buildConfig=Release +compiler.dotnettrunkvbcrossgen2.langVersion=preview +compiler.dotnettrunkvbcrossgen2.isNightly=true + +# Legacy compilers (for backwards compatibility, don't add new compilers here) compiler.dotnet6011vb.exe=/opt/compiler-explorer/dotnet-v6.0.11/.dotnet/dotnet compiler.dotnet6011vb.name=.NET 6.0.110 @@ -30,7 +89,6 @@ compiler.dotnet701vb.name=.NET 7.0.100 compiler.dotnet701vb.clrDir=/opt/compiler-explorer/dotnet-v7.0.1 compiler.dotnet701vb.buildConfig=Release compiler.dotnet701vb.langVersion=latest -compiler.dotnet701vb.alias=dotnet700vb compiler.dotnet703vb.exe=/opt/compiler-explorer/dotnet-v7.0.3/.dotnet/dotnet compiler.dotnet703vb.name=.NET 7.0.102 @@ -43,10 +101,10 @@ compiler.dotnet707vb.name=.NET 7.0.105 compiler.dotnet707vb.clrDir=/opt/compiler-explorer/dotnet-v7.0.7 compiler.dotnet707vb.buildConfig=Release compiler.dotnet707vb.langVersion=latest -compiler.dotnet707vb.alias=dotnet700vb compiler.dotnettrunkvb.exe=/opt/compiler-explorer/dotnet-trunk/.dotnet/dotnet compiler.dotnettrunkvb.name=.NET (main) compiler.dotnettrunkvb.clrDir=/opt/compiler-explorer/dotnet-trunk compiler.dotnettrunkvb.buildConfig=Release -compiler.dotnettrunkvb.langVersion=latest +compiler.dotnettrunkvb.langVersion=preview +compiler.dotnettrunkvb.isNightly=true diff --git a/lib/compilers/_all.ts b/lib/compilers/_all.ts index 930324e5e66..ec70e6afaa3 100644 --- a/lib/compilers/_all.ts +++ b/lib/compilers/_all.ts @@ -48,12 +48,14 @@ export {CppFrontCompiler} from './cppfront.js'; export {CprocCompiler} from './cproc.js'; export {CLSPVCompiler} from './clspv.js'; export {CrystalCompiler} from './crystal.js'; -export {CSharpCompiler} from './dotnet.js'; export {D8Compiler} from './d8.js'; export {DartCompiler} from './dart.js'; export {DefaultCompiler} from './default.js'; export {Dex2OatCompiler} from './dex2oat.js'; export {DMDCompiler} from './dmd.js'; +export {DotNetCoreClrCompiler} from './dotnet.js'; +export {DotNetCrossgen2Compiler} from './dotnet.js'; +export {DotNetLegacyCompiler} from './dotnet.js'; export {EDGCompiler} from './edg.js'; export {EllccCompiler} from './ellcc.js'; export {ElixirCompiler} from './elixir.js'; @@ -66,7 +68,6 @@ export {FlangCompiler} from './flang.js'; export {FlangFC1Compiler} from './flang-fc1.js'; export {FortranCompiler} from './fortran.js'; export {FPCCompiler} from './pascal.js'; -export {FSharpCompiler} from './dotnet.js'; export {GCCCompiler} from './gcc.js'; export {GCCRSCompiler} from './gccrs.js'; export {GCCGimpleCompiler} from './gimple.js'; @@ -127,7 +128,6 @@ export {TurboCCompiler} from './turboc.js'; export {TypeScriptNativeCompiler} from './typescript-native.js'; export {VCompiler} from './v.js'; export {ValaCompiler} from './vala.js'; -export {VBCompiler} from './dotnet.js'; export {V8Compiler} from './v8.js'; export {Win32Compiler} from './win32.js'; export {Win32Vc6Compiler} from './win32-vc6.js'; diff --git a/lib/compilers/dotnet.ts b/lib/compilers/dotnet.ts index cfe28430412..c250af15c32 100644 --- a/lib/compilers/dotnet.ts +++ b/lib/compilers/dotnet.ts @@ -306,7 +306,7 @@ class DotNetCompiler extends BaseCompiler { ]; let isAot = false; let overrideDiffable = false; - let isCrossgen2 = this.sdkMajorVersion === 6; + let isCrossgen2 = this.compiler.group === 'dotnetlegacy' && this.sdkMajorVersion === 6; while (options.length > 0) { const currentOption = options.shift(); @@ -333,10 +333,12 @@ class DotNetCompiler extends BaseCompiler { corerunArgs.push('-p', property); } } else if (this.configurableSwitches.includes(currentOption)) { - if (currentOption === '--aot') { - isAot = true; - } else if (currentOption === '--crossgen2') { - isCrossgen2 = true; + if (this.compiler.group === 'dotnetlegacy') { + if (currentOption === '--aot') { + isAot = true; + } else if (currentOption === '--crossgen2') { + isCrossgen2 = true; + } } else { toolSwitches.push(currentOption); } @@ -356,6 +358,10 @@ class DotNetCompiler extends BaseCompiler { } } + if (this.compiler.group === 'dotnetcrossgen2') { + isCrossgen2 = true; + } + if (!overrideDiffable) { if (this.sdkMajorVersion < 8) { toolOptions.push('--codegenopt', 'JitDiffableDasm=1'); @@ -514,20 +520,20 @@ class DotNetCompiler extends BaseCompiler { } } -export class CSharpCompiler extends DotNetCompiler { +export class DotNetCoreClrCompiler extends DotNetCompiler { static get key() { - return 'csharp'; + return 'dotnetcoreclr'; } } -export class FSharpCompiler extends DotNetCompiler { +export class DotNetCrossgen2Compiler extends DotNetCompiler { static get key() { - return 'fsharp'; + return 'dotnetcrossgen2'; } } -export class VBCompiler extends DotNetCompiler { +export class DotNetLegacyCompiler extends DotNetCompiler { static get key() { - return 'vb'; + return 'dotnetlegacy'; } }