Skip to content

Conversation

@graalvmbot
Copy link
Collaborator

trackAcrossLayer was equivalent to reachable, which is not enough to represent all AnalysisElement that need to be persisted.

Those missing elements were previously persisted by calls in ImageLayerSnapshot BuiltIn implementations. Those calls are now replaced by onTrackedAcrossLayer.

Other missing elements were being persisted by using recursive persist calls when persisting AnalysisElements, but those are now marked as trackedAcrossLayer.

Improving trackAcrossLayer had the side effect of registrating the dispatch table of unreachable types in the base layer. The issue is that the table is not properly installed in the base layer, so if the type becomes reachable in the application, assertion fails as we try to install it in the application, but it was supposed to be already installed.
To avoid this issue, there is now a new COMPUTED_PRIOR_LAYER that allows to reuse the dispatch table information from the previous layer while still being able to install in the next layer.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label Dec 17, 2024
@graalvmbot graalvmbot closed this Dec 17, 2024
@graalvmbot graalvmbot deleted the scoppey/GR-59009/persist-more-state branch December 17, 2024 11:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

OCA Verified All contributors have signed the Oracle Contributor Agreement.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants