On Tue, 23 Sep 2025 19:12:27 GMT, David Beaumont <[email protected]> wrote:

>> Adds support for writing preview related flags into jimage files.
>> 
>> Preview mode is complex. It's not nearly as simple as "does something in 
>> /modules/xxx/... have an entry in /modules/xxx/META-INF/preview/...".
>> 
>> Specific issues include:
>> 1. Supporting preview-only resources without forcing a double lookup on 
>> everything.
>> 2. Changing the set of entries in /packages/xxx directories to account for 
>> preview only packages in some modules.
>> 3. Minimising the work done during image reader initialization to only need 
>> to process the small number of preview resources (rather than scanning the 
>> whole file to look for them).
>> 
>> The new flags added by this code address these issues, but calculating them 
>> correctly with only minor adjustments to the existing code was not feasible, 
>> it just became a lot larger and very complex.
>> 
>> To address this, a new type (ModuleReference) is introduced to track and 
>> then merge information about packages seen in each module. This allows a 
>> much simpler inner loop for processing resource paths when building the node 
>> tree, combined with a subsequent merging stage to produce the final package 
>> information for each module.
>> 
>> Not that since ModuleReference is needed during jimage reading, that class 
>> is already present in the previous PR on which this is based, but it starts 
>> to be used to calculate the module flags in this PR.
>> 
>> This PR can also adds the ImageReader unit tests for preview mode, which 
>> rely on being able to generate jimage files with preview mode flags in.
>> 
>> Compare and review this against 
>> https://github.com/openjdk/valhalla/pull/1613.
>> 
>> https://github.com/openjdk/valhalla/pull/1615/commits/28eae40aa9a3f8520519d79d7749b5a4b3511609
>
> David Beaumont has refreshed the contents of this pull request, and previous 
> commits have been removed. The incremental views will show differences 
> compared to the previous content of the PR. The pull request contains seven 
> new commits since the last revision:
> 
>  - add system property guard to preview mode
>  - jimage writer changes to support preview mode.
>    
>    * Remove TODOs now jimage version is bumped
>    * jimage writer changes to support preview mode.
>  - Word smithing flags definitions.
>  - Add workaround until new image writing code is in
>  - Clarifying flag docs for /packages/xxx case
>  - Java ImageReader changes for preview mode
>  - C++ preparation for preview mode

Regenerating PR so it was a pr/xxx branch available.

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

PR Comment: https://git.openjdk.org/valhalla/pull/1615#issuecomment-3325265682

Reply via email to