-
Notifications
You must be signed in to change notification settings - Fork 2.7k
CoreFX #24343 Vector Ctor using Span #16733
Changes from 1 commit
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2,7 +2,7 @@ | |
// The .NET Foundation licenses this file to you under the MIT license. | ||
// See the LICENSE file in the project root for more information. | ||
|
||
#if (!netfx && !netstandard) | ||
#if netcoreapp | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Why can't we use the existing netstandard constant here (for instance just like https://github.com/dotnet/coreclr/blob/master/src/mscorlib/shared/System/MemoryExtensions.cs#L9). There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. We discussed that here: #16733 (comment) |
||
using Internal.Runtime.CompilerServices; | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This needs to be under ifdef. Otherwise, it won't build once mirrored to CoreFX used to build the portable Vector version. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Mirroring as in, is there going to be an attempt later sometime to single-instance the copies of shared code base between CoreClr and CoreFx repos? In that case do you want me to add There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This single instancing is in place already. Once this PR is merged, there will be PR with your change created in corefx automatically: https://github.com/dotnet/coreclr/blob/master/src/mscorlib/shared/README.md We use There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. In CoreFx, we include this file when building for Also - the whole new constructor should probably be under the There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @eerhardt I again went through the csproj for CoreFx project and in there Vector.cs is included if not targetting I am not able to understand how this There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Both the You can think of
I think it should actually be under When building this code in dotnet/corefx for There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Thanks @eerhardt for the explanation. Actually what confused is me that if As for the PR, I am replacing it iwth There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
That will not compile on CoreRT and ProjectN. It would need to be more combined with more conditions there. I think There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @jkotas Thank you. I have pushed a commit that defines There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: put this after all the System.* using directives There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I thought we sort them alphabetically... There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yes, but for ones other than System (like internal), we group them separately (with system first). At least that is what I have seen (and followed) elsewhere. So, something like: using System.X;
using System.Y;
using System.Z;
using Internal.A;
using Internal.B;
using Internal.C; There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Between, this PR is already merged and closed. So perhaps we can do all this in the optimization issue along with other clean up? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Of course. That would be great. |
||
#endif | ||
using System.Globalization; | ||
|
@@ -768,6 +768,7 @@ private Vector(ref Register existingRegister) | |
this.register = existingRegister; | ||
} | ||
|
||
#if netcoreapp | ||
/// <summary> | ||
/// Constructs a vector from the given span. The span must contain at least Vector'T.Count elements. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. nit: use proper xml formatting (see
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Yup. But I kept it same like other instances in the file for consistency. E.g. here i.e. below code, /// Constructs a vector from the given array. The size of the given array must be at least Vector'T.Count.
/// </summary>
[Intrinsic]
public unsafe Vector(T[] values) : this(values, 0) { } Do we want to fix this as part of the optimization issue #16745? There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This can be addressed separately and we can make the changes to the whole file at the same time. Good point about consistency with other places in the file. |
||
/// </summary> | ||
|
@@ -796,6 +797,7 @@ public Vector(Span<T> values) | |
throw new NotSupportedException(SR.Arg_TypeNotSupported); | ||
} | ||
} | ||
#endif | ||
#endregion Constructors | ||
|
||
#region Public Instance Methods | ||
|
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.
This can defined unconditionally here. The condition is not necessary.
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.
Done!