Imported Upstream version 5.8.0.22

Former-commit-id: df344e34b07851d296efb3e6604c8db42b6f7aa3
This commit is contained in:
Xamarin Public Jenkins (auto-signing)
2017-10-19 20:04:20 +00:00
parent 5f4a27cc8a
commit 7d05485754
5020 changed files with 114082 additions and 186061 deletions

View File

@@ -162,6 +162,7 @@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BOEHM_DEFINES = @BOEHM_DEFINES@
BREAKPOINT = @BREAKPOINT@
BTLS_ARCH = @BTLS_ARCH@
BTLS_CFLAGS = @BTLS_CFLAGS@
BTLS_CMAKE_ARGS = @BTLS_CMAKE_ARGS@
@@ -202,12 +203,27 @@ EXEEXT = @EXEEXT@
FGREP = @FGREP@
GDKX11 = @GDKX11@
GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
GINT_TO_POINTER = @GINT_TO_POINTER@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
GMSGFMT = @GMSGFMT@
GMSGFMT_015 = @GMSGFMT_015@
GNUC_NORETURN = @GNUC_NORETURN@
GNUC_PRETTY = @GNUC_PRETTY@
GNUC_UNUSED = @GNUC_UNUSED@
GPOINTER_TO_INT = @GPOINTER_TO_INT@
GPOINTER_TO_UINT = @GPOINTER_TO_UINT@
GREP = @GREP@
GSIZE = @GSIZE@
GSIZE_FORMAT = @GSIZE_FORMAT@
GTKX11 = @GTKX11@
GUINT_TO_POINTER = @GUINT_TO_POINTER@
G_GINT32_FORMAT = @G_GINT32_FORMAT@
G_GINT64_FORMAT = @G_GINT64_FORMAT@
G_GUINT32_FORMAT = @G_GUINT32_FORMAT@
G_GUINT64_FORMAT = @G_GUINT64_FORMAT@
G_HAVE_ISO_VARARGS = @G_HAVE_ISO_VARARGS@
HAVE_ALLOCA_H = @HAVE_ALLOCA_H@
HAVE_MSGFMT = @HAVE_MSGFMT@
HOST_CC = @HOST_CC@
INSTALL = @INSTALL@
@@ -252,6 +268,8 @@ NM = @NM@
NMEDIT = @NMEDIT@
OBJDUMP = @OBJDUMP@
OBJEXT = @OBJEXT@
ORDER = @ORDER@
OS = @OS@
OTOOL = @OTOOL@
OTOOL64 = @OTOOL64@
PACKAGE = @PACKAGE@
@@ -261,15 +279,19 @@ PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_URL = @PACKAGE_URL@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATHSEP = @PATHSEP@
PATH_SEPARATOR = @PATH_SEPARATOR@
PIDTYPE = @PIDTYPE@
PKG_CONFIG = @PKG_CONFIG@
PLATFORM_AOT_SUFFIX = @PLATFORM_AOT_SUFFIX@
RANLIB = @RANLIB@
SEARCHSEP = @SEARCHSEP@
SED = @SED@
SET_MAKE = @SET_MAKE@
SGEN_DEFINES = @SGEN_DEFINES@
SHARED_CFLAGS = @SHARED_CFLAGS@
SHELL = @SHELL@
SIZEOF_VOID_P = @SIZEOF_VOID_P@
SQLITE = @SQLITE@
SQLITE3 = @SQLITE3@
STRIP = @STRIP@
@@ -342,6 +364,7 @@ mkdir_p = @mkdir_p@
mono_build_root = @mono_build_root@
mono_cfg_dir = @mono_cfg_dir@
mono_runtime = @mono_runtime@
ninja = @ninja@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@

View File

