Skip to content

Commit c75b6af

Browse files
committed
[GR-35366] Allow stable ProvidedHostedOptions.
PullRequest: graal/21994
2 parents f90caa7 + 764b3d5 commit c75b6af

File tree

6 files changed

+27
-26
lines changed

6 files changed

+27
-26
lines changed

compiler/mx.compiler/suite.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -563,6 +563,7 @@
563563
org.graalvm.nativeimage.base,
564564
org.graalvm.extraimage.builder,
565565
org.graalvm.extraimage.librarysupport,
566+
org.graalvm.nativeimage.enterprise.testrunner,
566567
com.oracle.svm.extraimage_enterprise,
567568
org.graalvm.truffle.runtime.svm,
568569
com.oracle.truffle.enterprise.svm""",

substratevm/mx.substratevm/mx_substratevm.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ def adjusted_exports(line):
8888

8989
return [adjusted_exports(line) for line in compiler_flags[str(version_tag)]]
9090

91-
def classpath(args):
91+
def classpath(args, extra_excludes=None):
9292
if not args:
9393
return [] # safeguard against mx.classpath(None) behaviour
9494

@@ -99,7 +99,10 @@ def include_in_excludes(dep, dep_edge):
9999
if dep.isJavaProject() or dep.isDistribution():
100100
transitive_excludes.add(dep)
101101

102-
implicit_excludes_deps = [mx.dependency(entry) for entry in mx_sdk_vm_impl.NativePropertiesBuildTask.implicit_excludes]
102+
excludes = mx_sdk_vm_impl.NativePropertiesBuildTask.implicit_excludes
103+
if extra_excludes:
104+
excludes += extra_excludes
105+
implicit_excludes_deps = [mx.dependency(entry) for entry in excludes]
103106
mx.walk_deps(implicit_excludes_deps, visit=include_in_excludes)
104107
cpEntries = mx.classpath_entries(names=args, includeSelf=True, preferProjects=False, excludes=transitive_excludes)
105108
return mx._entries_to_classpath(cpEntries=cpEntries, resolve=True, includeBootClasspath=False, jdk=mx_compiler.jdk, unique=False, ignoreStripped=False)

substratevm/mx.substratevm/suite.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1765,6 +1765,7 @@
17651765
org.graalvm.nativeimage.agent.jvmtibase,
17661766
org.graalvm.nativeimage.agent.tracing,
17671767
org.graalvm.nativeimage.agent.diagnostics,
1768+
org.graalvm.nativeimage.enterprise.testrunner,
17681769
com.oracle.svm.svm_enterprise,
17691770
com.oracle.svm.svm_enterprise.llvm,
17701771
com.oracle.svm_enterprise.ml_dataset,
@@ -1926,7 +1927,7 @@
19261927

19271928
"JUNIT_SUPPORT": {
19281929
"subDir": "src",
1929-
"description" : "SubstrateVM suppoprt for building JUnit test into image",
1930+
"description" : "SubstrateVM support for building JUnit test into image",
19301931
"dependencies": [
19311932
"com.oracle.svm.junit",
19321933
],

substratevm/src/com.oracle.svm.driver/src/com/oracle/svm/driver/APIOptionHandler.java

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -97,8 +97,8 @@ record PathsOptionInfo(String delimiter, BundleMember.Role role) {
9797
record HostedOptionInfo(Boolean isStable, Boolean isBoolean) {
9898
}
9999

100-
private final HostedOptionInfo injectedKnownHostedRegularOptionInfo = new HostedOptionInfo(false, false);
101-
private final HostedOptionInfo injectedKnownHostedBooleanOptionInfo = new HostedOptionInfo(false, true);
100+
private final HostedOptionInfo[] injectedKnownHostedRegularOptionInfo = {new HostedOptionInfo(true, false), new HostedOptionInfo(false, false)};
101+
private final HostedOptionInfo[] injectedKnownHostedBooleanOptionInfo = {new HostedOptionInfo(true, true), new HostedOptionInfo(false, true)};
102102

103103
private final Map<String, HostedOptionInfo> allOptionNames;
104104

@@ -295,16 +295,23 @@ private static String startLowerCase(String str) {
295295
}
296296

297297
void injectKnownHostedOption(String optionName) {
298+
int variant;
298299
String baseOptionName;
299-
HostedOptionInfo optionInfo;
300-
if (optionName.endsWith("=")) {
301-
baseOptionName = optionName.substring(0, optionName.length() - 1);
302-
optionInfo = injectedKnownHostedRegularOptionInfo;
300+
if (optionName.startsWith("$")) {
301+
variant = 0; // stable
302+
baseOptionName = optionName.substring(1);
303303
} else {
304+
variant = 1; // unstable
304305
baseOptionName = optionName;
305-
optionInfo = injectedKnownHostedBooleanOptionInfo;
306306
}
307-
allOptionNames.put(baseOptionName, optionInfo);
307+
HostedOptionInfo[] injectedKnownHostedOptionInfo;
308+
if (baseOptionName.endsWith("=")) {
309+
baseOptionName = baseOptionName.substring(0, baseOptionName.length() - 1);
310+
injectedKnownHostedOptionInfo = injectedKnownHostedRegularOptionInfo;
311+
} else {
312+
injectedKnownHostedOptionInfo = injectedKnownHostedBooleanOptionInfo;
313+
}
314+
allOptionNames.put(baseOptionName, injectedKnownHostedOptionInfo[variant]);
308315
}
309316

310317
@Override

substratevm/src/com.oracle.svm.driver/src/com/oracle/svm/driver/NativeImage.java

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2094,19 +2094,6 @@ public static void main(String[] args) {
20942094
performBuild(new BuildConfiguration(Arrays.asList(args)), defaultNativeImageProvider);
20952095
}
20962096

2097-
public static List<String> translateAPIOptions(List<String> arguments) {
2098-
var handler = new APIOptionHandler(defaultNativeImageProvider.apply(new BuildConfiguration(arguments)));
2099-
var argumentQueue = new ArgumentQueue(OptionOrigin.originDriver);
2100-
handler.nativeImage.config.args.forEach(argumentQueue::add);
2101-
List<String> translatedOptions = new ArrayList<>();
2102-
while (!argumentQueue.isEmpty()) {
2103-
String translatedOption = handler.translateOption(argumentQueue);
2104-
String originalOption = argumentQueue.poll();
2105-
translatedOptions.add(translatedOption != null ? translatedOption : originalOption);
2106-
}
2107-
return translatedOptions;
2108-
}
2109-
21102097
protected static void performBuild(BuildConfiguration config, Function<BuildConfiguration, NativeImage> nativeImageProvider) {
21112098
try {
21122099
build(config, nativeImageProvider);

substratevm/src/com.oracle.svm.truffle/src/com/oracle/svm/truffle/TruffleBaseFeature.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -489,8 +489,10 @@ public void cleanup() {
489489
Collections.emptyList());
490490
invokeStaticMethod("com.oracle.truffle.api.impl.ThreadLocalHandshake", "resetNativeImageState",
491491
Collections.emptyList());
492-
invokeStaticMethod("com.oracle.truffle.api.library.LibraryFactory", "resetNativeImageState",
493-
Collections.singletonList(ClassLoader.class), imageClassLoader);
492+
if (System.getProperty("substratevm.svmtest") == null) {
493+
invokeStaticMethod("com.oracle.truffle.api.library.LibraryFactory", "resetNativeImageState",
494+
Collections.singletonList(ClassLoader.class), imageClassLoader);
495+
}
494496
invokeStaticMethod("com.oracle.truffle.api.source.Source", "resetNativeImageState", Collections.emptyList());
495497
}
496498

0 commit comments

Comments
 (0)