Man Linux: Main Page and Category List

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 <scala@listes.epfl.ch>.

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)