Skip to content

Commit b443f96

Browse files
committed
[GR-24421] Make native-image --no-server the default.
PullRequest: graal/6547
2 parents 18ba6ac + 15c13f1 commit b443f96

File tree

5 files changed

+33
-17
lines changed

5 files changed

+33
-17
lines changed

substratevm/mx.substratevm/mx_substratevm.py

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -351,23 +351,29 @@ def _native_image(args, **kwargs):
351351

352352
def query_native_image(all_args, option):
353353

354+
stdoutdata = []
355+
def stdout_collector(x):
356+
stdoutdata.append(x.rstrip())
357+
_native_image(['--dry-run'] + all_args, out=stdout_collector)
358+
354359
def remove_quotes(val):
355360
if len(val) >= 2 and val.startswith("'") and val.endswith("'"):
356361
return val[1:-1].replace("\\'", "'")
357362
else:
358363
return val
359364

360-
out = mx.LinesOutputCapture()
361-
_native_image(['--dry-run'] + all_args, out=out)
362-
for line in out.lines:
365+
for line in stdoutdata:
363366
arg = remove_quotes(line.rstrip('\\').strip())
364367
_, sep, after = arg.partition(option)
365368
if sep:
366369
return after.split(' ')[0].rstrip()
367370
return None
368371

372+
server_use = set()
369373
def native_image_func(args, **kwargs):
370374
all_args = base_args + common_args + args
375+
if '--experimental-build-server' in all_args:
376+
server_use.add(True)
371377
path = query_native_image(all_args, '-H:Path=')
372378
name = query_native_image(all_args, '-H:Name=')
373379
image = join(path, name)
@@ -380,7 +386,7 @@ def native_image_func(args, **kwargs):
380386
_native_image(['--server-wipe'])
381387
yield native_image_func
382388
finally:
383-
if exists(native_image_cmd) and has_server:
389+
if exists(native_image_cmd) and has_server and server_use:
384390
def timestr():
385391
return time.strftime('%d %b %Y %H:%M:%S') + ' - '
386392
mx.log(timestr() + 'Shutting down image build servers for ' + native_image_cmd)

substratevm/src/com.oracle.svm.driver/resources/HelpExtra.txt

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,6 @@ Non-standard options help:
1717

1818
-V<key>=<value> provide values for placeholders in native-image.properties files
1919

20+
--help-experimental-build-server
21+
displays help for experimental image-build server use
22+
Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,18 @@
11
Server options help:
22

3-
--no-server do not use image-build server
3+
--no-server do not use experimental image-build server (default)
4+
--experimental-build-server
5+
use experimental image-build server
46

5-
--server-list lists current image-build servers
7+
--server-list lists current experimental image-build servers
68
--server-list-details same as -server-list with more details
7-
--server-cleanup remove stale image-build servers entries
8-
--server-shutdown shutdown image-build servers under current session ID
9-
--server-shutdown-all shutdown all image-build servers
9+
--server-cleanup remove stale experimental image-build servers entries
10+
--server-shutdown shutdown experimental image-build servers under current session ID
11+
--server-shutdown-all shutdown all experimental image-build servers
1012

1113
--server-session=<custom-session-name>
1214
use custom session name instead of system provided
1315
session ID of the calling process
1416

15-
--verbose-server enable verbose output for image-build server handling
17+
--verbose-server enable verbose output for experimental image-build server handling
1618

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ final class NativeImageServer extends NativeImage {
7676
private static final String pKeyMaxServers = "MaxServers";
7777
private static final String machineProperties = "machine.properties";
7878

79-
private boolean useServer = true;
79+
private boolean useServer = false;
8080
private boolean verboseServer = false;
8181
private String sessionName = null;
8282

@@ -810,7 +810,9 @@ boolean useServer() {
810810
@Override
811811
protected void setDryRun(boolean val) {
812812
super.setDryRun(val);
813-
useServer = !val;
813+
if (val) {
814+
useServer = false;
815+
}
814816
}
815817

816818
void setVerboseServer(boolean val) {

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

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,11 +27,10 @@
2727
import java.util.List;
2828
import java.util.Queue;
2929

30-
import com.oracle.svm.driver.MacroOption.MacroOptionKind;
31-
3230
class ServerOptionHandler extends NativeImage.OptionHandler<NativeImageServer> {
3331

3432
private static final String helpTextServer = NativeImage.getResource("/HelpServer.txt");
33+
private static final String enableServerOption = "--experimental-build-server";
3534

3635
ServerOptionHandler(NativeImageServer nativeImage) {
3736
super(nativeImage);
@@ -41,18 +40,22 @@ class ServerOptionHandler extends NativeImage.OptionHandler<NativeImageServer> {
4140
public boolean consume(Queue<String> args) {
4241
String headArg = args.peek();
4342
switch (headArg) {
44-
case "--help-extra":
43+
case "--help-experimental-build-server":
4544
args.poll();
46-
nativeImage.showMessage(DefaultOptionHandler.helpExtraText);
4745
nativeImage.showMessage(helpTextServer);
48-
nativeImage.optionRegistry.showOptions(MacroOptionKind.Macro, true, nativeImage::showMessage);
4946
nativeImage.showNewline();
5047
System.exit(0);
5148
return true;
5249
case DefaultOptionHandler.noServerOption:
5350
args.poll();
5451
nativeImage.setUseServer(false);
5552
return true;
53+
case enableServerOption:
54+
args.poll();
55+
if (!nativeImage.isDryRun()) {
56+
nativeImage.setUseServer(true);
57+
}
58+
return true;
5659
case DefaultOptionHandler.verboseServerOption:
5760
args.poll();
5861
nativeImage.setVerboseServer(true);

0 commit comments

Comments
 (0)