Skip to content

Conversation

graalvmbot
Copy link
Collaborator

@graalvmbot graalvmbot commented May 13, 2025

Adds extended Dynamic Object Model Layout that adds:
* A shape obsolescence strategy enabling optimistic type speculation for primitive property values with gradual migration to more general shapes on speculation failure (moving primitive slots to reference slots), eventually converging on a general enough shape tree. Reduces shape polymorphism by obsoleting and merging too specific shapes in favor of more general shapes.
* Automatic reference type tracking based on assumptions, eliminating redundant type checks.
* Automatic single-assignment tracking based on assumptions allowing languages to assume that a property is effectively final (i.e. stays unchanged after the initial assignment) as well as constant-fold values of a constant receiver with a known shape.
* You can still disable the new layout and switch back to the previous implementation using the system property:
-Dtruffle.object.LayoutFactory=com.oracle.truffle.api.object.CoreLayoutFactory.

@oracle-contributor-agreement oracle-contributor-agreement bot added the OCA Verified All contributors have signed the Oracle Contributor Agreement. label May 13, 2025
@graalvmbot graalvmbot force-pushed the aw/dynamicobject_layout branch from 830f4b9 to 76c0d49 Compare May 13, 2025 19:12
@graalvmbot graalvmbot closed this May 16, 2025
@graalvmbot graalvmbot merged commit 3f079a0 into master May 16, 2025
12 of 13 checks passed
@graalvmbot graalvmbot deleted the aw/dynamicobject_layout branch May 16, 2025 08:42
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.

2 participants