In this message I would like to share with you some of the progress that we have made with the X# project, and especially the progress with the new compiler.
We have planned to release the first public version of the compiler in the first quarter of 2016 and we are very much on schedule. In fact I think we are a little ahead of schedule.
Most of the new language features that we have on our list for the X# Core dialect are working, and the code generation has proven to be of excellent quality. Our choice to build the new compiler on top of the Roslyn architecture has proven to be an excellent choice. It has taken some effort, but we are getting there. At this moment almost all “valid code” compiles and runs perfectly. We are now focussing on the level of handling incorrect code and producing meaningfull error messages. We are also focussing on some of the areas where the Xbase language is quite different from the C# and VB languages where the Roslyn architecture was written for.
As proof that the compiler is working we have uploaded a few examples (both source, EXE and PDB) that you can test on your own machine.
Chris has created 2 examples:
- One GDI example was an example from a conference in 2005. This example compiles and runs with the current X# compiler with almost no changes
- A Xtris Game, that was originally an easteregg in VIDE (that nobody has found so far).
Robert has also created 2 examples
- A Console example showing a Generic Class
- A Console example showing LINQ at work inside X#
You can download the examples from the General folder in the downloads section on this website
Alle examples come with a PDB file, so you can debug them with your favorite debugger. In Visual Studio for example you should open the EXE file as a project/solution and open the source file (the original source location for all examples was C:\Xsharp\Examples) as a regular file. Then set a breakpoint and start debugging.
The debugging experience is a little rough (it stops more often than you would expect when you run step by step) but that is something that we will fix before the final release of the compiler.