2004-04-24 Andreas Nahr <ClassDevelopment@A-SoftTech.com>
[mono.git] / man / mono.1
index 8f172273d231cbe0e25c585e54d20c5662833cb7..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)
@@ -168,10 +181,57 @@ breakpoint on the application's main method.
 Inserts a breakpoint on exceptions.  This allows you to debug your
 application with a native debugger when an exception is thrown.
 .TP
-.I "--trace"
-Shows method names as they are invoked.
+.I "--trace[=expression]"
+Shows method names as they are invoked.  By default all methods are
+traced. 
+.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. 
+.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
 .I "GC_DONT_GC"
@@ -183,11 +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 Windows I/O Emulation layer,
-and handles (files, events, mutexes, pipes) will not be shared across
-processes.  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.
@@ -199,9 +254,56 @@ environment variable.
 .TP
 .I "MONO_DEBUG"
 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
+provided by iconv, and the special case "default_locale" which refers
+to the current locale's default encoding.
+.TP
+When reading externally-generated text strings UTF-8 is tried first,
+and then this list is tried in order with the first successful
+conversion ending the search.  When writing external text (e.g. new
+filenames or arguments to new processes) the first item in this list
+is used, or UTF-8 if the environment variable is not set.
+.TP 
+.I "MONO_SHARED_DIR"
+If set its the directory where the ".wapi" handle state is stored.
+This is the directory where the Windows I/O Emulation layer stores its
+shared state data (files, events, mutexes, pipes).  By default Mono
+will store the ".wapi" directory in the users's home directory.
+.TP
+.I "MONO_UNMANAGED_XSLT"
+If set any value, System.Xml.Xsl.XslTransform uses libxslt-based
+transformation engine (a.k.a Unmanaged XSLT). Unmanaged XSLT has
+long been used for XSLT engine while Managed XSLT engine is so
+new and might have some bugs. Basically we recommend Managed XSLT
+solution, but if it contains some blocking bugs, then you can also
+use traditional libxslt. If you want to use msxsl:script, you have
+to select Managed XSLT.
+.TP
+.I "MONO_MANAGED_WATCHER"
+If set to any value, System.IO.FileSystemWatcher will use the default
+managed implementation (slow). If unset, mono will try to use FAM under
+Unix systems and native API calls on Windows, falling back to the
+managed implementation on error.
+.TP
+.I "MONO_CODEDOM_NODELETE"
+If set to any value, the C# CodeDom compiler will not remove the temporary
+source files generated.
 .SH FILES
 On Unix assemblies are loaded from the installation lib directory.  If you set
 `prefix' to /usr, the assemblies will be located in /usr/lib.  On
@@ -217,6 +319,8 @@ Visit http://mail.ximian.com/mailman/mono-list for details.
 .SH WEB SITE
 Visit: http://www.go-mono.com for details
 .SH SEE ALSO
-.BR mcs(1), mint(1), monodis(1), mono-config(5)
+.BR mcs(1), mint(1), monodis(1), mono-config(5).
+.PP
+For ASP.NET-related documentation, see the xsp(1) manual page