[sgen] Don't trigger concurrent collections if we exceed soft heap limit (#12536)
[mono-project.git] / mcs / README
blobc670f181f19609fd716a8e484c1db9d46c8c99d2
1 This contains the C# components of the Mono project.
3         * Compilers written in C#
5         * Class Libraries.
7         * Regression Test Suites
9 To install this source code, look at the INSTALL file in the `mono'
10 package module which drives the compilation of this directory.
12 * Layout
13 ========
15         build/
16                 Rules, configuration and makefile components to build
17                 this module.
19         class/
20                 The class libraries.
22         docs/
23                 Some notes on the compiler and the class libraries.
25         errors/
26                 Sample programs that should generate errors by the C# compiler.
28         ilasm/
29                 The IL assembler.
31         jay/
32                 Yacc-based parser generator.
34         mcs/
35                 The Mono C# compiler
37         nunit24/
38                 An old copy of the NUnit 2.4 library that we ship for historical reasons.
40         packages/
41                 Integrates some packages from NuGet (like Roslyn) into the build system.
43         tests/
44                 Regression test suite for the C# compiler
46         tools/
47                 Various small development tools: CorCompare used to compare
48                 two assemblies for differences in the API; csharp is a C# REPL;
49                 cil-strip trims IL from assemblies.
51 * Building Individual Directories
52 =================================
54 You can build individual components in the hierarchy by running the command
55 "make", and to install it use "make install".
57 By default, the 4.x profile is built, if you want to build other profiles,
58 use the following command:
60         make PROFILE=<profilename>
62 And to install:
64         make PROFILE=<profilename> install
66 To turn on verbose mode in the build (for example to diagnose a
67 problem), you can use the V=1 flag, like this:
69         make V=1
71 * Running Unit tests
72 ====================
74 You can run unit tests in individual components by running the command:
76         make run-test
78 If you want to only run the tests in a single fixture (say
79 'MonoTests.System.TypeTest'), you can use
81         make run-test TEST_FIXTURE=System.TypeTest
83 * Acknowledgements
84 ==================
86 Thanks a lot to Sergey Chaban for his help during the development of
87 the C# compiler.