runtime version of the compiling Mono. This will prevent the AOT
files from being consumed by a different Mono runtime.
.I full
+.Sp
This is currently an experimental feature as it is not complete.
This instructs Mono to precompile code that has historically not been
precompiled with AOT.
.I nodebug
Instructs the AOT compiler to not output any debugging information.
.TP
+.I no-direct-calls
+This prevents the AOT compiler from generating a direct calls to a
+method. The AOT compiler usually generates direct calls for certain
+methods that do not require going through the PLT (for example,
+methods that are known to not require a hook like a static
+constructor) or call into simple internal calls.
+.TP
.I dwarfdebug
Instructs the AOT compiler to emit DWARF debugging information. When
used together with the nodebug option, only DWARF debugging
.I write-symbols
Instructs the AOT compiler to emit debug symbol information.
.PP
-For more information about AOT, see: http://www.mono-project.com/AOT
+For more information about AOT, see: http://www.mono-project.com/docs/advanced/aot/
.RE
.TP
\fB--attach=[options]\fR
in all configurations), Mono will use the LLVM optimization and code
generation engine to JIT or AOT compile.
.Sp
-For more information, consult: http://www.mono-project.com/Mono_LLVM
+For more information, consult: http://www.mono-project.com/docs/advanced/mono-llvm/
.TP
\fB--nollvm\fR
When using a Mono that has been compiled with LLVM support, it forces
.I core-clr
Enables the core-clr security system, typically used for
Moonlight/Silverlight applications. It provides a much simpler
-security system than CAS, see http://www.mono-project.com/Moonlight
+security system than CAS, see http://www.mono-project.com/docs/web/moonlight/
for more details and links to the descriptions of this new system.
.TP
.I validil
be on your dynamic linker library path.
.PP
A list of other third party profilers is available from Mono's web
-site (www.mono-project.com/Performance_Tips)
+site (www.mono-project.com/docs/advanced/performance-tips/)
.PP
Custom profiles are written as shared libraries. The shared library
must be called `mono-profiler-NAME.so' where `NAME' is the name of
.fi
.PP
+.SH DEBUGGING WITH LLDB
+If you are using LLDB, you can use the
+.B mono.py
+script to print some internal data structures with it. To use this,
+add this to your
+.B $HOME/.lldbinit
+file:
+.nf
+command script import $PREFIX/lib/mono/lldb/mono.py
+.fi
+.PP
+Where $PREFIX is the prefix value that you used when you configured
+Mono (typically /usr).
+.PP
+Once this is done, then you can inspect some Mono Runtime data structures,
+for example:
+.nf
+(lldb) p method
+
+(MonoMethod *) $0 = 0x05026ac0 [mscorlib]System.OutOfMemoryException:.ctor()
+.fi
.SH SERIALIZATION
Mono's XML serialization engine by default will use a reflection-based
approach to serialize which might be slow for continuous processing
.fi
.TP
+\fBMONO_ARM_FORCE_SOFT_FLOAT\fR
+When Mono is built with a soft float fallback on ARM and this variable is set to
+"1", Mono will always emit soft float code, even if a VFP unit is detected.
+.TP
\fBMONO_DISABLE_AIO\fR
If set, tells mono NOT to attempt using native asynchronous I/O services. In
that case, a default select/poll implementation is used. Currently only epoll()
program but will obviously use more memory. The default nursery size
4 MB.
.TP
-\fBmajor=\fIcollector\fR
-Specifies which major collector to use. Options are `marksweep' for
-the Mark&Sweep collector, `marksweep-conc' for concurrent Mark&Sweep,
-`marksweep-par' for parallel Mark&Sweep, `marksweep-fixed' for
-Mark&Sweep with a fixed heap, and `marksweep-fixed-par' for parallel
-Mark&Sweep with a fixed heap. The Mark&Sweep collector is the default.
-.TP
-\fBmajor-heap-size=\fIsize\fR
-Sets the size of the major heap (not including the large object space)
-for the fixed-heap Mark&Sweep collector (i.e. `marksweep-fixed' and
-`marksweep-fixed-par'). The size is in bytes, with optional suffixes
-`k', `m' and `g' to specify kilo-, mega- and gigabytes, respectively.
-The default is 512 megabytes.
+\fBmajor=\fIcollector\fR Specifies which major collector to use.
+Options are `marksweep' for the Mark&Sweep collector, and
+`marksweep-conc' for concurrent Mark&Sweep. The non-concurrent
+Mark&Sweep collector is the default.
.TP
\fBsoft-heap-limit=\fIsize\fR
Once the heap size gets larger than this size, ignore what the default
.TP
\fB(no-)lazy-sweep\fR
Enables or disables lazy sweep for the Mark&Sweep collector. If
-enabled, the sweep phase of the garbage collection is done piecemeal
-whenever the need arises, typically during nursery collections. Lazy
-sweeping is enabled by default.
+enabled, the sweeping of individual major heap blocks is done
+piecemeal whenever the need arises, typically during nursery
+collections. Lazy sweeping is enabled by default.
+.TP
+\fB(no-)concurrent-sweep\fR
+Enables or disables concurrent sweep for the Mark&Sweep collector. If
+enabled, the iteration of all major blocks to determine which ones can
+be freed and which ones have to be kept and swept, is done
+concurrently with the running program. Concurrent sweeping is enabled
+by default.
.TP
\fBstack-mark=\fImark-mode\fR
Specifies how application threads should be scanned. Options are
Performs a check to make sure that no references are left to an
unloaded AppDomain.
.TP
+\fBclear-at-tlab-creation\fR
+Clears the nursery incrementally when the thread local allocation
+buffers (TLAB) are created. The default setting clears the whole
+nursery at GC time.
+.TP
+\fBdebug-clear-at-tlab-creation\fR
+Clears the nursery incrementally when the thread local allocation
+buffers (TLAB) are created, but at GC time fills it with the byte
+`0xff`, which should result in a crash more quickly if
+`clear-at-tlab-creation` doesn't work properly.
+.TP
\fBclear-at-gc\fR
This clears the nursery at GC time instead of doing it when the thread
local allocation buffer (TLAB) is created. The default is to clear
.nf
sgen-grep-binprot 0x1234 0x5678 < file
.fi
+.TP
+\fBnursery-canaries\fR
+If set, objects allocated in the nursery are suffixed with a canary (guard)
+word, which is checked on each minor collection. Can be used to detect/debug
+heap corruption issues.
+
+.TP
+\fBdo-not-finalize\fR
+If enabled, finalizers will not be run. Everything else will be
+unaffected: finalizable objects will still be put into the
+finalization queue where they survive until they're scheduled to
+finalize. Once they're not in the queue anymore they will be
+collected regularly.
+
+.TP
+\fBlog-finalizers\fR
+Log verbosely around the finalization process to aid debugging.
.ne
.RE
.TP
.Sp
For a complete description of recommended practices for application
deployment, see
-http://www.mono-project.com/Guidelines:Application_Deployment
+http://www.mono-project.com/docs/getting-started/application-deployment/
.TP
\fBMONO_RTC\fR
Experimental RTC support in the statistical profiler: if the user has
.Sp
The default is "win32".
.TP
+\fBMONO_THREAPOOL\fR
+This environment variable can be used to choose the implementation of
+the ThreadPool used at runtime. By default this uses the long term
+Mono threadpool implementation. But a new "microsoft" value switches
+the threadpool implementation to Microsoft's CoreCLR/ReferenceSource implementation.
+.TP
\fBMONO_TLS_SESSION_CACHE_TIMEOUT\fR
The time, in seconds, that the SSL/TLS session cache will keep it's entry to
avoid a new negotiation between the client and a server. Negotiation are very
page.
.SH MAILING LISTS
Mailing lists are listed at the
-http://www.mono-project.com/Mailing_Lists
+http://www.mono-project.com/community/help/mailing-lists/
.SH WEB SITE
http://www.mono-project.com
.SH SEE ALSO
mono-config(5), mozroots(1), mprof-report(1), pdb2mdb(1), xsp(1), mod_mono(8).
.PP
For more information on AOT:
-http://www.mono-project.com/AOT
+http://www.mono-project.com/docs/advanced/aot/
.PP
For ASP.NET-related documentation, see the xsp(1) manual page