Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wip Stable and unique Lambda and LambdaForm class names #791

Draft
wants to merge 1 commit into
base: openj9
Choose a base branch
from

Conversation

ThanHenderson
Copy link
Contributor

@ThanHenderson ThanHenderson commented Jun 26, 2024

This WIP patch accompanies eclipse-openj9/openj9#19763 and replaces the index number in Lambda class names with a stable hash-code, and adds a stable hash code to customized LambdaForm classes.

The intent is to enable:

  1. LambdaForms to be stored in SCC
  2. early lookup in the SCC for both Lambda and LambdaForm classes
  3. reduction or elimination of the number of class byte comparisons for Lambdas when creating ROM classes

Signed-off-by: Nathan Henderson [email protected]

@ThanHenderson
Copy link
Contributor Author

@babsingh @hangshao0 Could you guys take a look?

My main point of concern here is "uniqueness" of the uniqueIDs. The Lambda and LambdaForm class names are stable with these uniqueIDs included, and the probability of collisions is low but not impossible. This would cause issues if we are doing an early lookup to produce a class from the SCC based only on the class name. In practice, I haven't observed any collisions.

I am open to any other suggestions in how we should be generating the uniqueID.

@ThanHenderson ThanHenderson force-pushed the stable-lambda branch 4 times, most recently from 1221a9c to aafbee2 Compare July 30, 2024 14:31
This patch adds:
- a unique ID to the generated Lambda and LambdaForm class names
- MethodHandleNatives functions for checking if a Lambda or LambdaForm
class is in the SCC based on the unique ID
- early SCC-lookup for both Lambda and LambdaForm classes

Signed-off-by: Nathan Henderson [email protected]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant