-
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
Add NET 8.0 target to Microsoft.Bcl.Memory package #104185
Comments
Tagging subscribers to this area: @dotnet/area-system-memory |
CC @stephentoub |
@tarekgh would you mind providing a link or some minimal information about this new type? Tried searching for it on the docs page but it doesn't seem to be there yet. I see one type with that name but its in an Azure namespace: |
@julealgon This is a brand new type, and the documentation has not yet been ported to the public portal. You can refer to the in-code documentation available at Base64Url documentation in the code. The triple-slash comments there will be the ones eventually ported to the public documentation. CC @buyaa-n |
So there's a bit of a cost/benefit analysis to consider here. The current netstandard implementation works on |
I believe it would only need a copy of the internal members of the |
Description
.NET 9.0 introduced
Base64Url
, and we are providing a polyfill for this type inMicrosoft.Bcl.Memory
to enable its use in earlier versions of .NET. TheBase64Url
implementation in .NET 9.0 leverages vectorization for improved performance. However, the polyfill implementation does not use vectorization, as it is not available in older framework versions. Although vectorization is possible in .NET 8.0,Microsoft.Bcl.Memory
does not currently target .NET 8.0 specifically. When usingMicrosoft.Bcl.Memory
on .NET 8.0, the polyfill implementation without vectorization is used. This issue tracks the addition of a .NET 8.0 target toMicrosoft.Bcl.Memory
, which will enable vectorization as well.A quick test indicates that the current implementation, which uses vectorization, relies on the internal members of the public
Ascii
class:VectorContainsNonAsciiChar
,ExtractAsciiVector
,StoreVectorAndZip
,Load4xVector128AndUnzip
, andShuffleUnsafe
. These members need to be refactored to enable their use when targeting .NET 8.0.Reproduction Steps
Run any test app on .NET 8.0 with referencing
Microsoft.Bcl.Memory
.Expected behavior
Vectorization should be used
Actual behavior
No Vectorization is used
Regression?
No
Known Workarounds
Target .NET 9.0 instead.
Configuration
.NET 8.0
Other information
No response
The text was updated successfully, but these errors were encountered: