If you have had the pleasure of playing with Rotor in the past then you would be glad to know that MS recently released the version 2.0 of Rotor. This of course is officially called “Shared Source Common Language Infrastructure” and can be downloaded from here. Don’t let the 21.6 mb download fool you, when you extract it and build it you need over a gig of space (mine currently is just a tad under 1.4 gb). If you want to understand the CLR and how it performs Rotor is the best way to go about it.
While MS has a different implementation of the GC in the commercial version of the .NET runtime than the one in rotor, but the way I understand it is very similar and is an excellent source of understanding. Also the new implementation adds some of the .NET 2.0 new features such as generics, anonymous methods and delegates. And of course the code for the c# compiler, assembler, etc all is in there.
The JScript compiler is especially interesting, because of two reasons. One, it is written in C# and provides an excellent sample for how to write a large c# project and two, this is also an excellent sample on how to compile against the IL.
If you have not played with Rotor I would recommend something like the Shared Source CLI Essentials (note this is for the earlier version and not this one, but still should be valuable), just so you know your way across the code base.
There are enough gems in here to keep you busy for months – I think I’ll stop harping about it now. 🙂