[foreign-memaccess] RFR: Add MemorySegment::mismatch

Chris Hegarty chegar at openjdk.java.net
Wed May 20 14:12:07 UTC 2020


Hi,

As part of feedback on the Foreign Memory API (when experimenting with its usage internally in the JDK), a small number
of potential usability enhancements could be made to the API. This is the fourth such, and last on my current todo list.

This change proposes to add a new method:
MemorySegment::mismatch

The mismatch semantic is very useful for building equality and comparison logic on top of segments. I found that I
needed such when modeling and comparing native socket address in the JDK implementation. It is possible to write your
own, but requires a non-trivial amount of not-trivial code - to do it right! I also think that we can provide a more
efficient implementation building on top of the JDK's internal mismatch support.

I still need to do some perf testing and add a micro-benchmake ( Maurizio suggested possibly amending TestBulkOps ).
There is also the question about possibly improving the JDK's internal implementation to work on long sizes (which
could be done separately). For now, I just want to share the idea, along with the proposed specification and initial
implementation.

Comments welcome.

-------------

Commit messages:
 - Initial mismatch implementation

Changes: https://git.openjdk.java.net/panama-foreign/pull/180/files
 Webrev: https://webrevs.openjdk.java.net/panama-foreign/180/webrev.00
  Stats: 311 lines in 4 files changed: 311 ins; 0 del; 0 mod
  Patch: https://git.openjdk.java.net/panama-foreign/pull/180.diff
  Fetch: git fetch https://git.openjdk.java.net/panama-foreign pull/180/head:pull/180

PR: https://git.openjdk.java.net/panama-foreign/pull/180


More information about the panama-dev mailing list