Skip to content

Commit 9caafb9

Browse files
Merge pull request #15325 from michelou/dotty-batch-15220
updated batch files (issue 15220)
2 parents e583685 + 3b16e8a commit 9caafb9

File tree

4 files changed

+117
-188
lines changed

4 files changed

+117
-188
lines changed

dist/bin/common.bat

+6-3
Original file line numberDiff line numberDiff line change
@@ -33,9 +33,12 @@ if not exist "%_JAVACMD%" (
3333
set _EXITCODE=1
3434
goto :eof
3535
)
36-
37-
if not defined _PROG_HOME set "_PROG_HOME=%~dp0"
38-
for /f "delims=" %%f in ("%_PROG_HOME%\.") do set "_LIB_DIR=%%~dpflib"
36+
if not defined _PROG_HOME (
37+
echo Error: Variable _PROG_HOME undefined 1>&2
38+
set _EXITCODE=1
39+
goto :eof
40+
)
41+
set "_LIB_DIR=%_PROG_HOME%\lib"
3942

4043
set _PSEP=;
4144

dist/bin/scala.bat

+52-78
Original file line numberDiff line numberDiff line change
@@ -6,113 +6,87 @@ setlocal enabledelayedexpansion
66

77
set _EXITCODE=0
88

9-
set "_PROG_HOME=%~dp0"
10-
11-
call "%_PROG_HOME%\common.bat"
9+
for %%f in ("%~dp0.") do (
10+
set "_PROG_HOME=%%~dpf"
11+
@rem get rid of the trailing slash
12+
set "_PROG_HOME=!_PROG_HOME:~0,-1!"
13+
)
14+
call "%_PROG_HOME%\bin\common.bat"
1215
if not %_EXITCODE%==0 goto end
1316

1417
call :args %*
1518

1619
@rem #########################################################################
1720
@rem ## Main
1821

