TARGET_JVM: ignore failures in Sys.Net
[mono.git] / man / mcs.1
old mode 100755 (executable)
new mode 100644 (file)
index 575126f..5cb188f
--- a/man/mcs.1
+++ b/man/mcs.1
@@ -1,6 +1,6 @@
 .TH mcs 1 "6 January 2001"
 .SH NAME 
-mcs \- Mono Compiler Suite.
+mcs, gmcs \- Mono C# Compiler (1.0 and 2.0)
 .SH SYNOPSIS
 .B mcs 
 [option] [source-files]
@@ -11,12 +11,20 @@ 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 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 
+.I mcs
+compiler is used to compile against the 1.x profile and implements
+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 including generics.
+.PP
+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
@@ -31,6 +39,13 @@ 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:
+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.
+Alternatively if you want to get all of the System libraries, you can
+use the -pkg:dotnet command line option.
+.PP
 .SH OPTIONS
 .TP
 .I \-\-about
@@ -51,12 +66,16 @@ the math operations unchecked (this is the default).
 Specifies the code page used to process the input files from the
 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.   The
-special ID "utf8" can be used to switch to utf8 and the ID "reset"
-restores the automatic handling of code pages.
+Unicode files that have an embedded byte mark at the beginning.   
+.Sp
+Other popular encodings are 28591 (Latin1), 1252 (iso-8859-1) and 65001 (UTF-8).
+.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. 
@@ -117,15 +136,30 @@ The option specifies the version of the language to use. The feature
 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.
 .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 to look for libraries in that specified path.
@@ -147,7 +181,7 @@ Disables the default compiler configuration to be loaded.  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-
@@ -165,7 +199,7 @@ Used for benchmarking.  The compiler will only parse its input files.
 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
@@ -175,8 +209,9 @@ This is typically used with third party components, like this:
 .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]
 Embeds to the given resource file.  The optional ID can be used to
 give a different name to the resource.  If not specified, the resource
@@ -197,7 +232,7 @@ comma.
 .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' 
@@ -284,27 +319,28 @@ compiler specific code.   Please note that this symbol is only to test
 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