> 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 with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 14 additional commits since the last revision: - Mark AbstractMap due to CHM - Try fix cpp code - Merge branch 'master' of https://github.com/openjdk/jdk into exp/cds-mh-anno - Scan runtimeSetup - Merge branch 'master' of https://github.com/openjdk/jdk into exp/cds-mh-anno - Name this AOTCI - Rename MHArchived to AotInitializable - Years - Can this fix? - Seems redundant - ... and 4 more: https://git.openjdk.org/jdk/compare/a904e14d...984ff268 ------------- Changes: - all: https://git.openjdk.org/jdk/pull/25922/files - new: https://git.openjdk.org/jdk/pull/25922/files/5403f602..984ff268 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=25922&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=25922&range=00-01 Stats: 8107 lines in 401 files changed: 3916 ins; 2681 del; 1510 mod Patch: https://git.openjdk.org/jdk/pull/25922.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/25922/head:pull/25922 PR: https://git.openjdk.org/jdk/pull/25922