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
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)
.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
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.
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