.TH mcs 1 "6 January 2001"
.SH NAME
-mcs, gmcs \- Mono Compiler Suite.
+mcs, gmcs \- Mono C# Compiler (1.0 and 2.0)
.SH SYNOPSIS
.B mcs
[option] [source-files]
C# 1.0 and 2.0 with the exception of generics and nullable types. The
.I gmcs
compiler is used to compile against the 2.x profile and implements
-the complete C# 2.0 specification.
+the complete C# 2.0 specification including generics.
.PP
-The Mono C# compiler accepts the same options than the Microsoft C#
-compiler does. Those options can start with a slash or a dash
-(/checked is the same as -checked). Additionally to this, the
-GNU-like options are supported, those begin with "--". All
-MCS-specific flags which are not available in the Microsoft C#
-compiler are available only with the GNU-style options.
+The Mono 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
+which are not available in the Microsoft C# compiler are available
+only with the GNU-style options.
.PP
C# source files must end with a ".cs" extension. Compilation of C#
source code requires all the files that make up a library, module or
point it is specified on. By default files will be processed in the
Latin-1 code page. The compiler will also automatically detect
Unicode files that have an embedded byte mark at the beginning.
-.TP
+.Sp
Other popular encodings are 28591 (Latin1), 1252 (iso-8859-1) and 65001 (UTF-8).
-.TP
+.Sp
MCS supports a couple of shorthands: "utf8" can be used to specify utf-8 instead
of using the cryptic 65001 and "reset" restores the automatic handling of
code pages. These shorthands are not available on the Microsoft compiler.
.TP
.I \-define:SYMLIST, -d:SYMLIST
-Defines the symbol listed by the semi-colon separeted list SYMLIST
+Defines the symbol listed by the semi-colon separated list SYMLIST
SYMBOL. This can be tested in the source code by the pre-processor,
or can be used by methods that have been tagged with the Conditional
attribute.
set is different in each C# version. This switch can be used to force
the compiler to allow only a subset of the features.
The possible values are:
-.nf
-
-Default - Instruct compiler to use the latest version. Equivalent
-is to omit the switch.
-
-ISO-1 - Restrict compiler to use only ISO standardized features.
+.RS
+.ne 8
+.TP
+.I "Default"
+Instruct compiler to use the latest version. Equivalent is to omit the
+switch (this currently defaults to the C# 2.0 language specification).
+.TP
+.I "ISO-1"
+Restrict compiler to use only ISO standardized features.
The usage of features such as generics, static classes, anonymous
methods will lead to error.
-.Sp
+.TP
+.I "linq"
+This enables the C# 3.0 support. Only a few features of C# 3.0 have
+been implemented in the Mono C# compiler, so not everything is
+available.
+.PP
Notice that this flag only controls the language features available to
the programmer, it does not control the kind of assemblies produced.
Programs compiled with mcs will reference the 1.1 APIs, Programs
compiled with gmcs reference the 2.0 APIs.
+.ne
+.RE
.TP
.I -lib:PATHLIST
Each path specified in the comma-separated list will direct the
compiler by default has references to the system assemblies.
.TP
.I \-nowarn:WARNLIST
-Makes the compiler ignore warnings specified in the comma-separeted
+Makes the compiler ignore warnings specified in the comma-separated
list WARNLIST>
.TP
.I -optimize, -optimize+, -optimize-
The compiler will invoke pkg-config --libs on the set of packages
specified on the command line to obtain libraries and directories to
compile the code.
-.PP
+.Sp
This is typically used with third party components, like this:
.nf
$ mcs -pkg:gtk-sharp demo.cs
.I \-pkg:dotnet
This will instruct the compiler to reference the System.* libraries
available on a typical dotnet framework installation, notice that this
-does not include all of the Mono libraies, only the System.* ones. This
+does not include all of the Mono libraries, only the System.* ones. This
is a convenient shortcut for those porting code.
.TP
.I -resource:RESOURCE[,ID]
.TP
.I \-recurse:PATTERN, --recurse PATTERN
Does recursive compilation using the specified pattern. In Unix the
-shell will perform globbing, so you migth want to use it like this:
+shell will perform globbing, so you might want to use it like this:
.PP
.nf
$ mcs -recurse:'*.cs'
for the compiler, and is not useful to distinguish compilation or
deployment platforms.
.SH AUTHORS
-The Mono C# Compiler was written by Miguel de Icaza, Ravi Pratap and
-Martin Baulig at Ximian.
+The Mono C# Compiler was written by Miguel de Icaza, Ravi Pratap,
+Martin Baulig, Marek Safar and Raja Harinath. The development was
+funded by Ximian, Novell and Marek Safar.
.PP
.SH LICENSE
The Mono Compiler Suite is released under the terms of the GNU GPL.
Please read the accompanying `COPYING' file for details. Alternative
-licenses are available from Ximian.
+licensing for the compiler is available from Novell.
.PP
.SH SEE ALSO
mono(1), mint(1), sn(1)
.PP
.SH BUGS
-To report bugs in the compiler, you can use `bug-buddy', or you can
-file bug reports in our bug tracking system:
-http://bugzilla.ximian.com.
+To report bugs in the compiler, you must file them on our bug tracking
+system, at:
+http://www.mono-project.com/Bugs
.SH MAILING LIST
-The Mono Mailing List is available at: mono-list-request@ximian.com
+The Mono Mailing lists are listed at http://www.mono-project.com/Mailing_Lists
.SH MORE INFORMATION
-The Mono C# compiler is developed by Ximian, Inc
-(http://www.ximian.com) (http://www.ximian.com) and is based on the
+The Mono C# compiler was developed by Novell, Inc
+(http://www.novell.com, http) and is based on the
ECMA C# language standard available here:
http://www.ecma.ch/ecma1/STAND/ecma-334.htm
-
-
+.PP
+The home page for the Mono C# compiler is at http://www.mono-project.com/CSharp_Compiler