@@ -4,26 +4,27 @@
..
.TH mcs 1 "6 January 2001"
.SH NAME
mcs \- Mono C# Compiler
mcs \- Turbo C# Compiler
.SH SYNOPSIS
.B mcs
[option] [source-files]
.SH DESCRIPTION
mcs is the Mono C# compiler, an implementation of the ECMA-334
language specification. You can pass one or more options to drive the
compiler, and a set of source files. Extra options or arguments can
be provided in a response file. Response files are referenced by
prepending the @ symbol to the response file name.
mcs is the Turbo C# compiler (also known as the Mono C# compiler), it
is an implementation of the ECMA-334 language specification. You can
pass one or more options to drive the compiler, and a set of source
files. Extra options or arguments can be provided in a response file.
Response files are referenced by prepending the @ symbol to the
response file name.
.PP
The
.I mcs
compiler is used to compile against the latest Mono Base Class Library
version and fully implements C# 1.0, 2.0, 3.0, 4.0, 5.0 and 6.0
specifications.
specifications with partial support for C# 7.0.
.PP
See the section on packages for more information.
.PP
The Mono C# compiler accepts the same command line options that the
The Turbo C# compiler accepts the same command line options that the
Microsoft C# compiler does. Those options can start with a slash or a
dash (/checked is the same as -checked). Additionally some GNU-like
options are supported, those begin with "--". All MCS-specific flags
@@ -37,13 +38,13 @@ for partial compilation. To achieve the benefits of partial
compilation, you should compile programs into their own assemblies,
and later reference them with the "-r" flag.
.PP
The Mono C# compiler generates images (.exe files) that contain CIL
The Turbo C# compiler generates images (.exe files) that contain CIL
byte code that can be executed by any system that implements a Common
Language Infrastructure virtual machine such as the Microsoft .NET
runtime engine on Windows or the Mono runtime engine on Unix systems.
Executables are not bound to a specific CPU or operating system.
.PP
The Mono C# compiler by default only references three assemblies:
The Turbo C# compiler by default only references three assemblies:
mscorlib.dll, System.dll and System.Xml.dll. If you want to
reference extra libraries you must manually specify them using the
-pkg: command line option or the -r: command line option.
@@ -53,7 +54,7 @@ use the -pkg:dotnet command line option.
.SH OPTIONS
.TP
.I \-\-about
Displays information about the Mono C# compiler
Displays information about the Turbo C# compiler
.TP
.I \-\-addmodule:MODULE1[,MODULE2]
Includes the specified modules in the resulting assembly. Modules are

View File

@@ -177,7 +177,9 @@ same as for the compiler -lib: or -L flags.
Embeds the dynamic library file pointed to by `PATH' and optionally
give it the name `LIB' into the bundled executable. This is used to
ship native library dependencies that are unpacked at startup and
loaded from the runtime.
loaded from the runtime. Multiple libraries should be specified in
dependency order, where later ones on the command line depend on
earlier ones.
.TP
.I "--lists-targets"
Lists all of the available local cross compilation targets available

View File

