RFR JDK-8223347 Integration of Vector API (Incubator): Java API, implementation, and tests
Chris Hegarty
chris.hegarty at oracle.com
Mon Jul 13 18:01:58 UTC 2020
> On 1 Apr 2020, at 23:46, Paul Sandoz <paul.sandoz at oracle.com> wrote:
>
> Hi,
>
> A prior email sent out a request for review of the Vector API in preparation for JEP 338: Vector API (Incubator) [1] to be proposed for target:
>
> https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-March/065345.html <https://mail.openjdk.java.net/pipermail/core-libs-dev/2020-March/065345.html>
>
> This email expands the review of the API to the Java implementation and Java tests:
>
> http://cr.openjdk.java.net/~psandoz/panama/JDK-8223347-vector-api-integration-java/jdk_src_webrev/webrev/ <http://cr.openjdk.java.net/~psandoz/panama/JDK-8223347-vector-api-integration-java/jdk_src_webrev/webrev/>
>
> http://cr.openjdk.java.net/~psandoz/panama/JDK-8223347-vector-api-integration-java/jdk_test_webrev/webrev/ <http://cr.openjdk.java.net/~psandoz/panama/JDK-8223347-vector-api-integration-java/jdk_test_webrev/webrev/>
Overall the code seems very well structured, very repetitive (similar to any of these implementations that are generated from templates). From what I know of the concepts, the approach seems sound and clearly deliberate (with performance in mind).
The API surfaces seems large at first glance (and it is), but once the reader gets the concepts clear in their head I think it kinda works well (albeit obviously low-level).
I’m happy to see the use of asserts in several places the code. I know that they are not always enabled, but they are at least in our testing.
There are a bunch of FIXMEs in AbstractMask which look like they could be (easily?) resolved, but maybe they need perf analysis before doing that?
Silly repetitive typo in the X-Vector.java template spills into several javadocs, so I cannot resist:
* This is not a full-service named operation like
* {@link #add(Vector) add}. A masked ****version of****
* version of this operation is not directly available
* but may be obtained via the masked version of
* {@code lanewise}.
-Chris.
More information about the core-libs-dev
mailing list