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] Better error reporting for incorrect implicitly typed local var…
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] Emit decimal constant attribute sign using csc compatible forma…
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] Report abstract member hiding only for members which one can ov…
codegen.cs [mcs] Emit correct assignment to ref pointer
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] Add support for interpolated quoted strings
decl.cs [mcs] Accessibility of protected internal members in a derived class …
delegate.cs [mcs] Add special HostProtection handling to deletes
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] Implements virtual read-only auto-property assignment via deriv…
enum.cs [mcs] Easy restrictions on enum base type epxression
eval.cs [eval] Allow class attributes
expression.cs [mcs] Add null operator propagation to probing expressions. Fixes #31289
field.cs [mcs] Set fixed buffer layourt wihout StructLayoutAttribute when poss…
flowanalysis.cs [mcs] Special case flowanalysis of primitive structs. Fixes #28296
generic.cs [mcs] Constraints checker needs to accomodate inflated base type cont…
ikvm.cs [mcs] Add better logging for ikvm crashes during HasObject loading
import.cs [mcs] Silently ignore invalid assembly name in InternalsVisibleTo. Fi…
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 [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] Check operator parameter types using common declaration type
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] DefaultParameterValue treats dynamic as object. Fixes #28645
pending.cs [mcs] Improve extension methods error reporting
property.cs [mcs] Fix accessibility modifiers on accessors logic
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] Await in finally clause with user catch block needs additional …
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.