[GR-71226] [GR-75039] [GR-75091] Allow class initialization in standalone analysis#13625
Open
graalvmbot wants to merge 4 commits into
Open
[GR-71226] [GR-75039] [GR-75091] Allow class initialization in standalone analysis#13625graalvmbot wants to merge 4 commits into
graalvmbot wants to merge 4 commits into
Conversation
1da35bc to
929e767
Compare
929e767 to
2a88766
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR turns standalone analysis into a build-time-heap-driven flow that can safely request class initialization while still degrading cleanly for runtime-only or failed classes. The main implementation work is in the standalone host, constant-reflection, and heap-scanning layers, together with the Espresso VMAccess and worker-thread fixes needed to keep the Espresso-backed path reliable.
It also folds standalone onto one semantic model instead of separate conservative vs build-time-heap modes, expands the standalone test suite substantially, and cleans the large reachability fixture so it contains only entry points that standalone can actually consume in both host and Espresso configurations.
Summary
reach-20000entrypoint file to the resolvable roots only and drop the now-unneeded standalone reachability-profile testFinal commit shape
Implement standalone build-time heap analysiscore standalone implementation: host / class-init plugin / VMAccess support / constant reflection / heap scanning / unsupported guest object handling / common-pool fix / timer and reporting hooks
Expand standalone analysis coverage and test wiringstandalone test fixtures, host+espresso wrapper updates, reachability resources, and the extended standalone test suite
Refresh standalone workflow guidancestandalone AGENTS / workflow notes only
Refine standalone analysis review follow-upsreview-driven cleanup of the object-constant hook shape, standalone options/reporting wording, VMAccess bootstrap, and standalone test launcher support for experiment options
Prune standalone large reachability fixturesremove dead / duplicate / malformed
reach-20000entrypoints and delete the supersededJdkReachabilityProfileTestKey implementation points
PointsToAnalyzer,StandaloneHost,StandalonePointsToAnalysis, andStandaloneClassInitializationPluginnow own the standalone class-initialization flow and root-management behaviorStandaloneFieldValueAvailabilitySupport,StandaloneHostedValuesProvider,StandaloneConstantReflectionProvider, andStandaloneImageHeapScannernow share one standalone policy for field-value availability and shadow-heap vs original-provider readsMethodTypeFlowBuildernow asksHostVMfor an object-constant handler; standalone plugs inStandaloneObjectConstantHandlertogether withStandaloneUnsupportedGuestObjectSupportso unsupported guest metadata is intercepted early without forking the SVM / EE builder hierarchyStandaloneVMAccessSupportandStandaloneCommonPoolWorkerThreadFactorycarry the Espresso-specific VMAccess / worker setup needed by standalone analysisObjectScannerandGuestElementswere updated so standalone diagnostics use guest-aware identity /toString()handling instead of host unwrappingCurrent status
LargeReachabilityTest#testReachabilityOver20000Methodsnow reads all listed roots in both backends:5466/5466for host and5466/5466for Espresso