Skip to content

Conversation

@byrnHDF
Copy link
Contributor

@byrnHDF byrnHDF commented Oct 30, 2025

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.

Copy link
Contributor

@mattjala mattjala left a 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

  • convertSingleElementFromHVL
  • readVLStrings
  • readVLStringsFromAttribute

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.

@github-project-automation github-project-automation bot moved this from To be triaged to In progress in HDF5 - TRIAGE & TRACK Nov 3, 2025
@byrnHDF
Copy link
Contributor Author

byrnHDF commented Nov 3, 2025

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.

@byrnHDF
Copy link
Contributor Author

byrnHDF commented Nov 3, 2025

since it seems to have been written under false ideas about H5Treclaim

What false ideas in particular?

@mattjala
Copy link
Contributor

mattjala commented Nov 3, 2025

since it seems to have been written under false ideas about H5Treclaim

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 H5Treclaim at any time. As I understand it, this isn't true, since H5Treclaim() would pass through the java wrappers like everything else.

@byrnHDF
Copy link
Contributor Author

byrnHDF commented Nov 3, 2025

Multiple comments indicate that it's written 'defensively' with regards to vlen memory

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.

@byrnHDF byrnHDF requested a review from epourmal as a code owner November 3, 2025 22:11
@nbagha1 nbagha1 added this to the Release 2.0.0 milestone Nov 4, 2025
@lrknox lrknox merged commit b754dcb into HDFGroup:develop Nov 4, 2025
322 of 330 checks passed
@github-project-automation github-project-automation bot moved this from In progress to Done in HDF5 - TRIAGE & TRACK Nov 4, 2025
@byrnHDF byrnHDF deleted the develop-jextract25 branch November 5, 2025 13:25
christian-wojek pushed a commit to christian-wojek/hdf5 that referenced this pull request Nov 8, 2025
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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

Move Java wrappers to FFM

6 participants