RFR: 8255493: Support for pre-generated java.lang.invoke classes in CDS dynamic archive [v11]

Yumin Qi minqi at openjdk.java.net
Thu Apr 29 22:30:40 UTC 2021


> Hi, Please review
> 
>   When do dynamic dump, the pre-generated lambda form classes from java.lang.invoke are not stored in dynamic archive. The patch will regenerate the four holder classes, 
>      "java.lang.invoke.Invokers$Holder",
>      "java.lang.invoke.DirectMethodHandle$Holder",
>      "java.lang.invoke.DelegatingMethodHandle$Holder",
>      "java.lang.invoke.LambdaForm$Holder"
>   which will include the versions in static archive and new loaded functions all together and stored in dynamic archive. New test case added.
>   (Minor change to PrintSharedArchiveAtExit, which the index is not consecutive)
> 
>   Tests: tier1,tier2,tier3,tier4
>   
>   Thanks
>   Yumin

Yumin Qi 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 16 additional commits since the last revision:

 - Changed DynamicArchive::dump as static counterpart. Suppressed exceptions in LambdaFormInvokers::regenerate_holder_classes except for oom
 - Merge branch 'master' into jdk-8255493
 - Merge branch 'master' of ssh://github.com/yminqi/jdk into jdk-8255493
 - Only store four lambda invoker (which will be regenerated in dynamic dump) lines in static archive
 - Removed TRAP from regenerate_holder_classes, also correct SharedLambdaDictionaryPrinter index
 - Merge branch 'master' into jdk-8255493
 - Restore filemap.[ch]pp
 - Remove unnecessary file header including
 - Removed unused function static_archive_invokers(), add back accidentally deleted empty line
 - Changed DEBUG_ONLY to log_debug, make small changes for format, added bug tag to test
 - ... and 6 more: https://git.openjdk.java.net/jdk/compare/ca9b4f7b...0846f121

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

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/3611/files
  - new: https://git.openjdk.java.net/jdk/pull/3611/files/05a7ca93..0846f121

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=3611&range=10
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=3611&range=09-10

  Stats: 2388 lines in 80 files changed: 1802 ins; 389 del; 197 mod
  Patch: https://git.openjdk.java.net/jdk/pull/3611.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/3611/head:pull/3611

PR: https://git.openjdk.java.net/jdk/pull/3611


More information about the hotspot-dev mailing list