-
Notifications
You must be signed in to change notification settings - Fork 120
Re-work of arrays meta-data #1452
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
base: lworld
Are you sure you want to change the base?
Conversation
👋 Welcome back fparain! A progress list of the required criteria for merging this PR into |
❗ This change is not yet ready to be integrated. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Makes sense - found a typo. Are you going to check this in with UseNewCode2 or you could add a global flag for this because I think you're going to need a new one?
|
||
class ClassLoaderData; | ||
|
||
// RefjArrayKlass is the klass for arrays of references |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
you have an extra j in this.
private: | ||
// Constructor | ||
RefArrayKlass(int n, Klass *element_klass, Symbol *name, bool null_free); | ||
static RefArrayKlass *allocate(ClassLoaderData *loader_data, int n, Klass *k, Symbol *name, bool null_free, TRAPS); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The stars go with the types, ie ClassLoaderData* loader_data.
@fparain this pull request can not be integrated into git checkout array_klasses
git fetch https://git.openjdk.org/valhalla.git lworld
git merge FETCH_HEAD
# resolve conflicts and follow the instructions given by git merge
git commit -m "Merge lworld"
git push |
@fparain This pull request has been inactive for more than 8 weeks and will be automatically closed if another 8 weeks passes without any activity. To avoid this, simply issue a |
/keepalive |
@fparain The pull request is being re-evaluated and the inactivity timeout has been reset. |
|
…nto array_klasses
Fix array var handles compilation and invoke tests
…o array_klasses_cds
Fixed building CDS in non-preview mode
Since the removal of Q-types and the notion that nullability was not part of the Java type, there was an awkward situation because nullable arrays of value types and null free arrays of value types had each a different Java mirror when they were in fact supposed to have the same Java type.
In order to accommodate to the new situation, that arrays can have properties (nullability, flatness, atomicity, etc.) that are not part of their Java type, the 1-1 relationship between the *ArrayKlass and the Java mirror must be broken.
The proposed solution is to dedicate one instance of ObjArrayKlass to represent the Java type of the array in the JVM, and have this instance being the counterpart of the Java mirror of the array, and have several instances of RefArrayKlass and FlatArrayKlass that represent the refinements of the Java array type. Each RefArrayKlass/FlatArrayKlass encodes the characteristic of a Java array for a given element type and a set of properties.
Progress
Reviewing
Using
git
Checkout this PR locally:
$ git fetch https://git.openjdk.org/valhalla.git pull/1452/head:pull/1452
$ git checkout pull/1452
Update a local copy of the PR:
$ git checkout pull/1452
$ git pull https://git.openjdk.org/valhalla.git pull/1452/head
Using Skara CLI tools
Checkout this PR locally:
$ git pr checkout 1452
View PR using the GUI difftool:
$ git pr show -t 1452
Using diff file
Download this PR as a diff file:
https://git.openjdk.org/valhalla/pull/1452.diff