Provided by: scala_2.9.2+dfsg-2_all bug

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,msil).

              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

       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 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

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