19-
set _CASE_REPL=0
20-
if %_EXECUTE_REPL%==1 set _CASE_REPL=1
21-
if %_EXECUTE_RUN%==0 if %_OPTIONS_INDICATOR%==0 set _CASE_REPL=1
22-
23-
set _CASE_EXEC=0
24-
if %_EXECUTE_REPL%==1 set _CASE_EXEC=1
25-
if defined _RESIDUAL_ARGS set _CASE_EXEC=1
26-
27-
if %_EXECUTE_SCRIPT%==1 (
28-
set _SCALAC_ARGS=
29-
if defined _CLASS_PATH set _SCALAC_ARGS=-classpath "%_CLASS_PATH%"
30-
set _RESIDUAL_ARGS=!_RESIDUAL_ARGS! "-Dscript.path=%_TARGET_SCRIPT%"
31-
set _SCALAC_ARGS=!_SCALAC_ARGS! %_JAVA_OPTS% !_RESIDUAL_ARGS! -script "%_TARGET_SCRIPT%" %_SCRIPT_ARGS%
32-
call "%_PROG_HOME%\scalac.bat" !_SCALAC_ARGS!
33-
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end )
34-
@rem if [ $execute_repl == true ] || ([ $execute_run == false ] && [ $options_indicator == 0 ]); then
35-
) else if %_CASE_REPL%==1 (
36-
set _SCALAC_ARGS=
37-
if defined _CLASS_PATH set _SCALAC_ARGS=-classpath "%_CLASS_PATH%"
38-
set _SCALAC_ARGS=!_SCALAC_ARGS! %_JAVA_OPTS% -repl %_RESIDUAL_ARGS%
39-
call "%_PROG_HOME%\scalac.bat" !_SCALAC_ARGS!
40-
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end )
41-
@rem elif [ $execute_repl == true ] || [ ${#residual_args[@]} -ne 0 ]; then
42-
) else if %_CASE_EXEC%==1 (
43-
set "_CP_ARG=%_SCALA3_LIB%%_PSEP%%_SCALA_LIB%"
44-
if defined _CLASS_PATH ( set "_CP_ARG=!_CP_ARG!%_PSEP%%_CLASS_PATH%"
45-
) else ( set "_CP_ARG=!_CP_ARG!%_PSEP%."
46-
)
47-
if %_CLASS_PATH_COUNT% gtr 1 (
48-
echo Warning: Multiple classpaths are found, scala only use the last one. 1>&2
49-
)
50-
if %_WITH_COMPILER%==1 (
51-
set "_CP_ARG=!_CP_ARG!%_PSEP%%_SCALA3_COMP%%_PSEP%%_TASTY_CORE%%_PSEP%%_SCALA3_INTF%%_PSEP%%_SCALA_ASM%%_PSEP%%_SCALA3_STAGING%%_PSEP%%_SCALA3_TASTY_INSPECTOR%"
52-
)
53-
set _JAVA_ARGS=-classpath "!_CP_ARG!" %_JVM_OPTS% %_RESIDUAL_ARGS%
54-
call "%_JAVACMD%" !_JAVA_ARGS!
55-
if not !ERRORLEVEL!==0 ( set _EXITCODE=1& goto end )
56-
) else (
57-
echo Warning: Command option is not correct. 1>&2
58-
)
22+
call :compilerJavaClasspathArgs
23+
24+
call "%_JAVACMD%" %_JAVA_ARGS% "-Dscala.home=%_PROG_HOME%" -classpath "%_JVM_CP_ARGS%" dotty.tools.MainGenericRunner -classpath "%_JVM_CP_ARGS%" %_SCALA_ARGS%
25+
if not %ERRORLEVEL%==0 ( set _EXITCODE=1& goto end )
5926

6027
goto end
6128

6229
@rem #########################################################################
6330
@rem ## Subroutines
6431

6532
:args
66-
set _RESIDUAL_ARGS=
67-
set _SCRIPT_ARGS=
68-
set _EXECUTE_REPL=0
69-
set _EXECUTE_RUN=0
70-
set _EXECUTE_SCRIPT=0
71-
set _TARGET_SCRIPT=
72-
set _WITH_COMPILER=0
73-
set _CLASS_PATH_COUNT=0
74-
set _CLASS_PATH=
75-
set _JVM_OPTS=
76-
set _JAVA_OPTS=
77-
set _OPTIONS_INDICATOR=0
33+
set _JAVA_ARGS=
34+
set _SCALA_ARGS=
35+
set _SCALA_CPATH=
7836

7937
:args_loop
8038
if "%~1"=="" goto args_done
8139
set "__ARG=%~1"
82-
if "%__ARG%"=="-repl" (
83-
set _EXECUTE_REPL=1
84-
) else if "%__ARG%"=="-run" (
85-
set _EXECUTE_RUN=1
40+
if "%__ARG:~0,2%"=="-D" (
41+
@rem pass to scala as well: otherwise we lose it sometimes when we
42+
@rem need it, e.g. communicating with a server compiler.
43+
set _JAVA_ARGS=!_JAVA_ARGS! "%__ARG%"
44+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
45+
) else if "%__ARG:~0,2%"=="-J" (
46+
@rem as with -D, pass to scala even though it will almost
47+
@rem never be used.
48+
set _JAVA_ARGS=!_JAVA_ARGS! %__ARG:~2%
49+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
8650
) else if "%__ARG%"=="-classpath" (
87-
set "_CLASS_PATH=%~2"
88-
set /a _CLASS_PATH_COUNT+=1
51+
set "_SCALA_CPATH=%~2"
8952
shift
9053
) else if "%__ARG%"=="-cp" (
91-
set "_CLASS_PATH=%~2"
92-
set /a _CLASS_PATH_COUNT+=1
54+
set "_SCALA_CPATH=%~2"
9355
shift
94-
) else if "%__ARG%"=="-with-compiler" (
95-
set _WITH_COMPILER=1
96-
) else if "%__ARG:~0,2%"=="-J" (
97-
set _JVM_OPTS=!_JVM_OPTS! %__ARG:~2%
98-
set _JAVA_OPTS=!_JAVA_OPTS! %__ARG%
9956
) else (
100-
@rem _OPTIONS_INDICATOR != 0 if at least one parameter is not an option
101-
if not "%__ARG:~0,1%"=="-" set /a _OPTIONS_INDICATOR+=1
102-
if %_EXECUTE_SCRIPT%==1 (
103-
set _SCRIPT_ARGS=%_SCRIPT_ARGS% %__ARG%
104-
) else if "%__ARG:~-6%"==".scala" (
105-
set _EXECUTE_SCRIPT=1
106-
set "_TARGET_SCRIPT=%__ARG%"
107-
) else (
108-
set _RESIDUAL_ARGS=%_RESIDUAL_ARGS% %__ARG%
109-
)
57+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
11058
)
11159
shift
11260
goto args_loop
11361
:args_done
11462
goto :eof
11563

64+
@rem output parameter: _JVM_CP_ARGS
65+
:compilerJavaClasspathArgs
66+
set __TOOLCHAIN=
67+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA_LIB%%_PSEP%"
68+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_LIB%%_PSEP%"
69+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA_ASM%%_PSEP%"
70+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SBT_INTF%%_PSEP%"
71+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_INTF%%_PSEP%"
72+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_COMP%%_PSEP%"
73+
set "__TOOLCHAIN=%__TOOLCHAIN%%_TASTY_CORE%%_PSEP%"
74+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_STAGING%%_PSEP%"
75+
set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_TASTY_INSPECTOR%%_PSEP%"
76+
77+
@rem # jline
78+
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_READER%%_PSEP%"
79+
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL%%_PSEP%"
80+
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL_JNA%%_PSEP%"
81+
set "__TOOLCHAIN=%__TOOLCHAIN%%_JNA%%_PSEP%"
82+
83+
if defined _SCALA_CPATH (
84+
set "_JVM_CP_ARGS=%__TOOLCHAIN%%_SCALA_CPATH%"
85+
) else (
86+
set "_JVM_CP_ARGS=%__TOOLCHAIN%"
87+
)
88+
goto :eof
89+
11690
@rem #########################################################################
11791
@rem ## Cleanups
11892

dist/bin/scalac.bat

+52-103
Original file line numberDiff line numberDiff line change
@@ -6,44 +6,22 @@ setlocal enabledelayedexpansion
66

77
set _EXITCODE=0
88

9-
set "_PROG_HOME=%~dp0"
10-
11-
call "%_PROG_HOME%\common.bat"
9+
for %%f in ("%~dp0.") do (
10+
set "_PROG_HOME=%%~dpf"
11+
@rem get rid of the trailing slash
12+
set "_PROG_HOME=!_PROG_HOME:~0,-1!"
13+
)
14+
call "%_PROG_HOME%\bin\common.bat"
1215
if not %_EXITCODE%==0 goto end
1316

14-
set _DEFAULT_JAVA_OPTS=-Xmx768m -Xms768m
15-
@rem set _WITH_COMPILER=true
16-
17-
set _COMPILER_MAIN=dotty.tools.dotc.Main
18-
set _DECOMPILER_MAIN=dotty.tools.dotc.decompiler.Main
19-
set _REPL_MAIN=dotty.tools.repl.Main
20-
set _SCRIPTING_MAIN=dotty.tools.scripting.Main
21-
2217
call :args %*
2318

2419
@rem #########################################################################
2520
@rem ## Main
2621

27-
call :classpathArgs
22+
call :compilerJavaClasspathArgs
2823

29-
set _SCRIPTING_STRING=
30-
if "%_PROG_NAME%"=="%_SCRIPTING_MAIN%" (
31-
if not defined _TARGET_SCRIPT (
32-
echo Error: Missing Scala script file 1>&2
33-
set _EXITCODE=1
34-
goto end
35-
)
36-
set _SCRIPTING_STRING=-script %_TARGET_SCRIPT% %_SCRIPTING_ARGS%
37-
)
38-
39-
if defined JAVA_OPTS ( set _JAVA_OPTS=%JAVA_OPTS%
40-
) else ( set _JAVA_OPTS=%_DEFAULT_JAVA_OPTS%
41-
)
42-
for %%i in ("%_PROG_HOME%\..") do set "_SCALA_HOME=%%~fi"
43-
44-
call "%_JAVACMD%" %_JAVA_OPTS% %_JAVA_DEBUG% %_JAVA_ARGS% %_JVM_CP_ARGS% ^
45-
-Dscala.home="%_SCALA_HOME%" -Dscala.usejavacp=true ^
46-
%_PROG_NAME% %_SCALA_ARGS% %_RESIDUAL_ARGS% %_SCRIPTING_STRING%
24+
call "%_JAVACMD%" %_JAVA_ARGS% -classpath "%_JVM_CP_ARGS%" "-Dscala.usejavacp=true" "-Dscala.home=%_PROG_HOME%" dotty.tools.MainGenericCompiler %_SCALA_ARGS%
4725
if not %ERRORLEVEL%==0 (
4826
set _EXITCODE=1
4927
goto end
@@ -54,92 +32,59 @@ goto end
5432
@rem ## Subroutines
5533

5634
:args
57-
set _JAVA_DEBUG=
58-
set _HELP=
59-
set _VERBOSE=
60-
set _QUIET=
61-
set _COLORS=
62-
set _PROG_NAME=%_COMPILER_MAIN%
63-
set _SCALA_ARGS=
6435
set _JAVA_ARGS=
65-
set _RESIDUAL_ARGS=
66-
set _SCRIPTING_ARGS=
67-
set _TARGET_SCRIPT=
36+
set _SCALA_ARGS=
37+
set _SCALA_CPATH=
38+
@rem replace inner while loop used in bash script
39+
set _CONSUME_REMAINING=
6840

6941
:args_loop
7042
if "%~1"=="" goto args_done
7143
set "__ARG=%~1"
72-
if defined _TARGET_SCRIPT (
73-
call :addScripting "%__ARG%"
44+
if defined _CONSUME_REMAINING (
45+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
46+
shift
7447
) else if "%__ARG%"=="--" (
75-
@rem for arg; do addResidual "$arg"; done; set -- ;;
76-
) else if "%__ARG%"=="-h" (
77-
set _HELP=true
78-
call :addScala "-help"
79-
) else if "%__ARG%"=="-help" (
80-
set _HELP=true
81-
call :addScala "-help"
82-
) else if "%__ARG%"=="-v" (
83-
set _VERBOSE=true
84-
call :addScala "-verbose"
85-
) else if "%__ARG%"=="-verbose" (
86-
set _VERBOSE=true
87-
call :addScala "-verbose"
88-
) else if "%__ARG%"=="-debug" ( set "_JAVA_DEBUG=%_DEBUG_STR%"
89-
) else if "%__ARG%"=="-q" ( set _QUIET=true
90-
) else if "%__ARG%"=="-quiet" ( set _QUIET=true
91-
@rem Optimize for short-running applications, see https://github.com/lampepfl/dotty/issues/222
92-
) else if "%__ARG%"=="-Oshort" (
93-
call :addJava "-XX:+TieredCompilation -XX:TieredStopAtLevel=1"
94-
) else if "%__ARG%"=="-repl" ( set _PROG_NAME=%_REPL_MAIN%
48+
@rem pass all remaining arguments to scala, e.g. to avoid interpreting them here as -D or -J
49+
set _CONSUME_REMAINING=1
50+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
51+
shift
9552
) else if "%__ARG%"=="-script" (
96-
set _PROG_NAME=%_SCRIPTING_MAIN%
97-
if "%~2"=="" goto args_done
98-
set "_TARGET_SCRIPT=%~2"
53+
@rem pass all remaining arguments to scala, e.g. to avoid interpreting them here as -D or -J
54+
set _CONSUME_REMAINING=1
55+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
9956
shift
100-
) else if "%__ARG%"=="-compile" ( set _PROG_NAME=%_COMPILER_MAIN%
101-
) else if "%__ARG%"=="-decompile" ( set _PROG_NAME=%_DECOMPILER_MAIN%
102-
) else if "%__ARG%"=="-print-tasty" (
103-
set _PROG_NAME=%_DECOMPILER_MAIN%
104-
call :addScala "-print-tasty"
105-
) else if "%__ARG%"=="-run" ( set _PROG_NAME=%_REPL_MAIN%
106-
) else if "%__ARG%"=="-colors" ( set _COLORS=true
107-
) else if "%__ARG%"=="-no-colors" ( set _COLORS=
108-
) else if "%__ARG%"=="-with-compiler" ( set "_JVM_CP_ARGS=%_PSEP%%_SCALA3_COMP%%_PSEP%%_TASTY_CORE%"
109-
@rem break out -D and -J options and add them to JAVA_OPTS as well
110-
@rem so they reach the JVM in time to do some good. The -D options
111-
@rem will be available as system properties.
112-
) else if "%__ARG:~0,2%"=="-D" ( call :addJava "%__ARG%"
113-
) else if "%__ARG:~0,2%"=="-J" ( call :addJava "%__ARG:~2%"
114-
) else ( call :addResidual "%__ARG%"
57+
) else if "%__ARG%"=="-Oshort" (
58+
@rem optimize for short-running applications, see https://github.com/lampepfl/dotty/issues/222
59+
set _JAVA_ARGS=!_JAVA_ARGS! "-XX:+TieredCompilation" "-XX:TieredStopAtLevel=1"
60+
set _SCALA_ARGS=!_SCALA_ARGS! -Oshort
61+
shift
62+
) else if "%__ARG:~0,2%"=="-D" (
63+
@rem pass to scala as well: otherwise we lose it sometimes when we
64+
@rem need it, e.g. communicating with a server compiler.
65+
set _JAVA_ARGS=!_JAVA_ARGS! "%__ARG%"
66+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
67+
) else if "%__ARG:~0,2%"=="-J" (
68+
@rem as with -D, pass to scala even though it will almost
69+
@rem never be used.
70+
set _JAVA_ARGS=!_JAVA_ARGS! %__ARG:~2%
71+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
72+
) else if "%__ARG%"=="-classpath" (
73+
set "_SCALA_CPATH=%~2"
74+
shift
75+
) else if "%__ARG%"=="-cp" (
76+
set "_SCALA_CPATH=%~2"
77+
shift
78+
) else (
79+
set _SCALA_ARGS=!_SCALA_ARGS! "%__ARG%"
11580
)
11681
shift
11782
goto args_loop
11883
:args_done
11984
goto :eof
12085

121-
@rem output parameter: _SCALA_ARGS
122-
:addScala
123-
set _SCALA_ARGS=%_SCALA_ARGS% %~1
124-
goto :eof
125-
126-
@rem output parameter: _JAVA_ARGS
127-
:addJava
128-
set _JAVA_ARGS=%_JAVA_ARGS% %~1
129-
goto :eof
130-
131-
@rem output parameter: _RESIDUAL_ARGS
132-
:addResidual
133-
set _RESIDUAL_ARGS=%_RESIDUAL_ARGS% %~1
134-
goto :eof
135-
136-
@rem output parameter: _SCRIPTING_ARGS
137-
:addScripting
138-
set _SCRIPTING_ARGS=%_SCRIPTING_ARGS% %~1
139-
goto :eof
140-
14186
@rem output parameter: _JVM_CP_ARGS
142-
:classpathArgs
87+
:compilerJavaClasspathArgs
14388
@rem echo scala3-compiler: %_SCALA3_COMP%
14489
@rem echo scala3-interface: %_SCALA3_INTF%
14590
@rem echo scala3-library: %_SCALA3_LIB%
@@ -162,9 +107,13 @@ set "__TOOLCHAIN=%__TOOLCHAIN%%_SCALA3_TASTY_INSPECTOR%%_PSEP%"
162107
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_READER%%_PSEP%"
163108
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL%%_PSEP%"
164109
set "__TOOLCHAIN=%__TOOLCHAIN%%_JLINE_TERMINAL_JNA%%_PSEP%"
165-
set "__TOOLCHAIN=%__TOOLCHAIN%%_JNA%"
110+
set "__TOOLCHAIN=%__TOOLCHAIN%%_JNA%%_PSEP%"
166111

167-
set _JVM_CP_ARGS=-classpath "%__TOOLCHAIN%"
112+
if defined _SCALA_CPATH (
113+
set "_JVM_CP_ARGS=%__TOOLCHAIN%%_SCALA_CPATH%"
114+
) else (
115+
set "_JVM_CP_ARGS=%__TOOLCHAIN%"
116+
)
168117
goto :eof
169118

170119
@rem #########################################################################

0 commit comments

Comments
 (0)