Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

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 [eval] Don't assumen all captured types have storey assigned
argument.cs [mcs] null propagating operator and extension methods
assembly.cs [mcs] Encode more win32 version info attributes. Fixes #23981
assign.cs [mcs] More updates to auto-properties v6 implementation
async.cs [mcs] nameof implementation rewrite to match the latest spec
attribute.cs [mcs] Add special-cased HostProtectionAttribute handling
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] Set fixed buffer layourt wihout StructLayoutAttribute when poss…
codegen.cs [mcs] Undo bool loads normalization from byte arrays
complete.cs [mcs] Validate more nameof argument expressions
const.cs Revert "Revert "Revert "Merge"""
constant.cs [corlib] Replace resource keys with actual messages during compilation
context.cs [mcs] Improve extension methods error reporting
convert.cs [mcs] Add string interpolation conversions
cs-parser.jay Add new test
cs-tokenizer.cs [mcs] Handle string constants inside interpolated string expression. …
decl.cs [mcs] Improve extension methods error reporting
delegate.cs [mcs] Resolve delegate optional parameters only once. Fixes #26840
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 [mcs] Validate more nameof argument expressions
ecore.cs [mcs] Single name meaning relaxation to match roslyn
enum.cs [mcs] Easy restrictions on enum base type epxression
eval.cs [eval] Add C#6 using handling
expression.cs [mcs] Add cloning to string interpolation expressions. Fixes #27525
field.cs [mcs] Set fixed buffer layourt wihout StructLayoutAttribute when poss…
flowanalysis.cs [mcs] Update import of private struct fields for flow analysis.
generic.cs [mcs] Fix type inference fixing to filter all candidates
ikvm.cs [mcs] Make compiler output deterministic. Fixes #26842
import.cs [mcs] Correctly import metadata constant with mismatched type and val…
iterators.cs [mcs] Handle duplicate resume point registration. Fixes #21387
lambda.cs Inflate explicit delegate parameters using type inference context too…
linq.cs [mcs] nameof implementation rewrite to match the latest spec
literal.cs Error reporting improvements
location.cs build: use MOBILE_DYNAMIC instead of MONODROID
mcs-build.csproj Refreshed the CSProj files to use the new output build directory
mcs-net_4_5.csproj [build] Updated csproj files.
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] Update import of private struct fields for flow analysis.
method.cs [mcs] Resolve delegate optional parameters only once. Fixes #26840
modifiers.cs [mcs] Fixes check for overriden auto-properties.
module.cs [mcs] Make compiler output deterministic. Fixes #26842
namespace.cs [mcs] Resolve using aliases on demand to fix issue with nested types.…
nullable.cs [mcs] Fix codegen for coalescing operator involving user operator con…
parameter.cs [mcs] Add check for parameterless user constructor used as default pa…
pending.cs [mcs] Improve extension methods error reporting
property.cs [mcs] Fixes check for overriden auto-properties.
reflection.cs [build] Add Microsoft.CSharp to monotouch profile
repl.txt Merge compiler docs
report.cs [mcs] Add string interpolation conversions
settings.cs [corlib] Replace resource keys with actual messages during compilation
statement.cs [mcs] Better error reporting after delegate probing failed. Fixs #27043
support.cs build: use MOBILE_DYNAMIC instead of MONODROID
typemanager.cs [mcs] Add string interpolation conversions
typespec.cs [mcs] More special case handling for explicit type names documentatio…
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.