The compiler specification details the supported (and semi-supported) surface area of the Roslyn VB and C# compilers. This includes
- Command-line switches and their meaning
- Breaking changes from previous versions of the compilers
- Compiler behaviors that are (intentionally) contrary to the specification
- Compiler features not described by the language specification
- COM-specific and other Microsoft-specific features
- "Well-known" attributes that affect compiler behavior
- The "ruleset" file syntax and semantics
- Features included for interoperability between C# and VB, for example
- Named Indexers use from C#
- Places where the compiler behavior diverges from the language specification
- Limitations (e.g. identifier length)
- History of language changes per version
The language specification itself is not included here.