\fBMONO_ENV_OPTIONS\fR environment variable to force all of your child
processes to use one particular kind of GC with the Mono runtime.
.TP
+\fB--arch=32\fR, \fB--arch=64\fR
+(Mac OS X only): Selects the bitness of the Mono binary used, if
+available. If the binary used is already for the selected bitness, nothing
+changes. If not, the execution switches to a binary with the selected
+bitness suffix installed side by side (for example, '/bin/mono --arch=64'
+will switch to '/bin/mono64' iff '/bin/mono' is a 32-bit build).
+.TP
\fB--help\fR, \fB-h\fR
Displays usage instructions.
.TP
Turns off the garbage collection in Mono. This should be only used
for debugging purposes
.TP
-\fBLVM_COUNT\fR
+\fBHTTP_PROXY\fR
+(Also \fBhttp_proxy\fR) If set, web requests using the Mono
+Class Library will be automatically proxied through the given URL.
+Not supported on Windows, Mac OS, iOS or Android. See also \fBNO_PROXY\fR.
+.TP
+\fBLLVM_COUNT\fR
When Mono is compiled with LLVM support, this instructs the runtime to
stop using LLVM after the specified number of methods are JITed.
This is a tool used in diagnostics to help isolate problems in the
.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.
+"1", Mono will always emit soft float code, even if a VFP unit is
+detected.
+.TP
+\fBMONO_DARWIN_WATCHER_MAXFDS\fR
+This is a debugging aid used to force limits on the FileSystemWatcher
+implementation in Darwin. There is no limit by default.
.TP
\fBMONO_DISABLE_AIO\fR
If set, tells mono NOT to attempt using native asynchronous I/O services. In
this can be set to the name of a file system socket on which an egd or
prngd daemon is listening.
.TP
+\fBMONO_ENABLE_COOP\fR
+This makes the Mono runtime and the SGen garbage collector run in cooperative
+mode as opposed to run on preemptive mode. Preemptive mode is the mode
+that Mono has used historically, going back to the Boehm days, where the
+garbage collector would run at any point and suspend execution of all
+threads as required to perform a garbage collection. The cooperative mode
+on the other hand requires the cooperation of all threads to stop at a
+safe point. This makes for an easier to debug garbage collector. As
+of Mono 4.3.0 it is a work in progress, and while it works, it has not
+been used extensively. This option enabled the feature and allows us to
+find spots that need to be tuned for this mode of operation. Alternatively,
+this mode can be enabled at compile time by using the --with-cooperative-gc
+flag when calling configure.
+.TP
\fBMONO_ENABLE_SHM\fR
Unix only: Enable support for cross-process handles. Cross-process
handles are used to expose process handles, thread handles, named
.RS
.ne 8
.TP
+\fBmax-heap-size=\fIsize\fR
+Sets the maximum size of the heap. The size is specified in bytes and must
+be a power of two. The suffixes `k', `m' and `g' can be used to
+specify kilo-, mega- and gigabytes, respectively. The limit is the sum
+of the nursery, major heap and large object heap. Once the limit is reached
+the application will receive OutOfMemoryExceptions when trying to allocate.
+Not the full extent of memory set in max-heap-size could be available to
+satisfy a single allocation due to internal fragmentation. By default heap
+limits is disabled and the GC will try to use all available memory.
+.TP
\fBnursery-size=\fIsize\fR
Sets the size of the nursery. The size is specified in bytes and must
be a power of two. The suffixes `k', `m' and `g' can be used to
Enables or disables cementing. This can dramatically shorten nursery
collection times on some benchmarks where pinned objects are referred
to from the major heap.
+.TP
+\fBallow-synchronous-major\fR
+This forbids the major collector from performing synchronous major collections.
+The major collector might want to do a synchronous collection due to excessive
+fragmentation. Disabling this might trigger OutOfMemory error in situations that
+would otherwise not happen.
.ne
.RE
.TP
heap corruption issues.
.TP
-\fBdo-not-finalize\fR
+\fBdo-not-finalize(=\fIclasses\fB)\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.
+collected regularly. If a list of comma-separated class names is
+given, only objects from those classes will not be finalized.
.TP
\fBlog-finalizers\fR
at all. The other possible values are 'offline', which performs CRL check (not
implemented yet) and 'online' which uses OCSP and CRL to verify the revocation
status (not implemented yet).
+.TP
+\fBNO_PROXY\fR
+(Also \fBno_proxy\fR) If both \fBHTTP_PROXY\fR and \fBNO_PROXY\fR are
+set, \fBNO_PROXY\fR will be treated as a comma-separated list of "bypass" domains
+which will not be sent through the proxy. Domains in \fBNO_PROXY\fR may contain
+wildcards, as in "*.mono-project.com" or "build????.local". Not supported on
+Windows, Mac OS, iOS or Android.
.SH ENVIRONMENT VARIABLES FOR DEBUGGING
.TP
\fBMONO_ASPNET_NODELETE\fR
synchronously. The default mode of operation is asynchronous which
makes it hard to isolate the root of certain problems.
.TP
-\fBMONO_GENERIC_SHARING\fR
-This environment variable controls the kind of generic sharing used.
-This variable is used by internal JIT developers and should not be
-changed in production. Do not use it.
-.Sp
-The variable controls which classes will have generic code sharing
-enabled.
-.Sp
-Permissible values are:
-.RS
-.TP
-.I "all"
-All generated code can be shared.
-.TP
-.I "collections"
-Only the classes in System.Collections.Generic will have its code
-shared (this is the default value).
-.TP
-.I "corlib"
-Only code in corlib will have its code shared.
-.TP
-.I "none"
-No generic code sharing will be performed.
-.RE
-.Sp
-Generic code sharing by default only applies to collections. The
-Mono JIT by default turns this on.
-.TP
\fBMONO_XDEBUG\fR
When the the MONO_XDEBUG env var is set, debugging info for JITted
code is emitted into a shared library, loadable into gdb. This enables,