@@ -300,7 +300,7 @@ mono_aot_register_module (mono_aot_module_hello_info);
.I stats
Print various stats collected during AOT compilation.
.TP
.I temp_path=[path]
.I temp-path=[path]
Explicitly specify path to store temporary files created during AOT compilation.
.TP
.I threads=[number]
@@ -908,52 +908,11 @@ your profiler.
For a sample of how to write your own custom profiler look in the
Mono source tree for in the samples/profiler.c.
.SH CODE COVERAGE
Mono ships with a code coverage module. This module is activated by
using the Mono --profile=cov option. The format is:
\fB--profile=cov[:assembly-name[/namespace]] test-suite.exe\fR
.PP
By default code coverage will default to all the assemblies loaded,
you can limit this by specifying the assembly name, for example to
perform code coverage in the routines of your program use, for example
the following command line limits the code coverage to routines in the
"demo" assembly:
.nf
mono --profile=cov:demo demo.exe
.fi
.PP
Notice that the
.I assembly-name
does not include the extension.
.PP
You can further restrict the code coverage output by specifying a
namespace:
.nf
mono --profile=cov:demo/My.Utilities demo.exe
.fi
.PP
Which will only perform code coverage in the given assembly and
namespace.
.PP
Typical output looks like this:
.nf
Not covered: Class:.ctor ()
Not covered: Class:A ()
Not covered: Driver:.ctor ()
Not covered: Driver:method ()
Partial coverage: Driver:Main ()
offset 0x000a
.fi
.PP
The offsets displayed are IL offsets.
.PP
A more powerful coverage tool is available in the module `monocov'.
See the monocov(1) man page for details.
Mono ships with a code coverage module in the \f[I]coverage\f[] profiler.
To enable it, pass \fB--profile=coverage\fR to your mono invocation. It
will by default output a coverage.xml in the current directory. Use
\fBmono --profile=coverage:help sample.exe\fR for more information on the
different options.
.SH AOT PROFILING
You can improve startup performance by using the AOT profiler.
.PP
@@ -1101,11 +1060,6 @@ code generation backend. For example \fBLLVM_COUNT=10\fR would only
compile 10 methods with LLVM and then switch to the Mono JIT engine.
\fBLLVM_COUNT=0\fR would disable the LLVM engine altogether.
.TP
\fBMONO_AOT_CACHE\fR
If set, this variable will instruct Mono to ahead-of-time compile new
assemblies on demand and store the result into a cache in
~/.mono/aot-cache.
.TP
\fBMONO_ASPNET_INHIBIT_SETTINGSMAP\fR
Mono contains a feature which allows modifying settings in the .config files shipped
with Mono by using config section mappers. The mappers and the mapping rules are
@@ -1314,10 +1268,19 @@ first generation (of two). A larger nursery will usually speed up the
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, and
`marksweep-conc' for concurrent Mark&Sweep. The non-concurrent
Mark&Sweep collector is the default.
\fBmajor=\fIcollector\fR
Specifies which major collector to use.
Options are `marksweep' for the Mark&Sweep collector, `marksweep-conc'
for concurrent Mark&Sweep and `marksweep-conc-par' for parallel and
concurrent Mark&Sweep. The concurrent Mark&Sweep collector is the default.
.TP
\fBmode=balanced|throughput|pause\fR[:\fImax-pause\fR]
Specifies what should be the garbage collector's target. The `throughput'
mode aims to reduce time spent in the garbage collector and improve
application speed, the `pause' mode aims to keep pause times to a minimum
and it receives the argument \fImax-pause\fR which specifies the maximum
pause time in milliseconds that is acceptable and the `balanced' mode
which is a general purpose optimal mode.
.TP
\fBsoft-heap-limit=\fIsize\fR
Once the heap size gets larger than this size, ignore what the default
@@ -1380,9 +1343,11 @@ more memory when it reaches a stable size.
This option is EXPERIMENTAL, so it might disappear in later versions of mono.
.TP
\fBminor=\fIminor-collector\fR
Specifies which minor collector to use. Options are 'simple' which
promotes all objects from the nursery directly to the old generation
and 'split' which lets object stay longer on the nursery before promoting.
Specifies which minor collector to use. Options are `simple' which
promotes all objects from the nursery directly to the old generation,
`simple-par' which has same promotion behavior as `simple' but using
multiple workers and `split' which lets objects stay longer on the nursery
before promoting.
.TP
\fBalloc-ratio=\fIratio\fR
Specifies the ratio of memory from the nursery to be use by the alloc space.
@@ -2043,7 +2008,7 @@ http://www.mono-project.com/community/help/mailing-lists/
http://www.mono-project.com
.SH SEE ALSO
.PP
certmgr(1), cert-sync(1), csharp(1), gacutil(1), mcs(1), mdb(1), monocov(1), monodis(1),
certmgr(1), cert-sync(1), csharp(1), gacutil(1), mcs(1), mdb(1), monodis(1),
mono-config(5), mprof-report(1), pdb2mdb(1), xsp(1), mod_mono(8).
.PP
For more information on AOT:

View File

@@ -146,6 +146,9 @@ instruction pointer.
This is equivalent to the value \[lq]100\[rq].
A value of zero for \f[I]FREQ\f[] effectively disables sampling.
.IP \[bu] 2
\f[I]heapshot-on-shutdown\f[]: collect heap shot data when the runtime
shuts down.
.IP \[bu] 2
\f[I]maxframes=NUM\f[]: when a stack trace needs to be performed,
collect \f[I]NUM\f[] frames at the most.
The default is 32.
@@ -180,16 +183,15 @@ with the current process id and \f[I]%t\f[] with the current date
and time, then do according to \f[I]OUTSPEC\f[]:
.RS 2
.IP \[bu] 2
if \f[I]OUTSPEC\f[] begins with a \f[I]|\f[] character, execute the
rest as a program and feed the data to its standard input
If \f[I]OUTSPEC\f[] begins with a \f[I]|\f[] character, execute the
rest as a program and feed the data to its standard input.
.IP \[bu] 2
if \f[I]OUTSPEC\f[] begins with a \f[I]-\f[] character, use the
rest of OUTSPEC as the filename, but force overwrite any existing
file by that name
If \f[I]OUTSPEC\f[] begins with a \f[I]#\f[] character, parse the
rest as a file descriptor number, and feed the data to this file
descriptor.
.IP \[bu] 2
otherwise write the data the the named file: note that is a file by
that name already exists, a warning is issued and profiling is
disabled.
that name already exists, it is truncated.
.RE
.IP \[bu] 2
\f[I]report\f[]: the profiling data is sent to mprof-report, which
@@ -211,13 +213,6 @@ The following commands are available:
.IP \[bu] 2
\f[I]nocounters\f[]: disables sampling of runtime and performance
counters, which is normally done every 1 second.
.IP \[bu] 2
\f[I]coverage\f[]: collect code coverage data. This implies enabling
the \f[I]calls\f[] option.
.IP \[bu] 2
\f[I]onlycoverage\f[]: can only be used with \f[I]coverage\f[]. This
disables most other events so that the profiler mostly only collects
coverage data.
.RE
.SS Analyzing the profile data
.PP
@@ -340,8 +335,6 @@ version
.IP \[bu] 2
\f[I]counters\f[]: counters samples
.IP \[bu] 2
\f[I]coverage\f[]: code coverage data
.IP \[bu] 2
\f[I]stats\f[]: event statistics
.PP
It is possible to limit some of the data displayed to a timeframe
@@ -413,13 +406,6 @@ By default mprof-report will print the summary data to the console.
To print it to a file, instead, use the option:
.PP
\f[B]--out=FILENAME\f[]
.SS Processing code coverage data
.PP
If you ran the profiler with the \f[I]coverage\f[] option, you can
process the collected coverage data into an XML file by running
mprof-report like this:
.PP
\f[B]mprof-report --coverage-out=coverage.xml output.mlpd\f[]
.SS Dealing with profiler slowness
.PP
If the profiler needs to collect lots of data, the execution of the