-
Notifications
You must be signed in to change notification settings - Fork 4.8k
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
Unify CoreLib/System.Runtime.Numerics formatting/parsing code #28657
Comments
Hi, is this still open? What's needed on this? |
Yes
The file The work here is to rationalize the difference and get to a point where the System.Runtime.Numerics library (which is currently including the former) can instead include the latter, and do so without negatively impacting the performance of code currently using the latter. |
@nabeelvalley want to take a shot at this work? |
@danmosemsft / @stephentoub I'd like to look at it, still a little unclear about what exactly is needed though, and also what background knowledge/info would I need to work on this? |
@nabeelvalley its pretty much what's described above. You could take a look at the code mentioned maybe. For a first contribution though, you could look at a smaller change if you want to ? There are a lot of issues marked "up for grabs" you could choose from. |
Hi @danmosemsft , thanks, I've taken a look and it seems a bit out of my depth at the moment, but I will look at what else is around |
@nabeelvalley ok, not a problem, hope to see you elsewhere in the repo! |
Tagging subscribers to this area: @tannergooding |
@stephentoub is that still the case with the consolidated repo? |
Yup |
Looking at this. |
It does help a lot to fold into CoreLib, but it doesn't sound correct that anything numeric related are required to be in CoreLib to get best performance. Currently blockers to compile
|
It is likely always going to be the case that internal implementation details of corelib can be utilized to eek out the best perf. For example, you mention FastAllocateString: that will never be exposed publicly, because it's an implementation detail of creating a mutable System.String that's written to and then published for immutable consumption. The public version of that is
Work here could include refactoring to split the file into pieces compiled into both assemblies and pieces that are unique to one or the other. It could also (if feasible) involve changing portions of the BigInteger code to sit on top of public API instead where that's possible functionally and without significantly impacting performance. |
Yep. After looking a bit more, the only required thing is |
Once upon a time it seems as though System.Runtime.Numerics forked the integer formatting/parsing code that's in CoreLib. That CoreLib code has since evolved, and is also now being mirrored to corefx, where System.Runtime.Numerics could include it rather than maintaining its own copy.
cc: @tannergooding
The text was updated successfully, but these errors were encountered: