On Tue, 1 Jul 2025 23:03:32 GMT, Chen Liang <li...@openjdk.org> 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:
> 
>   Stage

Turns out the current class initializer annotation is still quite restricted to 
MH - this means we will for now not merge this with the runtime setup 
annotation. I also added verification in classFileParser for runtimeSetup 
annotated methods.

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

PR Comment: https://git.openjdk.org/jdk/pull/25922#issuecomment-3025824157

Reply via email to