RFR: 8355798: Implement JEP 514: Ahead-of-Time Command Line Ergonomics [v12]
Erik Joelsson
erikj at openjdk.org
Fri May 23 13:15:58 UTC 2025
On Fri, 23 May 2025 04:31:39 GMT, Ioi Lam <iklam at openjdk.org> wrote:
>> This is the implementation of the draft [JEP: Ahead-of-time Command Line Ergonomics](https://bugs.openjdk.org/browse/JDK-8350022)
>>
>> - Implemented new flag `AOTCacheOutput`, which can be used to create an AOT cache using the "one-command workflow"
>> - Added processing of the `JDK_AOT_VM_OPTIONS` environment variable that can supply extra VM options when creating an AOT cache
>> - Added `%p` substitution for `AOTCache`, `AOTCacheOutput`, and `AOTConfiguration` options
>>
>> Please see the [JEP](https://bugs.openjdk.org/browse/JDK-8350022) and [CSR](https://bugs.openjdk.org/browse/JDK-8356010) for detailed specification.
>>
>> Examples:
>>
>>
>> # Create an AOT cache with a single command:
>> $ java -cp HelloWorld.jar -XX:AOTMode=record -XX:AOTCacheOutput=foo.aot HelloWorld
>> Hello World
>> Temporary AOTConfiguration recorded: foo.aot.config
>> Launching child process /usr/bin/java to assemble AOT cache foo.aot using configuration foo.aot.config
>> [...]
>> Reading AOTConfiguration foo.aot.config and writing AOTCache foo.aot
>> AOTCache creation is complete: foo.aot 10240000 bytes
>>
>> # Create logging file for the AOT cache assembly phase
>> $ export AOT_TOOL_COMMAND=-Xlog:cds:file=log.txt
>> $ java -cp HelloWorld.jar -XX:AOTMode=record -XX:AOTCacheOutput=foo.aot HelloWorld
>>
>>
>> Note: the child process is launched with Java API because the HotSpot native APIs are not sufficient (no way to set env vars for child process).
>
> Ioi Lam has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 28 commits:
>
> - Fixed merge
> - Merge branch 'master' into 8355798-implement-leyden-ergo-jep-8350022
> - @erikj79 comments -- makefile indentation
> - Fixed merge
> - @erikj79 comments
> - Merge branch 'master' into 8355798-implement-leyden-ergo-jep-8350022
> - @vnkozlov comments
> - added info about JTREG/AOT_JDK testing
> - fixed whitespace
> - Merge branch 'master' into 8355798-implement-leyden-ergo-jep-8350022
> - ... and 18 more: https://git.openjdk.org/jdk/compare/fdda7661...de16fdbd
Marked as reviewed by erikj (Reviewer).
-------------
PR Review: https://git.openjdk.org/jdk/pull/24942#pullrequestreview-2864370912
More information about the core-libs-dev
mailing list