..
.TH mcs 1 "6 January 2001"
.SH NAME
-mcs \- Mono C# Compiler
+mcs \- Turbo C# Compiler
.SH SYNOPSIS
.B mcs
[option] [source-files]
.SH DESCRIPTION
-mcs is the Mono C# compiler, an implementation of the ECMA-334
-language specification. You can pass one or more options to drive the
-compiler, and a set of source files. Extra options or arguments can
-be provided in a response file. Response files are referenced by
-prepending the @ symbol to the response file name.
+mcs is the Turbo C# compiler (also known as the Mono C# compiler), it
+is an implementation of the ECMA-334 language specification. You can
+pass one or more options to drive the compiler, and a set of source
+files. Extra options or arguments can be provided in a response file.
+Response files are referenced by prepending the @ symbol to the
+response file name.
.PP
The
.I mcs
compiler is used to compile against the latest Mono Base Class Library
-version and fully implements C# 1.0, 2.0, 3.0 and 4.0 specifications.
+version and fully implements C# 1.0, 2.0, 3.0, 4.0, 5.0 and 6.0
+specifications with partial support for C# 7.0.
.PP
See the section on packages for more information.
.PP
-The Mono C# compiler accepts the same command line options that the
+The Turbo C# compiler accepts the same command line options that the
Microsoft C# compiler does. Those options can start with a slash or a
dash (/checked is the same as -checked). Additionally some GNU-like
options are supported, those begin with "--". All MCS-specific flags
compilation, you should compile programs into their own assemblies,
and later reference them with the "-r" flag.
.PP
-The Mono C# compiler generates images (.exe files) that contain CIL
+The Turbo C# compiler generates images (.exe files) that contain CIL
byte code that can be executed by any system that implements a Common
Language Infrastructure virtual machine such as the Microsoft .NET
runtime engine on Windows or the Mono runtime engine on Unix systems.
Executables are not bound to a specific CPU or operating system.
.PP
-The Mono C# compiler by default only references three assemblies:
+The Turbo C# compiler by default only references three assemblies:
mscorlib.dll, System.dll and System.Xml.dll. If you want to
reference extra libraries you must manually specify them using the
-pkg: command line option or the -r: command line option.
.SH OPTIONS
.TP
.I \-\-about
-Displays information about the Mono C# compiler
+Displays information about the Turbo C# compiler
.TP
.I \-\-addmodule:MODULE1[,MODULE2]
Includes the specified modules in the resulting assembly. Modules are
.TP
.I "Default"
Instruct compiler to use the latest version. Equivalent is to omit the
-switch (this currently defaults to the C# 4.0 language specification).
+switch (this currently defaults to the C# 6.0 language specification).
.TP
.I "ISO-1"
Restrict compiler to use only first ISO standardized features.
Restrict the compiler to use only the features available in C# 4.0
specification.
.TP
-.I "future"
+.I "5"
+Restrict the compiler to use only the features available in C# 5.0
+specification.
+.TP
+.I "6"
+Restrict the compiler to use only the features available in C# 6.0
+specification.
+.TP
+.I "experimental"
Enables unstable features from upcoming versions of the language.
.PP
Notice that this flag only restricts the language features available to
-the programmer. A version of produced assemblies can be controled using
+the programmer. A version of produced assemblies can be controlled using
.I SDK
option.
.ne
.I \-\-parse
Used for benchmarking. The compiler will only parse its input files.
.TP
+.I \-pathmap:K=V[,Kn=Vn]
+Sets a mapping for source path names used in generated output.
+.TP
.I \-pkg:package1[,packageN]
Reference assemblies for the given packages.
.Sp
available on a typical dotnet framework installation, notice that this
does not include all of the Mono libraries, only the System.* ones. This
is a convenient shortcut for those porting code.
-.TP
-.I \-pkg:olive
-Use this to reference the "Olive" libraries (the 3.0 and 3.5 extended
-libraries).
-.TP
-.I \-pkg:silver
-References the assemblies for creating Moonlight/Silverlight
-applications.
-.TP
-.I \-pkg:silverdesktop
-Use this option to create Moonlight/Silverlight applications that
-target the desktop. This option allows developers to consume the
-Silverlight APIs with the full 2.0 profile API available to them,
-unlike
-.I smcs
-it gives full access to all the APIs that are part of Mono. The only
-downside is that applications created with silverdesktop will not run
-on the browser. Typically these applications will be launched
-with the
-.I mopen
-command line tool.
-.TP
-For more details see the PACKAGE section in this document
.ne
.RE
.TP
Alternative licensing for the compiler is available from Xamarin.
.PP
.SH SEE ALSO
-csharp(1), mdb(1), mono(1), mopen(1), pkg-config(1), sn(1)
+csharp(1), mono(1), pkg-config(1), sn(1)
.PP
.SH BUGS
To report bugs in the compiler, you must file them on our bug tracking