Skip to content

Conversation

@chsienki
Copy link
Member

@chsienki chsienki commented Oct 4, 2022

This PR introduces the notion of the 'Experimental' API surface, via Microsoft.CodeAnalysis.Experimental. That assembly has IVT into Microsoft.CodeAnalysis and can 'promote' internal APIs to become public.

Here' we're creating an internal API for host outputs and exposing it via the new experimental package.

I suspect this approach may be controversial, and to be clear, we haven't decided on this being the path forward at all, but it seemed the best way to think about it was to implement it and get feedback.

 - Add host outputs to exerimental API surface
 - Enable internal hosts outputs in generator driver
@chsienki
Copy link
Member Author

chsienki commented Oct 4, 2022

image

@CyrusNajmabadi
Copy link
Member

I'm personally a fan. Would also love it if someone using these had to opt-in somehow as well. e.g. an addition to their project file like <AllowExperimentalRoslynBitsThatMayCHangeAtAnyMomentAndBreakEverythingDownstreamThatDependsOnItYesIUnderstandTheImplicationsHereKThxBye/>

@chsienki
Copy link
Member Author

chsienki commented Oct 4, 2022

@CyrusNajmabadi The main idea was that you had to explicitly add a package ref to Microsoft.CodeAnalysis.Experimental which acts as the opt-in. I.e. you don't get these by default (and we can see the ref in things like binlogs too, which might be useful)

But happy to add an extra swtich on top of that if we want to make it Really clear :)

Compilers.sln Outdated
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CodeAnalysis.CSharp.EndToEnd.UnitTests", "src\Compilers\CSharp\Test\EndToEnd\Microsoft.CodeAnalysis.CSharp.EndToEnd.UnitTests.csproj", "{F3D9264A-7CAE-4265-AF48-0C863301F51E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CodeAnalysis.Experimental", "src\Compilers\Core\Experimental\Microsoft.CodeAnalysis.Experimental\Microsoft.CodeAnalysis.Experimental.csproj", "{62945D52-AB03-4403-97C3-EF39D64FDE77}"
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is going to add an image load to Razor scenarios and at some ponit Rsolyn ones too. We should pre-clear this with the VS perf team.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants