RFR (14) 8235837: Memory access API refinements
Maurizio Cimadamore
maurizio.cimadamore at oracle.com
Tue Jan 14 18:30:17 UTC 2020
Another revision which addresses some additional CSR feedback:
* SequenceLayout::withElementCount should throw if new element count < 0
* MemoryLayout::hasSize should clarify that certain layout (e.g.
ValueLayout) always have a size
Webrev:
http://cr.openjdk.java.net/~mcimadamore/8235837_v3
delta from previous iteration:
http://cr.openjdk.java.net/~mcimadamore/8235837_v3_delta
javadoc
http://cr.openjdk.java.net/~mcimadamore/8235837_v3_javadoc
specdiff
http://cr.openjdk.java.net/~mcimadamore/8235837_v3_specdiff/overview-summary.html
Cheers
Maurizio
On 09/01/2020 18:36, Maurizio Cimadamore wrote:
> New revision:
>
> http://cr.openjdk.java.net/~mcimadamore/8235837_v2
>
> delta from previous iteration:
>
> http://cr.openjdk.java.net/~mcimadamore/8235837_v2_delta
>
> javadoc
>
> http://cr.openjdk.java.net/~mcimadamore/8235837_v2_javadoc
>
> specdiff
>
> http://cr.openjdk.java.net/~mcimadamore/8235837_v2_specdiff/overview-summary.html
>
>
> Cheers
> Maurizio
>
> On 09/01/2020 14:36, Maurizio Cimadamore wrote:
>> Hi,
>> following the JEP 370 code review and CSR, certain comments that have
>> not been addressed have been added to the tracker issue:
>>
>> https://bugs.openjdk.java.net/browse/JDK-8235837
>>
>> For further evaluation. After some discussion in the Panama channel
>> (see [1] and [2]), the Panama team has come to the following
>> conclusions:
>>
>> * the MemoryAddress::offset(long) method should be renamed to
>> MemoryAddress::addOffset(long)
>> * the MemorySegment::isAccessible() predicate should be dropped and
>> replaced with the MemorySegment::ownerThread() accessor
>> * a new predicate should be added to MemoryLayout, namely
>> MemoryLayout::hasSize() to allow clients to establish as to whether a
>> layout contains some unsized parts
>> * a new method should be added to SequenceLayout, namely
>> SequenceLayout::withElementCount, to create a new sequence layout
>> with new element count
>> * 2 new helper methods should be added to MemoryLayout, namely:
>> - MemoryLayout::map - to allow transformation of a layout into a
>> new layout (by replacing the sub-layout at given path with a new layout)
>> - MemoryLayout::select - to allow selection of a sub-layout given
>> a layout path
>>
>> Overall, we think this set of change strikes a good compromise
>> between usability, readability and minimality.
>>
>> The javadoc for the layout path-accepting methods (both old and new
>> ones) has been significantly refactored and improved - and the
>> toplevel javadoc section on layout paths has been enhanced to cover
>> all the concepts. The implementation for these methods has also been
>> consolidated greatly, which revealed subtle bugs in the old
>> implementation which have now been rectified (new tests have been
>> added).
>>
>> Webrev is available here:
>>
>> http://cr.openjdk.java.net/~mcimadamore/8235837/
>>
>> Specdiff for changes here:
>>
>> http://cr.openjdk.java.net/~mcimadamore/8235837_specdiff/overview-summary.html
>>
>>
>> A draft CSR for this issue is available here (I will finalize once
>> the review converges on the API changes):
>>
>> https://bugs.openjdk.java.net/browse/JDK-8236853
>>
>> I plan to push this to JDK 14 under the late enhancement process [3].
>>
>> Cheers
>> Maurizio
>>
>> [1] -
>> https://mail.openjdk.java.net/pipermail/panama-dev/2019-December/006873.html
>> [2] -
>> https://mail.openjdk.java.net/pipermail/panama-dev/2019-December/006885.html
>> [3] - https://openjdk.java.net/jeps/3#Late-Enhancement-Request-Process
>>
>>
>>
>>
>>
More information about the core-libs-dev
mailing list