-
-
Notifications
You must be signed in to change notification settings - Fork 313
Move Java wrappers to FFM using jextract and java 25 #5957
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
mattjala
left a comment
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.
Unused methods should be removed from VLDataConverter.java
convertSingleElementFromHVLreadVLStringsreadVLStringsFromAttribute
convertSingleElementImmediately should have the deprecated tag removed and the comment changed, because "the two-phase approach" (convertFromHVL) internally uses this routine. (convertFromHVL -> convertRawDataToArrayList -> convertRawDataToNestedVLList -> convertNestedVLImmediately -> convertSingleElementImmediately).
This entire file should be more closely examined in the future, since it seems to have been written under false ideas about H5Treclaim, but this minimal set of simple changes should be done now.
Agreed. VL usage with FFM is complicated. I have a lot more archive docs about this, I will review it to see what was done and the thinking behind this before making a decision. Oh there is one issue here that is being ignored, which we need to decide; H5A/D has implemented write_VLStrings functions but not read_VLStrings. That is what those functions are for. I guess instead i=of deleting the unused functions I should implement the read functions that use them. |
What false ideas in particular? |
Multiple comments indicate that it's written 'defensively' with regards to vlen memory, as though the library itself were at risk of calling |
I think you need to consider it from the FFM viewpoint - direct memory access is the problem after H5Treclaim is called. That is the reason for copying the data to a Java container and not assuming the raw memory will still be accessible. |
FFM build requires Java 25, Jextract 25. Generates FFM bindings during configure. JNI is default when the requirements are not met or can be forced. Presets added for maven and FFM - JNI is default selection. Enhanced Maven options will work with either JNI or FFM New Workflows for testing and maven uploads. Extensive documentation changes for java.
Closes #5712 Issue
Closes #5927 PR
FFM build requires Java 25, Jextract 25.
Generates FFM bindings during configure.
JNI is default when the requirements are not met or can be forced.
Presets added for maven and FFM - JNI is default selection.
Enhanced Maven options will work with either JNI or FFM
New Workflows for testing and maven uploads.
Extensive documentation changes for java.