On Wed, 2 Jul 2025 18:47:58 GMT, Chen Liang <[email protected]> wrote:
>> I have updated this patch to avoid a redundant `runtimeSetup` annotation -
>> we have agreed that the requirement for setup is a side effect of
>> initialization, and such methods in AOTCI classes must be automatically
>> recognized. This latest revision implements that model.
>>
>> I intentionally avoided handling Class and ClassLoader `resetArchivedStates`
>> and `MethodType::assemblySetup` - we talked about a generic
>> `assemblyCleanup` method, but I did not find out where is the best place to
>> call such a method in the assembly phase. We cna handle this in a subsequent
>> patch.
>>
>> In particular, please review the new AOT.md design document - I split it
>> from the AOTCI annotation to prevent jamming; we can put general AOT
>> information there when we have more AOT-specific annotations.
>>
>> ---
>>
>> Old description:
>> Currently, the list of classes that have <clinit> interdependencies and
>> those that need runtimeSetup are maintained in a hardcoded list in CDS. This
>> makes it risky for core library developers as they might introduce new
>> interdependencies and observe CDS to fail. By moving the mechanism of these
>> lists to core library annotations as a first step, we can gradually expose
>> the AOT contracts as program semantics described by internal annotations,
>> and also helps us to explore how we can expose these functionalities to the
>> public later.
>
> Chen Liang has updated the pull request incrementally with one additional
> commit since the last revision:
>
> Documentation
src/hotspot/share/classfile/classFileParser.cpp line 2684:
> 2682: if (name != vmSymbols::runtimeSetup() || signature !=
> vmSymbols::void_method_signature() ||
> 2683: !access_flags.is_private() || !access_flags.is_static()) {
> 2684: classfile_parse_error("Incorrect runtimeSetup method declaration
> in class file %s", CHECK_NULL);
Error message should be more specific:
"AOTRuntimeSetup annotation requires the method to be static private void
runtimeSetup() for class %s"
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/25922#discussion_r2181200542