trusty (1) scalac.1.gz

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.

       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)