Part 1 Proposal for JDK-8264594

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Thu Jun 10 17:28:32 UTC 2021


On 10/06/2021 18:12, leerho wrote:
> Maurizio,
> Now that you have submitted the draft PR 
> (https://github.com/openjdk/panama-foreign/pull/555 
> <https://urldefense.com/v3/__https://github.com/openjdk/panama-foreign/pull/555__;!!GqivPVa7Brio!L7IEC9nvw3-eZ1gbja21ZH_OuKDyt966kthXXAAUmcUYVu7n7B2GF_I7ib7MzKhlIjvboLw$>), 
> should I make the changes necessary to the MemoryCopy class to call 
> the /MemorySegment.copyFrom(MemorySegment src, ValueLayout 
> srcElementLayout,/
> /ValueLayout dstElementLayout)/ implemented in the PR?   -- Or should 
> I wait until it is at least in a branch?
You can go ahead and work on the changes. I will update the PR accordingly.
>
> Also, as I mentioned earlier, the TestMemoryCopy will have to be 
> rewritten to also test the byte swaps.  (and fix some of the extra 
> space errors found ).
Ok
>
> I will have to relay these changes through you as I don't have 
> permission to submit changes directly.

That's absolutely fine, no worries - as long as everything is visible on 
this list :-)

Thanks
Maurizio

>
> Lee.
>
>
>
> On Thu, Jun 10, 2021 at 9:33 AM leerho <leerho at gmail.com 
> <mailto:leerho at gmail.com>> wrote:
>
>     Also, to make the comparison more fair, we should add the user
>     ability to compute the logical offset for option 1.
>     Restating the options:
>
>      1. copyIntoArrayRaw(segment, srcOffsetBytes, long[] dstArray,
>         dstIndexLongs, dstCopyLengthLongs)
>         //For the "Logical" case, user has the option to write:
>         copyIntoArrayRaw(segment, srcOffsetLongs * 8L, long[]
>         dstArray, dstIndexLongs, dstCopyLengthLongs)
>
>      2. copyIntoArrayRaw(segment, srcOffsetBytes, long[] dstArray,
>         dstIndexLongs, dstCopyLengthLongs)
>         And
>         copyIntoArrayLogical(segment, srcOffsetLongs, long[] dstArray,
>         dstIndexLongs, dstCopyLengthLongs)
>
>      3. copyIntoArrayLogical(segment, srcOffsetLongs, long[] dstArray,
>         dstIndexLongs, dstCopyLengthLongs)
>         //For the "Raw" case, user has the option to write a compound
>         statement like:
>         copyIntoArrayLogical(segment.asSlice(srcOffsetBytes), 0,
>         long[] dstArray, dstIndexLongs, dstCopyLengthLongs)
>
>     Lee.
>
>     On Thu, Jun 10, 2021 at 1:45 AM Maurizio Cimadamore
>     <maurizio.cimadamore at oracle.com
>     <mailto:maurizio.cimadamore at oracle.com>> wrote:
>
>
>         On 10/06/2021 00:02, leerho wrote:
>         > // I think we discussed a while back that the asSlice would
>         also
>         > require a length.
>
>         Minor correction - with the new API, I don't think you need a
>         length.
>
>         There is an overload of asSlice which just takes an offset, and
>         recomputes the length automatically.
>
>         So, if you use that, combined with the static method you
>         provide, I
>         think we should be good?
>
>         copyIntoArrayLogical(segment.asSlice(srcOffsetBytes), 0, long[]
>         dstArray, dstIndexLongs, dstCopyLengthLongs)
>
>         Maurizio
>


More information about the panama-dev mailing list