-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[release/6.0-preview7] Enable the generic math feature #55776
Conversation
…generic math preview This reverts commit f6eb259.
…sion is 100 higher
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. |
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. |
There was a problem hiding this 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
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 |
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)? |
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. |
@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. |
Thanks @danmoseley and will do |
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.