NAME¶
fsc - Fast offline compiler for the Scala 2 language
SYNOPSIS¶
fsc [ <
options> ] <
source files>
PARAMETERS¶
- <options>
- Command line options. See OPTIONS below.
- <source files>
- One or more source files to be compiled (such as
MyClass.scala).
OPTIONS¶
The offline compiler supports all options of
scalac plus the following:
- -reset
- Reset compile server caches.
- -shutdown
- Shut down the compilation daemon. The daemon attempts to
restart itself as necessary, but sometimes an explicit shutdown is
required. A common example is if jars on the class path have changed.
- -server <hostname:portnumber>
- Specify compile server host at port number. Usually this
option is not needed. Note that the hostname must be for a host that
shares the same filesystem.
- -J <flag>
- Pass <flag> directly to the Java VM for the
compilation daemon.
DESCRIPTION¶
The
fsc tool submits Scala compilation jobs to a compilation daemon. The
first time it is executed, the daemon is started automatically. On subsequent
runs, the same daemon can be reused, thus resulting in a faster compilation.
The tool is especially effective when repeatedly compiling with the same class
paths, because the compilation daemon can reuse a compiler instance.
The compilation daemon is smart enough to flush its cached compiler when the
class path changes. However, if the contents of the class path change, for
example due to upgrading a library, then the daemon should be explicitly shut
down with
-shutdown.
Note that the
scala script runner will also use the offline compiler by
default, with the same advantages and caveats.
EXAMPLE¶
The following session shows a typical speed up due to using the offline
compiler.
> fsc -verbose -d /tmp test.scala
...
[Port number: 32834]
[Starting new Scala compile server instance]
[Classpath = ...]
[loaded directory path ... in 692ms]
...
[parsing test.scala]
...
[total in 943ms]
> fsc -verbose -d /tmp test.scala
...
[Port number: 32834]
[parsing test.scala]
...
[total in 60ms]
> fsc -verbose -d /tmp test.scala
...
[Port number: 32834]
[parsing test.scala]
...
[total in 42ms]
> fsc -verbose -shutdown
[Scala compile server exited]
ENVIRONMENT¶
- JAVACMD
- Specify the java command to be used for running the
Scala code. Arguments may be specified as part of the environment
variable; spaces, quotation marks, etc., will be passed directly to the
shell for expansion.
- JAVA_HOME
- Specify JDK/JRE home directory. This directory is used to
locate the java command unless JAVACMD variable set.
- JAVA_OPTS
- Specify the options to be passed to the java command
defined by JAVACMD.
- With Java 1.5 (or newer) one may for example configure the
memory usage of the JVM as follows: JAVA_OPTS="-Xmx512M -Xms16M
-Xss16M"
- With GNU Java one may configure the memory usage of the GIJ
as follows: JAVA_OPTS="--mx512m --ms16m"
-
EXIT STATUS¶
fsc returns a zero exit status if it succeeds to compile the specified
input files. Non zero is returned in case of failure.
AUTHOR¶
Written by Martin Odersky and other members of the Scala team.
REPORTING BUGS¶
Report bugs to
http://lampsvn.epfl.ch/trac/scala.
COPYRIGHT¶
This is open-source software, available to you under a BSD-like license. See
accomponying "copyright" or "LICENSE" file for copying
conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR
A PARTICULAR PURPOSE.
SEE ALSO¶
sbaz(1),
scala(1),
scalac(1),
scaladoc(1),
scalap(1)