On Mon, 21 Jul 2025 21:08:13 GMT, Chen Liang <li...@openjdk.org> wrote:

> > heapShared.cpp contains a list of hard coded classes & fields for archiving 
> > the initialized states in CDS archive. With the support for using 
> > annotation for pre-init being added to the mainline, the support can be 
> > applied to those classes as well.
> 
> I have looked into that; there is some difficulty, in particular, there are a 
> lot of special handling for LMF classes, such as setting the protection 
> domain, which distinguishes them from the LF/String concat classes. Since 
> this is not as pure a migration, I am planning to do as a separate task; most 
> likely, the string concat classes would be taken as the general hidden class 
> template (which works for hidden classes like pattern matching, not sure 
> about MethodHandleProxies, which also have publicly accessible instances like 
> LMF)

SG.

> 
> > There could be cases where AOTC is not enabled but CDS or heap archiving 
> > with pre-initialization is enabled, it's good to consider more general 
> > naming for the annotations rather than using AOT-only-context based 
> > annotations, like `AOTSafeClassInitializer` and `AOTRuntimeSetup`.
> 
> Now we are using the term AOT not only to describe code compilation (like 
> JIT), but for general preprocessing, like jlink. So the term AOT is suitable.

Ok, that seems reasonable then.

> 
> > As discussed during Leyden/premain meetings, there are classes/fields that 
> > are not suitable for pre-init and caching, such as Thread, Random, System, 
> > etc. We want to annotate or mark them so AOTC or CDS archiving ensures 
> > those states are not cached.
> 
> Also considered for a future patch. This relates to your safeguard proposal; 
> we might add the safeguard implementation together with the warning 
> annotation.

SG.

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

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

Reply via email to