Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[release/6.0-preview7] Enable the generic math feature #55776

Merged

Conversation

tannergooding
Copy link
Member

@tannergooding tannergooding commented Jul 15, 2021

Backport of #55678. Issue dotnet/designs#205

Issue Summary

C++/CLI fails to compile any code that utilizes a type implementing an interface with a static abstract member. Since generic math involves implementing interfaces with static abstract members on the primitive types, this impacted nearly every C++/CLI compilation.

This works around the issue by creating a System.Runtime.Experimental package that will override the System.Runtime.dll that ships in box. This experimental reference assembly exposes the generic math methods and interfaces allowing projects to individually opt-in and thus avoids the issue of tooling, such as C++/CLI, encountering the new IL by default.

Customer Impact

Customers will not be able to utilize the generic math preview feature and early feedback of the feature will not be as feasible.

Testing

Manual validation that .NET works with C++/CLI by default and that the functionality is usable from a C# app explicitly referencing the experimental package was done.

Regression?

No. These are net new preview types.

Risk

Low. Product has already undergone decent testing and perf validation. It was pulled out at last minute due to an unforeseen incompatibility with C++/CLI. The C++/CLI team is aware of the problem and will be looking into it further to determine the correct fix.

This functionality exposes a way for the feature to still be useable, via explicit opt-in, without impacting any existing tools that are otherwise not currently compatible.

@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@tannergooding
Copy link
Member Author

CC. @jeffhandley, @ericstj, @ViktorHofer, @terrajobst, @davidwrighton, @MadsTorgersen

This is the backport to .NET 6 Preview 7. It missed the cutoff due to a WASM AOT issue (#55767) that had cropped up when it tried to execute the experimental test package.

@davidwrighton davidwrighton self-requested a review July 15, 2021 23:42
Copy link
Member

@davidwrighton davidwrighton left a comment

Choose a reason for hiding this comment

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

The change looks good

@tannergooding tannergooding added the Servicing-consider Issue for next servicing release review label Jul 16, 2021
@tannergooding
Copy link
Member Author

runtime (Libraries Test Run release mono Linux x64 Debug) was a timeout in System.Net.Quic.Functional.Tests and appears unrelated (#55642). CI, for whatever reason, marked the main runtime job as passing and so there doesn't appear to be a way to rerun this singular job.

@tannergooding
Copy link
Member Author

This was approved by Steve Carroll over tactics e-mail. What's required to get it merged now (branch is protected and restricted to authorized users)?

@danmoseley danmoseley added Servicing-approved Approved for servicing release and removed Servicing-consider Issue for next servicing release review labels Jul 16, 2021
@danmoseley danmoseley merged commit 69c3212 into dotnet:release/6.0-preview7 Jul 16, 2021
@danmoseley
Copy link
Member

Merged. I'm not quite sure how it works, but I can merge into this branch if it's green, but not otherwise. In that case I ping on the infra channel.

@danmoseley
Copy link
Member

@tannergooding it would be good to keep an eye on codeflow and when a P7 installer comes out with this in, do another quick check.

@tannergooding
Copy link
Member Author

Thanks @danmoseley and will do

@ghost ghost locked as resolved and limited conversation to collaborators Aug 15, 2021
@tannergooding tannergooding deleted the enable-generic-math branch November 11, 2022 15:18
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Servicing-approved Approved for servicing release
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants