-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Closed
Labels
Cost:XLWork that requires one engineer more than 4 weeksWork that requires one engineer more than 4 weeksPriority:1Work that is critical for the release, but we could probably ship withoutWork that is critical for the release, but we could probably ship withoutTeam:LibrariesUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-System.Numerics
Milestone
Description
In .NET 7, we will stabilize the API surface area and implementations for Generic Math features.
Prerequisites
- Ensure the C++/CLI compatibility issue with static abstracts in interfaces has been addressed
- Partner with the WPF team to ensure that fix has been integrated and validated
- Confirm Native AOT scenarios work with static abstract interface members on primitive types
- Confirm Mono AOT scenarios work with static abstract interface members on primitive types
Work Items
- [Mono] implement static virtual methods in interfaces support #49904 Ensure mono is compatible with static abstracts in interfaces
- Crossgen2 support for static virtual method resolution #54063
- Implement new generic math operator interfaces in System.Numeric types #58162
- Add reciprocal and SinCos methods to IFloatingPoint #58607
- Use generic math in System.Numerics.Vectors test utils #60365
- [API Proposal]: Generic math Assign operators #60536
- Cannot understand the API design of Generic Math INumber.Create[XXXX] methods #62296
- Add default method support to virtual statics #64717
Language Features
- [Proposal]: Checked Operators csharplang#4665
- [Proposal]: Relaxing shift operator requirements csharplang#4666
- [Proposal]: Unsigned right shift operator csharplang#4682
- [Open issue]: static abstract interfaces and static classes csharplang#5783
- Default Interface Methods support
- Runtime (@davidwrighton)
- Mainline scenarios
- Allowing overrides within the interfaces (not required for Preview 4)
- Compiler (@AlekseyTs)
- Runtime (@davidwrighton)
- nint vs IntPtr differences (@tannergooding)
- self constraint (this language feature is not approved at this time)
Acceptance Criteria
- Present the feature set at the MVP summit to solicit feedback (@MadsTorgersen)
- Consider moving the advanced interfaces into a namespace other than
System - Consider making interface implementations implicit
- Reference APIs are integrated into System.Runtime without the need for the System.Runtime.Experimental package installation
- The
[RequiresPreviewFeatures]attribute is removed from all Generic Math APIs - Propose and implement a Roslyn Analyzer for spotting IntPtr vs. nint behavioral differences to highlight the altered behavior
- Partner with ecosystem package authors to garner feedback on the APIs
- Validate usability in F#
- Author a blog post / demo
Community Validation
The following community members and products will be contacted for validation of compatibility with this feature set. We will aim for validation from them before Preview 4 ships.
- ILSpy
- dotPeek
- source.dot.net
-
Unity - Profilers
SupinePandora43, Rekkonnect, hez2010 and wzchuaGalaxiaGuy
Metadata
Metadata
Assignees
Labels
Cost:XLWork that requires one engineer more than 4 weeksWork that requires one engineer more than 4 weeksPriority:1Work that is critical for the release, but we could probably ship withoutWork that is critical for the release, but we could probably ship withoutTeam:LibrariesUser StoryA single user-facing feature. Can be grouped under an epic.A single user-facing feature. Can be grouped under an epic.area-System.Numerics