Welcome to mirror list, hosted at ThFree Co, Russian Federation.

README « class « mcs - github.com/mono/mono.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: 45ddae8eb78bce82c0c858b833b90b938036c1f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
The class libraries are grouped together in the assemblies they belong.

Each directory here represents an assembly, and inside each directory we
divide the code based on the namespace they implement.

In addition, each assembly directory contains a Test directory that holds the
NUnit tests for that assembly. 

The nant build file for an assembly creates two versions of the dll for that
assembly. One version is a "full" dll.  The full dll contains (almost) all 
of the classes, regardless of how complete the classes are. The name of this
dll is the normal name you would expect, like "corlib.dll" or "System.dll".
These full dll's are created in the /mcs/class/lib directory.

The other dll which is built is a "restricted" dll.  The restricted dll
omits incomplete classes that would prevent the NUnit testrunner from actually
running the tests. These restricted dll's are created in the Test directory
of their respective assembly and named with a "_res" suffix.  So, for example,
the NUnit-testable dll for corlib is /mcs/class/corlib/Test/corlib_res.dll.

The final dll which is built is the one which houses the actual NUnit tests.
This dll is built from all of the classes in the Test directory and below, and
is named with a "_test" suffix. So, for example, the NUnit tests for corlib
are in /mcs/class/corlib/Test/corlib_test.dll. This dll is also linked with 
the restricted dll found in the same directory.


* Missing implementation bits

	If you implement a class and you are missing implementation bits,
	please put in the code the word "TODO" and a description of what
	is missing to be implemented.

* Tagging buggy code

	If there is a bug in your implementation tag the problem by using
	the word "FIXME" in the code, together with a description of the 
	problem.

	Do not use XXX or obscure descriptions, because otherwise people
	will not be able to understand what you mean.

* Tagging Lame specs

	Sometimes the specification will be lame (consider Version.ToString (fieldCount)
	where there is no way of knowing how many fields are available, making the API
	not only stupid, but leading to unreliable code).

	In those cases, use the keyword "LAMESPEC".

* Coding consideration

	Use 8 space tabs for writing your code (hopefully we can keep
	this consistent).  If you are modifying someone else's code, try
	to keep the coding style similar.