-
Notifications
You must be signed in to change notification settings - Fork 13
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
Merge upstream vm-23.1.5 tag #41
base: master
Are you sure you want to change the base?
Merge upstream vm-23.1.5 tag #41
Conversation
(cherry picked from commit 53d6c85)
(cherry picked from commit d6fdf55)
(cherry picked from commit f130444)
… iterations. (cherry picked from commit 5ed82d2)
(cherry picked from commit 8619545)
(cherry picked from commit 1f826d9)
(cherry picked from commit 7f83468)
(cherry picked from commit bf9407d)
(cherry picked from commit fe63931)
(cherry picked from commit ae11fd2)
…ts, and benchmarks. (cherry picked from commit b48dfe0)
(cherry picked from commit 18ba383)
(cherry picked from commit e721c0a)
(cherry picked from commit 60fbbd9)
(cherry picked from commit d5df08e)
(cherry picked from commit a96d9fa)
(cherry picked from commit fd7f2f9)
(cherry picked from commit 6ecdd1e)
(cherry picked from commit 390d306)
(cherry picked from commit 9c37734)
(cherry picked from commit 950b8f3)
(cherry picked from commit 0951269)
(cherry picked from commit 64b3170)
(cherry picked from commit e3bc6ea)
(cherry picked from commit cfdd121)
…et(Node). (cherry picked from commit de2a4c2)
(cherry picked from commit 6b00d52)
…instance. (cherry picked from commit e937305)
(cherry picked from commit 117cde0)
(cherry picked from commit 75eb614)
PullRequest: graal/18931
While setting up the https://github.com/graalvm/graalvm-community-jdk21u repository and figuring out the details of how to maintain community backports, the GraalVM team pushed the `vm-23.1.4` and `vm-23.1.5` tags in the https://github.com/oracle/graal/ repository. These tags include changes not yet merged in the https://github.com/graalvm/graalvm-community-jdk21u repository whose `vm-23.1.5` deviates from that of the https://github.com/oracle/graal/ repository. This merge aims to bring in all the changes from the upstream `vm-23.1.5` reducing the differences between the Oracle GraalVM 23.1 releases and the community ones. The merge applied cleanly except for a few cases that were trivial to resolve. Two of them were related to graalvm#23. One was related to graalvm#4 supporting jdk versions < 21.0.4 while upstream does not. And the last one was related to the comment in graalvm#23.
f4b7252
to
1d52391
Compare
There are some CI issues that need to be resolved. |
IT main fails a test that's not supposed to be run with 23.1.6 (GraalVM CE 21.0.6). We perhaps we need an update there. |
|
Indeed, this is unrelated to the backport. I created quarkusio/quarkus#45873 to track it. |
Hello. Thank you for this impressive work! It is difficult to review the PR. I wanted to ensure everything is included, but even that is not an easy task :)
With
Is this duplication expected? Will it land to master this way? Thanks! |
Thanks for the review @bulasevic.
I totally understand, any suggestions to make this easier are welcome. Perhaps we will need to split it in smaller ones.
I believe this is due to the use of
and
(I suspect this has to do with some local configuration) On the other hand, running:
I am getting
Yes, the commits you mention have been backported individually and are already in |
That is interesting. Let us double-check the commit count. Using git rev-list, I found there are 941 commits in the range between 2025-01-23-sync-with-upstream-vm-23.1.5 and master: $ git clone https://github.com/zakkak/graalvm-community-jdk21u.git graal-fz |
@bulasevich can you please double check the commit hashes for both branches?
|
Can I ask you how you are porting the changes? It's not a manual cherry-pick one by one, right? Regarding the commits to be merged, I assume you're merging all of them, which seems fine. If the commits are applied smoothly, then there may not be much to review. However, it would be helpful to see how any merge conflicts are resolved, as this is where mistakes are more likely to occur. |
Right, not even an automated one :)
Correct
As mentioned in the description
not sure how I could provide more details about them, do you have any ideas? |
I see different commit hashes for master
Number of commits in between 2025-01-23-sync-with-upstream-vm-23.1.5 and a2c7ca1 is indeed 597:
But a2c7ca1 is not a commit where 2025-01-23-sync-with-upstream-vm-23.1.5 diverted from master:
It seems there is an issue with my calculation, as the pull request message states: "zakkak wants to merge 597 commits into graalvm:master from zakkak:2025-01-23-sync-with-upstream-vm-23.1.5" |
@bulasevich please use the
|
Just a thought - perhaps these changes could be put into separate PRs. |
I think you did something like this $ git clone https://github.com/zakkak/graalvm-community-jdk21u.git graalvm-fz ; cd graalvm-fz
$ git remote add oracle https://github.com/oracle/graal
$ git fetch oracle ; git fetch oracle --tags
$ git branch 2025-01-23-sync-with-upstream-vm-23.1.5 ; git checkout 2025-01-23-sync-with-upstream-vm-23.1.5
$ git merge vm-23.1.5 Here is the merge command output:
Here’s the conflict you resolved, and I agree - it’s quite straightforward. diff --cc compiler/mx.compiler/suite.py
index 0ca887ab017,654d7924de0..00000000000
--- a/compiler/mx.compiler/suite.py
+++ b/compiler/mx.compiler/suite.py
@@@ -4,8 -4,8 +4,13 @@@ suite =
"sourceinprojectwhitelist" : [],
"groupId" : "org.graalvm.compiler",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"url" : "http://www.graalvm.org/",
"developer" : {
"name" : "GraalVM Development",
diff --cc espresso/mx.espresso/suite.py
index 9c4ec91c403,7ee01415fa7..00000000000
--- a/espresso/mx.espresso/suite.py
+++ b/espresso/mx.espresso/suite.py
@@@ -23,8 -23,8 +23,13 @@@
suite = {
"mxversion": "6.44.0",
"name": "espresso",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"groupId" : "org.graalvm.espresso",
"url" : "https://www.graalvm.org/reference-manual/java-on-truffle/",
"developer" : {
diff --cc regex/mx.regex/suite.py
index e9c249e8b92,866154707c6..00000000000
--- a/regex/mx.regex/suite.py
+++ b/regex/mx.regex/suite.py
@@@ -43,8 -43,8 +43,13 @@@ suite =
"name" : "regex",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"groupId" : "org.graalvm.regex",
"url" : "http://www.graalvm.org/",
"developer" : {
diff --cc sdk/mx.sdk/suite.py
index a0432812f87,1cad3a2e0da..00000000000
--- a/sdk/mx.sdk/suite.py
+++ b/sdk/mx.sdk/suite.py
@@@ -41,8 -41,8 +41,13 @@@
suite = {
"mxversion": "6.39.0",
"name" : "sdk",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"sourceinprojectwhitelist" : [],
"url" : "https://github.com/oracle/graal",
"groupId" : "org.graalvm.sdk",
diff --cc substratevm/mx.substratevm/suite.py
index 3920dc592f8,860c641d5d3..00000000000
--- a/substratevm/mx.substratevm/suite.py
+++ b/substratevm/mx.substratevm/suite.py
@@@ -2,8 -2,8 +2,13 @@@
suite = {
"mxversion": "6.27.1",
"name": "substratevm",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"url" : "https://github.com/oracle/graal/tree/master/substratevm",
"groupId" : "org.graalvm.nativeimage",
diff --cc substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/ResourcesRegistry.java
index 323feb31e89,310f25d43b0..00000000000
--- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/ResourcesRegistry.java
+++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/ResourcesRegistry.java
@@@ -36,35 -36,6 +36,38 @@@ public interface ResourcesRegistry exte
@SuppressWarnings("unchecked")
static ResourcesRegistry singleton() {
return ImageSingletons.lookup(ResourcesRegistry.class);
++<<<<<<< HEAD
+ }
+
+ /**
+ * @deprecated Use {@link RuntimeResourceSupport#addResources(ConfigurationCondition, String)}
+ * instead.
+ */
+ @Deprecated
+ default void addResources(String pattern) {
+ addResources(ConfigurationCondition.alwaysTrue(), pattern);
+ }
+
+ /**
+ * @deprecated Use
+ * {@link RuntimeResourceSupport#ignoreResources(ConfigurationCondition, String)}
+ * instead.
+ */
+ @Deprecated
+ default void ignoreResources(String pattern) {
+ ignoreResources(ConfigurationCondition.alwaysTrue(), pattern);
+ }
+
+ /**
+ * @deprecated Use
+ * {@link RuntimeResourceSupport#addResourceBundles(ConfigurationCondition, String)}
+ * instead.
+ */
+ @Deprecated
+ default void addResourceBundles(String name) {
+ addResourceBundles(ConfigurationCondition.alwaysTrue(), name);
++=======
++>>>>>>> vm-23.1.5
}
void addClassBasedResourceBundle(ConfigurationCondition condition, String basename, String className);
diff --cc substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread/Target_java_lang_VirtualThread.java
index 6fe180ddb54,88717fa9901..00000000000
--- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread/Target_java_lang_VirtualThread.java
+++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread/Target_java_lang_VirtualThread.java
@@@ -57,20 -55,18 +57,33 @@@ public final class Target_java_lang_Vir
// Checkstyle: stop
@Alias static int NEW;
@Alias static int STARTED;
++<<<<<<< HEAD
+ @Alias //
+ @TargetElement(onlyWith = JDK21u3OrEarlier.class) static int RUNNABLE;
++=======
++>>>>>>> vm-23.1.5
@Alias static int RUNNING;
@Alias static int PARKING;
@Alias static int PARKED;
@Alias static int PINNED;
@Alias static int YIELDING;
++<<<<<<< HEAD
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int YIELDED;
+ @Alias static int TERMINATED;
+ @Alias static int SUSPENDED;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int TIMED_PARKING;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int TIMED_PARKED;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int TIMED_PINNED;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int UNPARKED;
++=======
+ @Alias static int YIELDED;
+ @Alias static int TERMINATED;
+ @Alias static int SUSPENDED;
+ @Alias static int TIMED_PARKING;
+ @Alias static int TIMED_PARKED;
+ @Alias static int TIMED_PINNED;
+ @Alias static int UNPARKED;
++>>>>>>> vm-23.1.5
@Alias static Target_jdk_internal_vm_ContinuationScope VTHREAD_SCOPE;
// Checkstyle: resume
@@@ -171,9 -167,7 +184,13 @@@
} else {
return Thread.State.RUNNABLE;
}
++<<<<<<< HEAD
+ } else if (JDK21u3OrEarlier.jdk21u3OrEarlier && state == RUNNABLE) {
+ return Thread.State.RUNNABLE;
+ } else if (JDK21u4OrLater.jdk21u4OrLater && (state == UNPARKED || state == YIELDED)) {
++=======
+ } else if (state == UNPARKED || state == YIELDED) {
++>>>>>>> vm-23.1.5
return Thread.State.RUNNABLE;
} else if (state == RUNNING) {
Object token = VirtualThreadHelper.acquireInterruptLockMaybeSwitch(this);
@@@ -201,12 -195,10 +218,19 @@@
}
} else if (state == TERMINATED) {
return Thread.State.TERMINATED;
++<<<<<<< HEAD
+ } else if (JDK21u4OrLater.jdk21u4OrLater) {
+ if (state == TIMED_PARKING) {
+ return Thread.State.RUNNABLE;
+ } else if (state == TIMED_PARKED || state == TIMED_PINNED) {
+ return Thread.State.TIMED_WAITING;
+ }
++=======
+ } else if (state == TIMED_PARKING) {
+ return Thread.State.RUNNABLE;
+ } else if (state == TIMED_PARKED || state == TIMED_PINNED) {
+ return Thread.State.TIMED_WAITING;
++>>>>>>> vm-23.1.5
}
throw new InternalError();
}
diff --cc substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/ReflectionDataBuilder.java
index 933700269ee,5c0580b05a3..00000000000
--- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/ReflectionDataBuilder.java
+++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/ReflectionDataBuilder.java
@@@ -1011,12 -1010,16 +1014,23 @@@ public class ReflectionDataBuilder exte
@Override
public void registerHeapReflectionField(Field reflectField, ScanReason reason) {
- assert !sealed;
AnalysisField analysisField = metaAccess.lookupJavaField(reflectField);
++<<<<<<< HEAD
+ if (heapFields.put(analysisField, reflectField) == null && !SubstitutionReflectivityFilter.shouldExclude(reflectField, metaAccess, universe)) {
+ registerTypesForField(analysisField, reflectField, false);
+ if (analysisField.getDeclaringClass().isAnnotation()) {
+ processAnnotationField(reflectField);
++=======
+ if (heapFields.put(analysisField, reflectField) == null) {
+ if (sealed) {
+ throw new UnsupportedFeatureException("Registering new field for reflection when the image heap is already sealed: " + reflectField);
+ }
+ if (!SubstitutionReflectivityFilter.shouldExclude(reflectField, metaAccess, universe)) {
+ registerTypesForField(analysisField, reflectField, false);
+ if (analysisField.getDeclaringClass().isAnnotation()) {
+ processAnnotationField(reflectField);
+ }
++>>>>>>> vm-23.1.5
}
}
}
diff --cc substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/AbstractJfrTest.java
index 73b95ece753,2fd9d6fb47b..00000000000
--- a/substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/AbstractJfrTest.java
+++ b/substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/AbstractJfrTest.java
@@@ -200,14 -200,8 +201,19 @@@ class JfrTestFeature implements Featur
}
@Override
++<<<<<<< HEAD
+ public void beforeAnalysis(BeforeAnalysisAccess access) {
+ /*
+ * Register proxies for event data assertion
+ *
+ * Unsigned added to be able to query RecordedObject.getLong() method, and this method
+ * checks if the value returned has the jdk.jfr.Unsigned. The jfr layer in HotSpot creates a
+ * proxy to query this information.
+ */
++=======
+ public void beforeAnalysis(Feature.BeforeAnalysisAccess access) {
+ /* Needed so that the tests can call RecordedObject.getLong(). */
++>>>>>>> vm-23.1.5
RuntimeProxyCreation.register(Unsigned.class);
}
}
diff --cc tools/mx.tools/suite.py
index 1ac09483163,387787a5a96..00000000000
--- a/tools/mx.tools/suite.py
+++ b/tools/mx.tools/suite.py
@@@ -26,8 -26,8 +26,13 @@@ suite =
"defaultLicense" : "GPLv2-CPE",
"groupId" : "org.graalvm.tools",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"url" : "http://openjdk.java.net/projects/graal",
"developer" : {
"name" : "GraalVM Development",
diff --cc truffle/mx.truffle/suite.py
index 110aaa6ba46,229c02e4aa8..00000000000
--- a/truffle/mx.truffle/suite.py
+++ b/truffle/mx.truffle/suite.py
@@@ -41,8 -41,8 +41,13 @@@
suite = {
"mxversion": "6.39.0",
"name" : "truffle",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"groupId" : "org.graalvm.truffle",
"sourceinprojectwhitelist" : [],
"url" : "http://openjdk.java.net/projects/graal",
diff --cc vm/mx.vm/suite.py
index 3913eaf82a7,4675e2f2294..00000000000
--- a/vm/mx.vm/suite.py
+++ b/vm/mx.vm/suite.py
@@@ -1,8 -1,8 +1,12 @@@
suite = {
"name": "vm",
++<<<<<<< HEAD
+ "version" : "23.1.7",
++=======
+ "version" : "23.1.5",
++>>>>>>> vm-23.1.5
"mxversion": "6.41.0",
- "release" : True,
+ "release" : False,
"groupId" : "org.graalvm",
"url" : "http://www.graalvm.org/",
diff --cc wasm/mx.wasm/suite.py
index 49728a1cd86,dc771366f8d..00000000000
--- a/wasm/mx.wasm/suite.py
+++ b/wasm/mx.wasm/suite.py
@@@ -42,7 -42,7 +42,11 @@@ suite =
"mxversion": "6.41.0",
"name" : "wasm",
"groupId" : "org.graalvm.wasm",
++<<<<<<< HEAD
+ "version" : "23.1.7",
++=======
+ "version" : "23.1.5",
++>>>>>>> vm-23.1.5
"versionConflictResolution" : "latest",
"url" : "http://graalvm.org/",
"developer" : { I suggest annotating the diff (in the PR comments) with a brief note explaining why it occurred and which merge solution was applied. I think that should be sufficient. Thank you! |
Correct (in general I use a single local repository with multiple remotes and git-worktree's to manage everything GraalVM related.)
Sounds reasonable, see below. Merge conflicts related to version mismatchResolved by rejecting theirs / diff --cc compiler/mx.compiler/suite.py
index 0ca887ab017,654d7924de0..00000000000
--- a/compiler/mx.compiler/suite.py
+++ b/compiler/mx.compiler/suite.py
@@@ -4,8 -4,8 +4,13 @@@ suite =
"sourceinprojectwhitelist" : [],
"groupId" : "org.graalvm.compiler",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"url" : "http://www.graalvm.org/",
"developer" : {
"name" : "GraalVM Development",
diff --cc espresso/mx.espresso/suite.py
index 9c4ec91c403,7ee01415fa7..00000000000
--- a/espresso/mx.espresso/suite.py
+++ b/espresso/mx.espresso/suite.py
@@@ -23,8 -23,8 +23,13 @@@
suite = {
"mxversion": "6.44.0",
"name": "espresso",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"groupId" : "org.graalvm.espresso",
"url" : "https://www.graalvm.org/reference-manual/java-on-truffle/",
"developer" : {
diff --cc regex/mx.regex/suite.py
index e9c249e8b92,866154707c6..00000000000
--- a/regex/mx.regex/suite.py
+++ b/regex/mx.regex/suite.py
@@@ -43,8 -43,8 +43,13 @@@ suite =
"name" : "regex",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"groupId" : "org.graalvm.regex",
"url" : "http://www.graalvm.org/",
"developer" : {
diff --cc sdk/mx.sdk/suite.py
index a0432812f87,1cad3a2e0da..00000000000
--- a/sdk/mx.sdk/suite.py
+++ b/sdk/mx.sdk/suite.py
@@@ -41,8 -41,8 +41,13 @@@
suite = {
"mxversion": "6.39.0",
"name" : "sdk",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"sourceinprojectwhitelist" : [],
"url" : "https://github.com/oracle/graal",
"groupId" : "org.graalvm.sdk",
diff --cc substratevm/mx.substratevm/suite.py
index 3920dc592f8,860c641d5d3..00000000000
--- a/substratevm/mx.substratevm/suite.py
+++ b/substratevm/mx.substratevm/suite.py
@@@ -2,8 -2,8 +2,13 @@@
suite = {
"mxversion": "6.27.1",
"name": "substratevm",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"url" : "https://github.com/oracle/graal/tree/master/substratevm",
"groupId" : "org.graalvm.nativeimage",
diff --cc tools/mx.tools/suite.py
index 1ac09483163,387787a5a96..00000000000
--- a/tools/mx.tools/suite.py
+++ b/tools/mx.tools/suite.py
@@@ -26,8 -26,8 +26,13 @@@ suite =
"defaultLicense" : "GPLv2-CPE",
"groupId" : "org.graalvm.tools",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"url" : "http://openjdk.java.net/projects/graal",
"developer" : {
"name" : "GraalVM Development",
diff --cc truffle/mx.truffle/suite.py
index 110aaa6ba46,229c02e4aa8..00000000000
--- a/truffle/mx.truffle/suite.py
+++ b/truffle/mx.truffle/suite.py
@@@ -41,8 -41,8 +41,13 @@@
suite = {
"mxversion": "6.39.0",
"name" : "truffle",
++<<<<<<< HEAD
+ "version" : "23.1.7",
+ "release" : False,
++=======
+ "version" : "23.1.5",
+ "release" : True,
++>>>>>>> vm-23.1.5
"groupId" : "org.graalvm.truffle",
"sourceinprojectwhitelist" : [],
"url" : "http://openjdk.java.net/projects/graal",
diff --cc vm/mx.vm/suite.py
index 3913eaf82a7,4675e2f2294..00000000000
--- a/vm/mx.vm/suite.py
+++ b/vm/mx.vm/suite.py
@@@ -1,8 -1,8 +1,12 @@@
suite = {
"name": "vm",
++<<<<<<< HEAD
+ "version" : "23.1.7",
++=======
+ "version" : "23.1.5",
++>>>>>>> vm-23.1.5
"mxversion": "6.41.0",
- "release" : True,
+ "release" : False,
"groupId" : "org.graalvm",
"url" : "http://www.graalvm.org/",
diff --cc wasm/mx.wasm/suite.py
index 49728a1cd86,dc771366f8d..00000000000
--- a/wasm/mx.wasm/suite.py
+++ b/wasm/mx.wasm/suite.py
@@@ -42,7 -42,7 +42,11 @@@ suite =
"mxversion": "6.41.0",
"name" : "wasm",
"groupId" : "org.graalvm.wasm",
++<<<<<<< HEAD
+ "version" : "23.1.7",
++=======
+ "version" : "23.1.5",
++>>>>>>> vm-23.1.5
"versionConflictResolution" : "latest",
"url" : "http://graalvm.org/",
"developer" : { Merge conflict related to #23 not removing deprecated methods in contrast to the upstream patchResolved by rejecting theirs / diff --cc substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/ResourcesRegistry.java
index 323feb31e89,310f25d43b0..00000000000
--- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/ResourcesRegistry.java
+++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/configure/ResourcesRegistry.java
@@@ -36,35 -36,6 +36,38 @@@ public interface ResourcesRegistry exte
@SuppressWarnings("unchecked")
static ResourcesRegistry singleton() {
return ImageSingletons.lookup(ResourcesRegistry.class);
++<<<<<<< HEAD
+ }
+
+ /**
+ * @deprecated Use {@link RuntimeResourceSupport#addResources(ConfigurationCondition, String)}
+ * instead.
+ */
+ @Deprecated
+ default void addResources(String pattern) {
+ addResources(ConfigurationCondition.alwaysTrue(), pattern);
+ }
+
+ /**
+ * @deprecated Use
+ * {@link RuntimeResourceSupport#ignoreResources(ConfigurationCondition, String)}
+ * instead.
+ */
+ @Deprecated
+ default void ignoreResources(String pattern) {
+ ignoreResources(ConfigurationCondition.alwaysTrue(), pattern);
+ }
+
+ /**
+ * @deprecated Use
+ * {@link RuntimeResourceSupport#addResourceBundles(ConfigurationCondition, String)}
+ * instead.
+ */
+ @Deprecated
+ default void addResourceBundles(String name) {
+ addResourceBundles(ConfigurationCondition.alwaysTrue(), name);
++=======
++>>>>>>> vm-23.1.5
}
void addClassBasedResourceBundle(ConfigurationCondition condition, String basename, String className); Merge conflict related to #4 in which aims to keep backwards compatibility with jdk versions < 21.0.4 while upstream does notResolved by rejecting theirs / diff --cc substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread/Target_java_lang_VirtualThread.java
index 6fe180ddb54,88717fa9901..00000000000
--- a/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread/Target_java_lang_VirtualThread.java
+++ b/substratevm/src/com.oracle.svm.core/src/com/oracle/svm/core/thread/Target_java_lang_VirtualThread.java
@@@ -57,20 -55,18 +57,33 @@@ public final class Target_java_lang_Vir
// Checkstyle: stop
@Alias static int NEW;
@Alias static int STARTED;
++<<<<<<< HEAD
+ @Alias //
+ @TargetElement(onlyWith = JDK21u3OrEarlier.class) static int RUNNABLE;
++=======
++>>>>>>> vm-23.1.5
@Alias static int RUNNING;
@Alias static int PARKING;
@Alias static int PARKED;
@Alias static int PINNED;
@Alias static int YIELDING;
++<<<<<<< HEAD
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int YIELDED;
+ @Alias static int TERMINATED;
+ @Alias static int SUSPENDED;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int TIMED_PARKING;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int TIMED_PARKED;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int TIMED_PINNED;
+ @TargetElement(onlyWith = JDK21u4OrLater.class) @Alias static int UNPARKED;
++=======
+ @Alias static int YIELDED;
+ @Alias static int TERMINATED;
+ @Alias static int SUSPENDED;
+ @Alias static int TIMED_PARKING;
+ @Alias static int TIMED_PARKED;
+ @Alias static int TIMED_PINNED;
+ @Alias static int UNPARKED;
++>>>>>>> vm-23.1.5
@Alias static Target_jdk_internal_vm_ContinuationScope VTHREAD_SCOPE;
// Checkstyle: resume
@@@ -171,9 -167,7 +184,13 @@@
} else {
return Thread.State.RUNNABLE;
}
++<<<<<<< HEAD
+ } else if (JDK21u3OrEarlier.jdk21u3OrEarlier && state == RUNNABLE) {
+ return Thread.State.RUNNABLE;
+ } else if (JDK21u4OrLater.jdk21u4OrLater && (state == UNPARKED || state == YIELDED)) {
++=======
+ } else if (state == UNPARKED || state == YIELDED) {
++>>>>>>> vm-23.1.5
return Thread.State.RUNNABLE;
} else if (state == RUNNING) {
Object token = VirtualThreadHelper.acquireInterruptLockMaybeSwitch(this);
@@@ -201,12 -195,10 +218,19 @@@
}
} else if (state == TERMINATED) {
return Thread.State.TERMINATED;
++<<<<<<< HEAD
+ } else if (JDK21u4OrLater.jdk21u4OrLater) {
+ if (state == TIMED_PARKING) {
+ return Thread.State.RUNNABLE;
+ } else if (state == TIMED_PARKED || state == TIMED_PINNED) {
+ return Thread.State.TIMED_WAITING;
+ }
++=======
+ } else if (state == TIMED_PARKING) {
+ return Thread.State.RUNNABLE;
+ } else if (state == TIMED_PARKED || state == TIMED_PINNED) {
+ return Thread.State.TIMED_WAITING;
++>>>>>>> vm-23.1.5
}
throw new InternalError();
} Merge conflict related to #23 not handling the sealed case while upstream doesResolved by accepting theirs / diff --cc substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/ReflectionDataBuilder.java
index 933700269ee,5c0580b05a3..00000000000
--- a/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/ReflectionDataBuilder.java
+++ b/substratevm/src/com.oracle.svm.hosted/src/com/oracle/svm/hosted/reflect/ReflectionDataBuilder.java
@@@ -1011,12 -1010,16 +1014,23 @@@ public class ReflectionDataBuilder exte
@Override
public void registerHeapReflectionField(Field reflectField, ScanReason reason) {
- assert !sealed;
AnalysisField analysisField = metaAccess.lookupJavaField(reflectField);
++<<<<<<< HEAD
+ if (heapFields.put(analysisField, reflectField) == null && !SubstitutionReflectivityFilter.shouldExclude(reflectField, metaAccess, universe)) {
+ registerTypesForField(analysisField, reflectField, false);
+ if (analysisField.getDeclaringClass().isAnnotation()) {
+ processAnnotationField(reflectField);
++=======
+ if (heapFields.put(analysisField, reflectField) == null) {
+ if (sealed) {
+ throw new UnsupportedFeatureException("Registering new field for reflection when the image heap is already sealed: " + reflectField);
+ }
+ if (!SubstitutionReflectivityFilter.shouldExclude(reflectField, metaAccess, universe)) {
+ registerTypesForField(analysisField, reflectField, false);
+ if (analysisField.getDeclaringClass().isAnnotation()) {
+ processAnnotationField(reflectField);
+ }
++>>>>>>> vm-23.1.5
}
}
} Merge conflict due to different comment used in #2 and the corresponding upstream backport.Accepted theirs / diff --cc substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/AbstractJfrTest.java
index 73b95ece753,2fd9d6fb47b..00000000000
--- a/substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/AbstractJfrTest.java
+++ b/substratevm/src/com.oracle.svm.test/src/com/oracle/svm/test/jfr/AbstractJfrTest.java
@@@ -200,14 -200,8 +201,19 @@@ class JfrTestFeature implements Featur
}
@Override
++<<<<<<< HEAD
+ public void beforeAnalysis(BeforeAnalysisAccess access) {
+ /*
+ * Register proxies for event data assertion
+ *
+ * Unsigned added to be able to query RecordedObject.getLong() method, and this method
+ * checks if the value returned has the jdk.jfr.Unsigned. The jfr layer in HotSpot creates a
+ * proxy to query this information.
+ */
++=======
+ public void beforeAnalysis(Feature.BeforeAnalysisAccess access) {
+ /* Needed so that the tests can call RecordedObject.getLong(). */
++>>>>>>> vm-23.1.5
RuntimeProxyCreation.register(Unsigned.class);
}
} Update: I added this to the PR description as well |
Looks good to me. Thanks! |
While setting up the https://github.com/graalvm/graalvm-community-jdk21u repository and figuring out the details of how to maintain community backports, the GraalVM team pushed the
vm-23.1.4
andvm-23.1.5
tags in the https://github.com/oracle/graal/ repository. These tags include changes not yet merged in the https://github.com/graalvm/graalvm-community-jdk21u repository whosevm-23.1.5
deviates from that of the https://github.com/oracle/graal/ repository.This merge aims to bring in all the changes from the upstream
vm-23.1.5
reducing the differences between the Oracle GraalVM 23.1 releases and the community ones.The merge applied cleanly except for a few cases that were trivial to resolve (click to expand).
Merge conflicts related to version mismatch
Resolved by rejecting theirs /
vm-23.1.5
changesMerge conflict related to #23 not removing deprecated methods in contrast to the upstream patch
Resolved by rejecting theirs /
vm-23.1.5
changes as this was deemed safer.Merge conflict related to #4 in which aims to keep backwards compatibility with jdk versions < 21.0.4 while upstream does not
Resolved by rejecting theirs /
vm-23.1.5
changes as backwards compatibility (with older CPU releases) is desirable and eases debugging withgit bisect
. Note, however, that I didn't check if any other upstream changes included in this PR break this kind of backwards compatibility.Merge conflict related to #23 not handling the sealed case while upstream does
Resolved by accepting theirs /
vm-23.1.5
changes to catch the sealed case.Merge conflict due to different comment used in #2 and the corresponding upstream backport.
Accepted theirs /
vm-23.1.5
to reduce differences.Due to the large number of commits it's not trivial to list all the upstream issues being backported through this merge.
Supersedes #38
cc @simonis