Skip to content

Commit e96a68e

Browse files
committed
store sys.executable_list as a list of the executable and arguments used to launch the interpreter
1 parent 82e2d22 commit e96a68e

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

graalpython/com.oracle.graal.python/src/com/oracle/graal/python/builtins/modules/SysModuleBuiltins.java

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,7 @@
4545
import java.io.IOException;
4646
import java.lang.management.ManagementFactory;
4747
import java.nio.ByteOrder;
48+
import java.util.ArrayList;
4849
import java.util.Date;
4950
import java.util.List;
5051

@@ -110,19 +111,27 @@ public void initialize(PythonCore core) {
110111
builtinConstants.put("executable", PNone.NONE);
111112
} else {
112113
StringBuilder sb = new StringBuilder();
113-
sb.append(System.getProperty("java.home")).append(PythonCore.FILE_SEPARATOR).append("bin").append(PythonCore.FILE_SEPARATOR).append("java ");
114+
ArrayList<String> exec_list = new ArrayList<>();
115+
sb.append(System.getProperty("java.home")).append(PythonCore.FILE_SEPARATOR).append("bin").append(PythonCore.FILE_SEPARATOR).append("java");
116+
exec_list.add(sb.toString());
117+
sb.append(' ');
114118
for (String arg : ManagementFactory.getRuntimeMXBean().getInputArguments()) {
115119
if (arg.matches("-Xrunjdwp:transport=dt_socket,server=y,address=\\d+,suspend=y")) {
116120
arg = arg.replace("suspend=y", "suspend=n");
117121
}
118122
sb.append(arg).append(' ');
123+
exec_list.add(arg);
119124
}
120125
sb.append("-classpath ");
126+
exec_list.add("-classpath");
121127
sb.append(System.getProperty("java.class.path")).append(' ');
128+
exec_list.add(System.getProperty("java.class.path"));
122129
// we really don't care what the main class or its arguments were - this should
123130
// always help us launch Graal.Python
124131
sb.append("com.oracle.graal.python.shell.GraalPythonMain");
132+
exec_list.add("com.oracle.graal.python.shell.GraalPythonMain");
125133
builtinConstants.put("executable", sb.toString());
134+
builtinConstants.put("executable_list", core.factory().createList(exec_list.toArray()));
126135
}
127136
builtinConstants.put("modules", core.factory().createDict());
128137
builtinConstants.put("path", core.factory().createList());

0 commit comments

Comments
 (0)