What’s new with Roslyn, Microsoft’s Compiler APIs
Roslyn is a set of libraries for handling compilation, scripting, workspaces, and IDE services. It is an extensible model with VB and C# being the first two target languages. While still far from completion, Roslyn is targeting VB 12/C# 6, this release marks a major milestone for the project.
For C#, the compiler now supports most of the language features. Async, dynamic, and parts of the nullable arithmetic are still outstanding. Other features not available in the last preview including query expressions, anonymous types, anonymous functions and iterator blocks are now working.
Visual Basic has likewise made a lot of progress with the bulk of the language now implemented. Older features such as implicitly declared local variables (Option Explicit Off) are on the list but legacy error handling (On Error GoTo X) is not. Iterators and Async also await implementation.
The API itself has undergone quite a bit of refinement and many interfaces were removed entirely or replaced by simple events. For example, instead of implementing IWorkspaceListener one can now listen to the Workspace.WorkspaceChanged event.
An interactive, REPL-style console is now available for C#. You can launch it from the View -> Other Windows menu. A similar console will eventually be available for VB.
The Roslyn CTP site contains the new version, with VS 2012 support, as well as numerous examples and whitepapers. The Visual Studio 2010 SP 1 SDK is a prerequisite for this version. If you have Visual Studio 2012, you also need the Visual Studio 2012 RC SDK.