Skip to content

[Umbrella] Improving compiler adoption and dogfooding story #18783

Description

@jcouv

See the various sections below for adopting new versions of the compiler (including nightlies) in various contexts (VS, ASP.NET, etc). This is still work-in-progress.

As we shift to point release model, it is increasingly important that we make it easy for customers (external and internal to Microsoft) to adopt new versions of the compiler, including previews.

Host Users can upgrade? Upgraded by default? Allows dogfooding Plan
VS Yes, install VSIX. But un-install problem Yes. Default is “default” (not “latest”). Lighbulb helps upgrade existing projects Somewhat (but no channel for Roslyn/master yet). Roslyn insider extension currently broken. Fix SDK un-install issue. Could we get a channel with Roslyn/master?
asp.net Manually (update compiler nuget and fix web.config). Yes (new projects in VS2017 use C# 7.0). No for existing projects. Maybe we could offer lightbulb too? Upgrade the default package reference to 2.0? The template was recently updated to use "default".
asp.net Core Manually (update compiler nuget, fix web.config and configure Razor). (aspnet/Razor#1046) Yes (new projects in VS2017 use C# 7.0). No for existing projects. Maybe we could offer lightbulb too? (filed #20614)
CLI Yes (see below) Not sure. No. Use package integration. .Net Core 2.0 should offer C# 7.0. Not sure about 7.1. Matt Whilden updated the package recently to 2.3 preview. Jared is tracking an issue to improve the integration.
corext Moving to package dependency. See steps below (still being validated)
Mono No. Mono still using own compiler Mono planning to adopt Roslyn compiler for Mono 5.0. Upgrading from there has package issue.
VS for Mac Not sure Yes. Latest preview includes C# 7.0 Not sure Same package issue as Mono.
Unity They depend on mono using Roslyn first
Azure functions Consumes nuget package. Likely uses "default" language version. Fabio will update to C# 7.0 package. After that we should discuss using "latest".
Powershell I don't think so
Linqpad Not sure Yes (Linqpad seems to pick up new compiler quickly) No
RoslynPad
OzCode
VS Code No, new features require some integration work (syntax highlighting). But Omnisharp and VS Code pick up new compiler regularly. Talk with Dustin
Orleans
VSTS Jared mentioned there are two scenarios: CI images and some code analysis services

Then there's also internal adoption and dogfooding: building VS code itself, building corefx, building corefxlab, dogfooding with .NET Native, etc

There is also the Microsoft.CodeDom.Providers.DotNetCompilerPlatform package, which has some relationship to ASP.NET.

Metadata

Metadata

Assignees

Labels

Area-CompilersStoryTenet-AcquisitionUser cannot successfully acquire/install the product in some situation. These are often setup bugs.

Type

No type

Projects

Status
Misc

Relationships

None yet

Development

No branches or pull requests

Issue actions