Copying latest mcs to the branch.
[mono.git] / mcs / mcs / README
1
2 These are the sources to the Mono C# compiler 
3 ---------------------------------------------
4
5         Read the mcs/docs/compiler.txt for an overview of the compiler.
6
7 Testing the Compiler
8 --------------------
9
10         You might want to use the `make btest' in this directory to 
11         have the compiler bootstrap itself, this is the basic regression
12         test.
13
14         Before commiting changes to MCS, make sure that all the tests
15         in `mcs/tests' pass, and all the tests in 'mcs/errors' have the
16         expected result, type:
17
18           cd mcs                # The top-level 'mcs' directory
19           make compiler-tests
20
21         If you want to test the installed compiler, you can run:
22
23           cd mcs                # The top-level 'mcs' directory
24           make test-installed-compiler
25
26 Full Bootstrap
27 ==============
28
29         To finally ensure the state of the compiler, it is ideal to do
30         a full bootstrap, to do this, do:
31
32                 cd mcs
33                 make clean;
34                 make
35                 make install
36
37         That installs the compiler and assemblies compiled by the new compiler.
38
39         Then, repeat that step again:
40
41                 make clean
42                 make
43
44         If things work, the compiler has not added a new regression
45         while building the mscorlib and the compiler itself.
46
47 Tests
48 =====
49
50         When bugs are fixed, new tests must be added to the
51         `mcs/tests' directory to excercise the problem and to guarantee
52         that we keep the compiler in a good state.
53
54         When an error is reported, it should be added to mcs/errors.
55
56         We try to make the errors numbers be the same as the ones in
57         Microsoft C#, if this is not possible, allocate a negative error
58         number, and list it in mcs/errors/errors.txt