Man Linux: Main Page and Category List

NAME

       scalac - Compiler for the Scala 2 language

SYNOPSIS

       scalac  [ <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 compiler has a set of standard options that are  supported  on  the
       current  development  environment  and  will  be  supported  in  future
       releases. An additional set of non-standard options are specific to the
       current virtual machine implementation and are subject to change in the
       future.  Non-standard options begin with -X.

   Standard Options
       -g:{none,source,line,vars,notc}
              "none" generates no debugging info,

              "source" generates only the source file attribute,

              "line" generates source and line number information,

              "vars"  generates  source,  line  number  and   local   variable
              information,

              "notc" generates all of the above and will not perform tail call
              optimization.

       -nowarn
              Generate no warnings

       -verbose
              Output messages about what the compiler is doing

       -deprecation
              Indicate whether source  should  be  compiled  with  deprecation
              information;  defaults to off (accepted values are: on, off, yes
              and no)

              Available since Scala version 2.2.1

       -unchecked
              Enable detailed unchecked warnings

              Non variable type-arguments in type patterns are unchecked since
              they are eliminated by erasure

              Available since Scala version 2.3.0

       -classpath <path>
              Specify  where to find user class files (on Unix-based systems a
              colon-separated list  of  paths,  on  Windows-based  systems,  a
              semicolon-separate  list  of  paths). This does not override the
              built-in ("boot") search path.

              The default class path is the  current  directory.  Setting  the
              CLASSPATH  variable  or using the -classpath command-line option
              overrides that default, so if you want to  include  the  current
              directory  in  the  search path, you must include "." in the new
              settings.

       -sourcepath <path>
              Specify where to find input source files.

       -bootclasspath <path>
              Override location of bootstrap class files (where  to  find  the
              standard built-in classes, such as "scala.List").

       -extdirs <dirs>
              Override location of installed extensions.

       -d <directory>
              Specify where to place generated class files.

       -encoding <encoding>
              Specify character encoding used by source files.

              The  default value is platform-specific (Linux: "UTF8", Windows:
              "Cp1252"). Executing the following code in the Scala interpreter
              will return the default value on your system:

                  scala> new java.io.InputStreamReader(System.in).getEncoding

       -target: <target>
              Specify which backend to use (jvm-1.5,jvm-1.4,msil,cldc).

              The  default  value  is  "jvm-1.5"  (was  "jvm-1.4"  up to Scala
              version 2.6.1).

       -print Print program with all Scala-specific features removed

       -optimise
              Generates faster  bytecode  by  applying  optimisations  to  the
              program

       -explaintypes
              Explain type errors in more detail.

       -uniqid
              Print identifiers with unique names (debugging option).

       -version
              Print product version and exit.

       -help  Print a synopsis of standard options.

   Advanced Options
       -Xassem <file>
              Name of the output assembly (only relevant with -target:msil)

       -Xassem-path <path>
              List of assemblies referenced by the program (only relevant with
              -target:msil)

       -Xcheck-null
              Emit warning on selection of nullable reference

       -Xdisable-assertions
              Generate no assertions and assumptions

       -Xexperimental
              enable experimental extensions

       -Xno-uescape
              Disable handling of \u unicode escapes

       -Xplug-types
              Parse but ignore annotations in more locations

       -Xplugin: <file>
              Load a plugin from a file

       -Xplugin-disable: <plugin>
              Disable a plugin

       -Xplugin-list
              Print a synopsis of loaded plugins

       -Xplugin-opt: <plugin:opt>
              Pass an option to a plugin

       -Xplugin-require: <plugin>
              Abort unless a plugin is available

       -Xprint: <phases>
              Print out program after <phases> (see below).

       -Xprint-pos
              Print tree positions (as offsets)

       -Xprint-types
              Print tree types (debugging option).

       -Xprompt
              Display a prompt after each error (debugging option).

       -Xresident
              Compiler stays resident, files to compile are read from standard
              input.

       -Xshow-class <class>
              Show class info.

       -Xshow-object <object>
              Show object info.

       -Xshow-phases
              Print a synopsis of compiler phases.

       -Xsource-reader <classname>
              Specify a custom method for reading source files.

       -Xscript <object>
              Compile as a script, wrapping the code into object.main().

   Compilation Phases
       initial
              initializing compiler

       parse  parse source files

       namer  create symbols

       analyze
              name and type analysis

       refcheck
              reference checking

       uncurry
              uncurry function types and applications

       transmatch
              translate match expressions

       lambdalift
              lambda lifter

       typesasvalues
              represent types as values

       addaccessors
              add accessors for constructor arguments

       explicitouterclasses
              make links from inner classes to enclosing one explicit

       addconstructors
              add explicit constructor for each class

       tailcall
              add tail-calls

       wholeprog
              perform whole program analysis

       addinterfaces
              add one interface per class

       expandmixins
              expand mixins by code copying

       boxing makes boxing explicit

       erasure
              type eraser

       icode  generate icode

       codegen
              enable code generation

       terminal
              compilation terminated

       all    matches all phases

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"

EXAMPLES

       Compile a Scala program to the current directory
              scalac HelloWorld

       Compile a Scala program to the destination directory classes
              scalac -d classes HelloWorld.scala

       Compile a Scala program using a user-defined java command
              env     JAVACMD=/usr/local/bin/cacao     scalac    -d    classes
              HelloWorld.scala

       Compile all Scala files found  in  the  source  directory  src  to  the
       destination directory classes
              scalac -d classes src/*.scala

EXIT STATUS

       scalac returns a zero exist  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

       fsc(1), sbaz(1), scala(1), scaladoc(1)