Native Image Committer Community Meeting 2021-12-16 #4130
Unanswered
christianwimmer
asked this question in
Show and tell
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
List of all past and upcoming meetings: #3933
New and Noteworthy
Feature freeze for GraalVM 22.0 was on November 26, still possible to merge bugfixes for a few weeks.
JDK 8 support is going to be deleted. Working through the whole GraalVM gate #system to remove JDK 8 ##gates.
e02fcc1 Will be merged before Christmas. Really ;-)
New user-friendly build output:
[GR-33602] [RFC] More User-friendly Output for Native Image #3955
[GR-33602] Improve and fix ProgressReporter (#3955). #4066
[GR-33602] Bugfixes and improvements for ProgressReporter (#3955). #4100
[GR-33602] Additional bugfixes for ProgressReporter (#3955). #4106
[GR-33602] [GR-35238] [GR-35714] Additional bugfixes for ProgressReporter (#3955). #4123
Module system support:
[GR-34444] Replicate hosted module relations in runtime boot module layer #3991
[GR-34740] [GR-34739] Implement ResourcesFeature Module awareness. #4007
Support showing module names in stack traces #4056
[GR-35630] Ensure modules from module path can resolve their system module dependencies. #4110
Compatibility improvements:
[GR-34703] Sealed classes support #3979
8781e80
UseReferenceHandlerThread
will betrue
by default soon to avoid deadlocks.07a0c3f Proper
getStackAccessControlContext
implementationJFR support:
Adding support for JFR ExecutionSample event. #4005
[GR-35806] Support Flight Recorder at image build time. #4125
Refactor Jfr into core and hosted #3746 Merging blocked by JDK 8 removal
Image size reduction:
[GR-35117] Avoid pulling File and URL code in image via CodeSource.location. #4032 Uses static analysis reachability information to remove unnecessary code paths.
Other
[GR-21865] Introduce copy-on-write image heap provider on Windows. #4051
[GR-34935] Run escape analysis before static analysis. #3993
More usages of FactoryMethod #4085: Factory method are synthetic methods that combine allocation and constructor invocation
e59968c and e26fa71: Certain GC arguments need to be parsed when isolate is created. Also, custom prologues/epilogues/handlers for
CEntryPoint
methods need to be explicitlyUninterruptible
MacOS-AArch64 support:
[GR-31170] Add some AArch64 Windows and Darwin features. #3864
Fix fstat call in darwin-aarch64. #4107
Continuations:
[GR-34749] Continuation support independent of Project Loom. #4114
Deep Dive: New and improved heap scanning
Current approach:
Image heap writing found a class not seen during static analysis.
errorBetter approach: Scan and snapshot heap gradually and concurrently during analysis
jdk.internal.access.SharedSecrets
lazy fields inSecurityServicesFeature
ImageHeapMap
ConcurrentHashMap
at build time automatically transformed intoEconomicMap
for run time-H:HeapVerifierVerbosity=1
)Current status
Code structure
The heap snapshot
com.oracle.graal.pointsto.heap.ImageHeap
com.oracle.graal.pointsto.heap.ImageHeap.ImageHeapObject
ImageHeapObject
wraps the originalJavaConstant
and holds an array of referenced values (either fileds or array elements)ImageHeapObject
is created when a constant value is found as reachable by theImageHeapScanner
The heap scanner
com.oracle.graal.pointsto.heap.ImageHeapScanner
com.oracle.graal.pointsto.heap.ImageHeapScanner#scanEmbeddedRoot
com.oracle.graal.pointsto.heap.ImageHeapScanner#onFieldRead
com.oracle.graal.pointsto.heap.TypeData
)com.oracle.graal.pointsto.heap.ImageHeapScanner#rescanRoot
com.oracle.graal.pointsto.heap.ImageHeapScanner#rescanField
com.oracle.graal.pointsto.heap.ImageHeapScanner#rescanObject
The heap snapshot verifier
com.oracle.graal.pointsto.heap.HeapSnapshotVerifier
com.oracle.graal.pointsto.heap.HeapSnapshotVerifier#verifyHeapSnapshot
com.oracle.graal.pointsto.ObjectScanningObserver
and reusescom.oracle.graal.pointsto.ObjectScanner
Future steps
Open Discussion
Possible deep dive topics for next meeting
Please send suggestions, or "upvote" a suggestion, by adding a comment to this discussion.
Beta Was this translation helpful? Give feedback.
All reactions