2004-04-24 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
[mono.git] / man / mono.1
index ce545828a9919ed27a930bfe7f784adfc460c95a..5160fd99310b5b60800b4e91316965c52613ee85 100644 (file)
@@ -46,6 +46,19 @@ This option is used to precompile the CIL code in the specified
 assembly to native code.  The generated code is stored in a file with
 the extension .so.  This file will be automatically picked up by the
 runtime when the assembly is executed.  
+.Sp 
+Ahead-of-Time compilation is most useful if you use it in combination
+with the -O=all,-shared flag which enables all of the optimizations in
+the code generator to be performed.  Some of those optimizations are
+not practical for Just-in-Time compilation since they might be very
+time consuming.
+.Sp
+Unlike the .NET Framework, Ahead-of-Time compilation will not generate
+domain independent code: it generates the same code that the
+Just-in-Time compiler would produce.   Since most applications use a
+single domain, this is fine.   If you want to optimize the generated
+code for use in multi-domain applications, consider using the
+-O=shared flag.
 .Sp
 This pre-compiles the methods, but the original assembly is still
 required to execute as this one contains the metadata and exception
@@ -136,7 +149,7 @@ This generates a postscript file with a graph with the details about
 the specified method (namespace.name:methodname).  This requires `dot'
 and ghostview to be installed (it expects Ghostview to be called
 "gv"). 
-.TP
+.PP
 The following graphs are available:
 .nf
           cfg        Control Flow Graph (CFG)
@@ -171,41 +184,53 @@ application with a native debugger when an exception is thrown.
 .I "--trace[=expression]"
 Shows method names as they are invoked.  By default all methods are
 traced. 
-.TP
+.PP
 The trace can be customized to include or exclude methods, classes or
 assemblies.  A trace expression is a comma separated list of targets,
 each target can be prefixed with a minus sign to turn off a particular
 target.  The words `program' and `all' have special meaning.
 `program' refers to the main program being executed, and `all' means
 all the method calls. 
-.TP
+.PP
 Assemblies are specified by their name, for example, to trace all
 calls in the System assembly, use:
 .nf
+
        mono --trace=System app.exe
+
 .fi
 Classes are specified with the T: prefix.  For example, to trace all
 calls to the System.String class, use:
 .nf
+
        mono --trace=T:System.String app.exe
+
 .fi
 And individual methods are referenced with the M: prefix, and the
 standar method notation:
 .nf
+
        mono --trace=M:System.Console.WriteLine app.exe
+
 .fi
 As previously noted, various rules can be specified at once:
 .nf
+
        mono --trace=T:System.String,T:System.Random app.exe
+
 .fi
 You can exclude pieces, the next example traces calls to
 System.String except for the System.String:Concat method.
 .nf
+
        mono --trace=T:System.String,-M:System.String:Concat
+
 .fi
 Finally, namespaces can be specified using the N: prefix:
 .nf
+
        mono --trace=N:System.Xml
+
 .fi
 .SH ENVIRONMENT VARIABLES
 .TP
@@ -218,12 +243,6 @@ Provides a search path to the runtime where to look for library files.
 Directories are separated by the platform path separator (colons on unix). Example:
 .B /home/username/lib:/usr/local/mono/lib
 .TP
-.I "MONO_DISABLE_SHM"
-If this variable is set, it disables the shared memory part of the
-Windows I/O Emulation layer, and handles (files, events, mutexes,
-pipes) will not be shared across processes.  Process creation is also
-disabled.  This option is only available on Unix.
-.TP
 .I "MONO_CFG_DIR"
 If set, this variable overrides the default system configuration directory
 ($PREFIX/etc). It's used to locate machine.config file.
@@ -238,10 +257,20 @@ If set, enables some features of the runtime useful for debugging.
 Currently it only makes the runtime display the stack traces for all the
 threads running and exit. It may not exit cleanly. Use at your own risk.
 .TP
+.I "MONO_DISABLE_AIO"
+If set, tells mono NOT to attempt using native asynchronous I/O services. In
+that case, the threadpool is used for asynchronous I/O on files and sockets.
+.TP
+.I "MONO_DISABLE_SHM"
+If this variable is set, it disables the shared memory part of the
+Windows I/O Emulation layer, and handles (files, events, mutexes,
+pipes) will not be shared across processes.  Process creation is also
+disabled.  This option is only available on Unix.
+.TP
 .I "MONO_EXTERNAL_ENCODINGS"
 If set, contains a colon-separated list of text encodings to try when
 turning externally-generated text (e.g. command-line arguments or
-filenames) into unicode.  The encoding names come from the list
+filenames) into Unicode.  The encoding names come from the list
 provided by iconv, and the special case "default_locale" which refers
 to the current locale's default encoding.
 .TP