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.
------------- Commit messages: - 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 - Runtime setup - Merge branch 'master' of https://github.com/openjdk/jdk into exp/cds-mh-anno - Fix - Try pass flag as annotation? Changes: https://git.openjdk.org/jdk/pull/25922/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=25922&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8360163 Stats: 454 lines in 39 files changed: 304 ins; 108 del; 42 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