Skip to content

Commit d313a53

Browse files
committed
Fix order of arguments passed from venvlauncher
1 parent e5bce5c commit d313a53

File tree

5 files changed

+15
-11
lines changed

5 files changed

+15
-11
lines changed

graalpython/com.oracle.graal.python.shell/src/com/oracle/graal/python/shell/GraalPythonMain.java

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -167,9 +167,11 @@ protected List<String> preprocessArguments(List<String> givenArgs, Map<String, S
167167
polyglotGet(launcherName, givenArgs);
168168
}
169169
ArrayList<String> unrecognized = new ArrayList<>();
170-
List<String> defaultEnvironmentArgs = getDefaultEnvironmentArgs();
171-
ArrayList<String> inputArgs = new ArrayList<>(givenArgs);
172-
inputArgs.addAll(defaultEnvironmentArgs);
170+
List<String> envVmArgs = getDefaultEnvironmentArgs("GRAAL_PYTHON_VM_ARGS");
171+
List<String> envArgs = getDefaultEnvironmentArgs("GRAAL_PYTHON_ARGS");
172+
ArrayList<String> inputArgs = new ArrayList<>(envVmArgs);
173+
inputArgs.addAll(givenArgs);
174+
inputArgs.addAll(envArgs);
173175
givenArguments = new ArrayList<>(inputArgs);
174176
List<String> arguments = new ArrayList<>(inputArgs);
175177
List<String> subprocessArgs = new ArrayList<>();
@@ -1133,7 +1135,7 @@ protected void printHelp(OptionCategory maxCategory) {
11331135
" in the range [0,4294967295] to get hash values with a predictable seed.\n" +
11341136
"PYTHONPYCACHEPREFIX: if this is set, GraalPython will write .pyc files in a mirror\n" +
11351137
" directory tree at this path, instead of in __pycache__ directories within the source tree.\n" +
1136-
"GRAAL_PYTHON_ARGS: the value is added as arguments as if passed on the\n" +
1138+
"GRAAL_PYTHON_ARGS: the value is added as arguments as if passed at the end of the\n" +
11371139
" commandline. Arguments are split on whitespace - you can use \" and/or ' as required to\n" +
11381140
" group them. Alternatively, if the value starts with a vertical tab character, the entire\n" +
11391141
" value is split at vertical tabs and the elements are used as arguments without any further\n" +
@@ -1143,6 +1145,8 @@ protected void printHelp(OptionCategory maxCategory) {
11431145
" with the current process id, and any $UUID$ is replaced with random unique string\n" +
11441146
" that may contain letters, digits, and '-'. To pass a literal `$$', you must escape the\n" +
11451147
" second `$' like so: `$\\$'\n" +
1148+
"GRAAL_PYTHON_VM_ARGS: the value is prepended as arguments as if passed at the beginning\n" +
1149+
" of the commandline. See GRAAL_PYTHON_ARGS for details.\n" +
11461150
(wantsExperimental ? "\nArguments specific to the Graal Python launcher:\n" +
11471151
"--show-version : print the Python version number and continue.\n" +
11481152
"-CC : run the C compiler used for generating GraalPython C extensions.\n" +
@@ -1462,15 +1466,15 @@ private static enum State {
14621466
VTAB_DELIMITED,
14631467
}
14641468

1465-
private static List<String> getDefaultEnvironmentArgs() {
1469+
private static List<String> getDefaultEnvironmentArgs(String envName) {
14661470
String pid;
14671471
if (isAOT()) {
14681472
pid = String.valueOf(ProcessProperties.getProcessID());
14691473
} else {
14701474
pid = ManagementFactory.getRuntimeMXBean().getName().split("@")[0];
14711475
}
14721476
String uuid = UUID.randomUUID().toString();
1473-
String envArgsOpt = getEnv("GRAAL_PYTHON_ARGS");
1477+
String envArgsOpt = getEnv(envName);
14741478
ArrayList<String> envArgs = new ArrayList<>();
14751479
if (envArgsOpt != null) {
14761480
State s = State.NORMAL;

graalpython/com.oracle.graal.python.test/src/tox/leftpad/tox.ini

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,4 +12,4 @@ basepython=graalpy
1212
setenv=
1313
PIP_INDEX_URL=https://ol-graal.oraclecorp.com/nexus-cache/repository/pypi-proxy/simple/
1414
PIP_TRUSTED_HOST=ol-graal.oraclecorp.com
15-
passenv = GRAALPY_LEFTPAD_FAIL,GRAAL_PYTHON_ARGS
15+
passenv = GRAALPY_LEFTPAD_FAIL,GRAAL_PYTHON_ARGS,GRAAL_PYTHON_VM_ARGS

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,7 @@ public void postInitialize(Python3Core core) {
308308
PDict environ = PFactory.createDict(language);
309309
String pyenvLauncherKey = "__PYVENV_LAUNCHER__";
310310
for (Entry<String, String> entry : getenv.entrySet()) {
311-
if (entry.getKey().equals("GRAAL_PYTHON_ARGS") && entry.getValue().endsWith("\013")) {
311+
if ((entry.getKey().equals("GRAAL_PYTHON_ARGS") || entry.getKey().equals("GRAAL_PYTHON_VM_ARGS")) && entry.getValue().endsWith("\013")) {
312312
// was already processed at startup in GraalPythonMain and
313313
// we don't want subprocesses to pick it up
314314
continue;

mx.graalpython/mx_graalpython.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2219,7 +2219,7 @@ def python_coverage(args):
22192219
*common_coverage_args,
22202220
f"--coverage.OutputFile={outfile}",
22212221
]
2222-
env['GRAAL_PYTHON_ARGS'] = " ".join(extra_args)
2222+
env['GRAAL_PYTHON_VM_ARGS'] = " ".join(extra_args)
22232223
if kwds.pop("tagged", False):
22242224
run_tagged_unittests(executable, env=env, nonZeroIsFatal=False, **kwds) # pylint: disable=unexpected-keyword-arg;
22252225
elif kwds.pop("hpy", False):

mx.graalpython/mx_graalpython_python_benchmarks.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -447,7 +447,7 @@ def _vmRun(self, vm, workdir, command, benchmarks, bmSuiteArgs):
447447
join(vm_venv, "bin", "pyperformance"),
448448
"run",
449449
"--inherit-environ",
450-
"PIP_INDEX_URL,PIP_EXTRA_INDEX_URL,PIP_TRUSTED_HOST,PIP_TIMEOUT,PIP_RETRIES,LD_LIBRARY_PATH,LIBRARY_PATH,CPATH,PATH,PYPY_GC_MAX,JAVA_OPTS,GRAAL_PYTHON_ARGS",
450+
"PIP_INDEX_URL,PIP_EXTRA_INDEX_URL,PIP_TRUSTED_HOST,PIP_TIMEOUT,PIP_RETRIES,LD_LIBRARY_PATH,LIBRARY_PATH,CPATH,PATH,PYPY_GC_MAX,JAVA_OPTS,GRAAL_PYTHON_ARGS,GRAAL_PYTHON_VM_ARGS",
451451
"-o",
452452
json_file,
453453
*bms,
@@ -465,7 +465,7 @@ def _vmRun(self, vm, workdir, command, benchmarks, bmSuiteArgs):
465465
"--debug-single-value",
466466
"--track-memory",
467467
"--inherit-environ",
468-
"PIP_INDEX_URL,PIP_EXTRA_INDEX_URL,PIP_TRUSTED_HOST,PIP_TIMEOUT,PIP_RETRIES,LD_LIBRARY_PATH,LIBRARY_PATH,CPATH,PATH,PYPY_GC_MAX,JAVA_OPTS,GRAAL_PYTHON_ARGS",
468+
"PIP_INDEX_URL,PIP_EXTRA_INDEX_URL,PIP_TRUSTED_HOST,PIP_TIMEOUT,PIP_RETRIES,LD_LIBRARY_PATH,LIBRARY_PATH,CPATH,PATH,PYPY_GC_MAX,JAVA_OPTS,GRAAL_PYTHON_ARGS,GRAAL_PYTHON_VM_ARGS",
469469
"-o",
470470
json_file_memory,
471471
*bms,

0 commit comments

Comments
 (0)