From 383e876655f77345ff077003949feba2448a49eb Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Thu, 23 Sep 2021 16:09:01 -0700 Subject: [PATCH 1/4] Update x64 emulation plan --- .../x64-emulation-on-arm64/x64-emulation.md | 33 ++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md index 07ab05bb9..97ab7ab29 100644 --- a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md +++ b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md @@ -218,7 +218,7 @@ This option is intended as the most user friendly option. It's the best experien - x64 .NET 6 runtimes - x64 .NET 5 runtimes - x64 .NET Core 3.1 runtimes - - [New] x64 .NET 3.1+ ASP.NET Core runtimes for macOS + - x64 .NET 3.1+ ASP.NET Core runtimes for macOS - **Unsupported x64 installers (for coexistence)** - x64 .NET SDKs @@ -245,3 +245,34 @@ Actual Plan: We decided that option 3 will result in CLI breaking changes. While option 2 could theoretically be delivered between .NET 6 and .NET 7 with a .NET SDK update (like `6.0.200`), option 3 can only be delivered with a major release. It is also fair to note that the breaking changes associated with option 3 are not dependent on option 2. We could in theory make the breaking changes for option 3 now, enabling the remaining work to be done either before .NET 6 or in a .NET SDK update. Note: These plans assume that Visual Studio (Dev17) will not be supported on Windows Arm64 (with x64 emulation) before .NET 7. They also assume that Visual Studio for Mac will adapt to this plan, aligned with .NET 6. If those are not true, then we need to re-assess this plan. + +## Update + +Update: September 23, 2021 + +The following is what we've decided to support, in terms of x64 emulation and native Arm64 architecture builds and their necessary co-existence. + +Supported products: + +- .NET Core 3.1 x64 runtimes +- .NET 5 x64 runtimes +- .NET 5 Arm64 runtimes (Windows only) +- .NET 6+ x64 and Arm64 runtimes +- .NET 6+ x64 and Arm64 SDKs + +In terms of CLI targeting, we will deliver the following experience. + +macOS: + +- .NET Core 3.1 will default to x64 +- .NET 5 will default to x64 +- .NET 6+ will default Arm64 + +Windows: + +- .NET Core 3.1 will default to x64 +- .NET 5+ will default to Arm64 + +What is meant by "default to x64?" + +Assume a project that target `netcoreapp3.1`. `dotnet run` should generate an x64 apphost that attempts to discover a compatible runtime (like .NET Core 3.1) in the x64 installation location. This same model applies to other commands like `dotnet test` and `dotnet tool install`. From d5dfa1c4ce5469d6a0ca2fb4ef8a4fe7e4f2e934 Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 24 Sep 2021 22:04:11 -0700 Subject: [PATCH 2/4] Update accepted/2021/x64-emulation-on-arm64/x64-emulation.md Co-authored-by: Eric StJohn --- accepted/2021/x64-emulation-on-arm64/x64-emulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md index 97ab7ab29..2b4a17c74 100644 --- a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md +++ b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md @@ -252,7 +252,7 @@ Update: September 23, 2021 The following is what we've decided to support, in terms of x64 emulation and native Arm64 architecture builds and their necessary co-existence. -Supported products: +Supported products for installation on ARM64 Windows and macOS: - .NET Core 3.1 x64 runtimes - .NET 5 x64 runtimes From 3416fb676936b3981c4ec461e989116172d138fd Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 24 Sep 2021 22:04:18 -0700 Subject: [PATCH 3/4] Update accepted/2021/x64-emulation-on-arm64/x64-emulation.md Co-authored-by: Yaakov --- accepted/2021/x64-emulation-on-arm64/x64-emulation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md index 2b4a17c74..f752fbb86 100644 --- a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md +++ b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md @@ -275,4 +275,4 @@ Windows: What is meant by "default to x64?" -Assume a project that target `netcoreapp3.1`. `dotnet run` should generate an x64 apphost that attempts to discover a compatible runtime (like .NET Core 3.1) in the x64 installation location. This same model applies to other commands like `dotnet test` and `dotnet tool install`. +Assume a project that targets `netcoreapp3.1`. `dotnet run` should generate an x64 apphost that attempts to discover a compatible runtime (like .NET Core 3.1) in the x64 installation location. This same model applies to other commands like `dotnet test` and `dotnet tool install`. From 28cf293b4a6d6c628ab5932382cb05eab4b2a91c Mon Sep 17 00:00:00 2001 From: Rich Lander Date: Fri, 24 Sep 2021 22:12:14 -0700 Subject: [PATCH 4/4] Update x64-emulation.md --- accepted/2021/x64-emulation-on-arm64/x64-emulation.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md index f752fbb86..21a7d770c 100644 --- a/accepted/2021/x64-emulation-on-arm64/x64-emulation.md +++ b/accepted/2021/x64-emulation-on-arm64/x64-emulation.md @@ -260,6 +260,12 @@ Supported products for installation on ARM64 Windows and macOS: - .NET 6+ x64 and Arm64 runtimes - .NET 6+ x64 and Arm64 SDKs +Note: Pre-.NET 6 x64 SDKS will be installable on macOS and Windows x64 but are not supported. They have not been updated in terms of this plan and will break Arm64 installs. If they are installed on a machine, all .NET versions will need to be uninstalled/removed and you'll need to start again with installing supported .NET SDK versions. + +Note: The same model is true with .NET Core 3.1 and .NET 5 x64 runtime updates before a certain TBD release. We haven't updated these runtime versions yet to work correctly. We will announce which releases (and going forward) are supported. We hope it is the servicing release that goes out at the same time as .NET 6 RTM, but that is still to be determined. + +Note: The same model is true .NET Core 3.0 and earlier versions. + In terms of CLI targeting, we will deliver the following experience. macOS: