Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Branch: master
..
Failed to load latest commit information.
.gitignore Revert "Revert "Revert "Merge"""
AssemblyInfo.cs More using cleanup
ChangeLog Major name lookup fixes
Makefile Revert "Revert "Revert "Merge"""
NOTES Add notes
README Merge compiler docs
anonymous.cs [mcs] Emit symbol info local variables for compiler generated storey …
argument.cs [mcs] null propagating operator and extension methods
assembly.cs [mcs] Try to report better error message for file excedding PE/COFF l…
assign.cs [bcl] Remove NET_4_0 defines from class libs
async.cs [mcs] nameof implementation rewrite to match the latest spec
attribute.cs [mcs] Fix obsolete checks on resolved types when type is inflated gen…
basic-basic.csproj Refreshed the CSProj files to use the new output build directory
cfold.cs [mcs] decimal constants modulo folding. Fixes #21743
class.cs [mcs] Do member declaration obsolete types references check after all…
codegen.cs [mcs] Remove NET_4_0 ifdefs
complete.cs [mcs] Validate more nameof argument expressions
const.cs [mcs] Do member declaration obsolete types references check after all…
constant.cs [corlib] Replace resource keys with actual messages during compilation
context.cs [mcs] Cached labels definite assignment check does not need exact mat…
convert.cs [mcs] Add string interpolation conversions
cs-parser.jay [mcs] Reset doc reader state after expression bodied property. Fixes …
cs-tokenizer.cs [mcs] Fix string interpolation parsing where inner expression contain…
decl.cs [mcs] Fix obsolete checks on resolved types when type is inflated gen…
delegate.cs [mcs] Do member declaration obsolete types references check after all…
doc-bootstrap.cs Updated with Xamarin copyrights
doc.cs [mcs] Improve extension methods error reporting
driver.cs [corlib] Replace resource keys with actual messages during compilation
dynamic.cs [bcl] Remove NET_4_0 defines from class libs
ecore.cs [mcs] Reduced statement expressions can still be used as statements. …
enum.cs [mcs] Easy restrictions on enum base type epxression
eval.cs [mcs] Remove NET_4_0 ifdefs
expression.cs [mcs] Fix obsolete checks on resolved types when type is inflated gen…
field.cs [mcs] Set fixed buffer layourt wihout StructLayoutAttribute when poss…
flowanalysis.cs [mcs] Cached labels definite assignment check does not need exact mat…
generic.cs [mcs] Fix obsolete checks on resolved types when type is inflated gen…
ikvm.cs [mcs] Report error for missing win32 icon.
import.cs [mcs] Change used assemblies checks to run on referenced (metadata wr…
iterators.cs [mcs] Handle duplicate resume point registration. Fixes #21387
lambda.cs [mcs] Reduced statement expressions can still be used as statements. …
linq.cs [mcs] Fix crash during ambiguous implementation of the query pattern …
literal.cs Error reporting improvements
location.cs [mcs] Remove NET_4_0 ifdefs
mcs-build.csproj Refreshed the CSProj files to use the new output build directory
mcs-net_4_5.csproj [genproj] Re-generated the class library projects.
mcs.csproj [mcs] Update static using to match the latest update (still work in p…
mcs.exe.sources Revert "Revert "Revert "Merge"""
mcs.sln Inlcude leading dot in constant ParsedValue
membercache.cs [mcs] Type parameter hidden methods should consider default parameter…
method.cs [mcs] Do member declaration obsolete types references check after all…
modifiers.cs [mcs] Fixes check for overriden auto-properties.
module.cs [mcs] Support multiple string resource files
namespace.cs [mcs] Fixes name collision check for generic types within user namesp…
nullable.cs [mcs] Fix codegen for coalescing operator involving user operator con…
parameter.cs [mcs] Do member declaration obsolete types references check after all…
pending.cs [mcs] Improve extension methods error reporting
property.cs [mcs] Do member declaration obsolete types references check after all…
reflection.cs [build] Add Microsoft.CSharp to monotouch profile
repl.txt Merge compiler docs
report.cs [mcs] Add string interpolation conversions
settings.cs [mcs] Support multiple string resource files
statement.cs [mcs] Special case return expression of Task<Task> in async block. Fi…
support.cs [mcs] Remove NET_4_0 ifdefs
typemanager.cs [mcs] Add string interpolation conversions
typespec.cs [mcs] Do member declaration obsolete types references check after all…
visit.cs Update ast visitor

README

These are the sources to the Mono C# compiler 
---------------------------------------------

	Read the mcs/docs/compiler.txt for an overview of the compiler.

Testing the Compiler
--------------------

	You might want to use the `make btest' in this directory to 
	have the compiler bootstrap itself, this is the basic regression
	test.

	Before commiting changes to MCS, make sure that all the tests
	in `mcs/tests' pass, and all the tests in 'mcs/errors' have the
	expected result, type:

	  cd mcs		# The top-level 'mcs' directory
	  make compiler-tests

	If you want to test the installed compiler, you can run:

	  cd mcs		# The top-level 'mcs' directory
	  make test-installed-compiler

Full Bootstrap
==============

	To finally ensure the state of the compiler, it is ideal to do
	a full bootstrap, to do this, do:

		cd mcs
		make clean;
		make
		make install

	That installs the compiler and assemblies compiled by the new compiler.

	Then, repeat that step again:

		make clean
		make

	If things work, the compiler has not added a new regression
	while building the mscorlib and the compiler itself.

Tests
=====

	When bugs are fixed, new tests must be added to the
	`mcs/tests' directory to excercise the problem and to guarantee
	that we keep the compiler in a good state.

	When an error is reported, it should be added to mcs/errors.

	We try to make the errors numbers be the same as the ones in
	Microsoft C#, if this is not possible, allocate a negative error
	number, and list it in mcs/errors/errors.txt
Something went wrong with that request. Please try again.