With only 2 days left until the XBase.Future conference in Cologne, things are becoming a little hectic over here.Fabrice has traveled from the sunny France to a cold Netherlands, and together we have prepared the new Beta 3 that will be presented and used at the conference. This new beta with comes with many great new features. Some hightlights of this new build:

Visual Studio Integration

  • Support for the Windows Forms Editor
  • Support for the WPF Editor
  • Support for selecting the dialect (see compiler below)
  • Enhanced project property pages with editors for paths and pre and post build steps

Compiler

  • There is now dialect support in the compiler. The previus beta only supported the Core dialect. Now we also support the VO/Vulcan dialect.
  • We have started work on the Bring Your Own Runtime support for Vulcan. See separate heading below.
  • Improved debugging output
  • New macros (__ENTITY__ and __SIG__ ) for the preprocessor
  • New PARAMS keyword for parameter list of method/function
  • Slen() and AltD() are now supported by the compiler
  • Added support for the DYNAMIC type

Bring Your Own Runtime

  • XBase type names are resolved properly (ARRAY, DATE, SYMBOL, USUAL etc)
  • Literal values are now resolved properly (ARRAY, DATE, SYMBOL)
  • NULL_ literals are resolved properly (NULL_STRING follows the /vo2 compiler option, NULL_DATE, NULL_SYMBOL)
  • Calling methods with Clipper calling convention works as expected.
  • Methods/Functions without return type are seen as methods that return a USUAL
  • If a method/function contains typed and untyped parameters then the untyped parameters are seen as USUAL parameters
  • The ? command will call AsString() on the arguments

Please come and meet us in Cologne. If you haven't registered: it is not too late.

 XSharpMeetsWPF


Easter is only just one week behind us and we are already making good progress in a couple of areas:

Compiler

We have started to work on the "Bring Your Own Runtime" (BYOR) support.

So far the compiler recognizes the standard VO/Vulcan datatypes such as ARRAY, FLOAT, DATE etc. and maps these to the types inside the supplied Vulcan Runtime DLLs. Of course you need to bring the runtime for this. That is why we call it BYOR !
The compiler also correctly recognizes literal dates, literal symbols, literal floats, literal arrays etc.
Function calls in the Vulcan Runtime are resolved as well. The good thing is that X# will accept runtime DLLs from various versions of Vulcan. You do not need Vulcan 4, X# will also accept Vulcan 3 runtime DLLs, and most likely also Vulcan 2 DLLs.

In the rest of april we will implement the more "exotic" areas of the BYOR support and the VO/Vulcan dialects, such as the support for Clipper calling convention, VOSTRUCTS, UNIONS, the PSZ type, workarea access , the macro compiler etc.

Visual Studio Integration

We have had some set back in this area, but that has been resolved: we could not get the Winforms and WPF designers to work in our  project system which we have based on the new Common Project System (CPS) from Microsoft.
So we decided to switch back to the "good old" Managed Project Framework (MPF), with which we have ample experience.
Now both forms editors are working as expected. We have also added a Code parser (needed for the Winforms editor) and a CodeGenerator (needed for both tools).
We need to merge some of our code changes from the CPS version of the project system to the MPF version but that should not be too complicated

Come and meet us at the xBase.Future conference in Cologne two weeks from now. We will show you all the new stuff there!


We are very pleased to announce our special Easter present for our FOX Subscribers: XSharp Beta 2 is available for download from the download area on this website.

Some of the highlights in this new build:

  • We have added the preprocessor
  • Some FOX subscribers have asked for a NOP keyword. This has been added
  • We have added YIELD EXIT (or YIELD BREAK) statements
  • Many reported bugs have been fixed
  • The Right shift operator >> no longer conflicts with the declaration of Generics, such as in the following code:
       var x := List<Tuple<int,int>>{}
  • We have updated the build system and project properties dialog inside Visual Studio to allow many more compiler options
  • We have rolled the Roslyn code forward to the Roslyn version that is included with Visual Studio 2015 Update 1. Many issues have been fixed inside this updated Roslyn code, but you will most likely never see this <g>.
  • We have added an option to the build system called "Use Shared Compiler". This will improve the compilation speed, especially for small projects, since it caches the meta data from references assemblies such as System.dll

Fox Subscribers can download the new build from the downloads section on this website.

Other visitors can read the complete readme for Build 0.2.2 from the General\Readme section in the downloads area .

 


It has now been 2 weeks since we have published our first public beta, so I think it is time for a progress report.

But first we want to thank you all for all the positive messages and compliments that you have sent us.
I must admit that we were also very content and proud ourselves with what we have achieved in the 5 months since we have announced X#.
The product is not perfect yet, but it is working quite good. Some of our pioneer users have already converted hundreds of thousands of source code lines to X# and are extremely pleased with it.

But of course we are not leaning back, since there is still a lot to do.

Progress

Some of the things we are working on at this moment:

  • Compiler: The Beta 1 compiler was based on the Roslyn code from last summer. We have succesfully ported the compiler to the Roslyn code from Visual Studio Update 1
  • Compiler: we are adding support for the preprocessor.
  • Compiler: we are adding support for the XBase datatypes, functions, Clipper calling convention, Late Bound code etc.
  • Compiler: we have created fixes for some of the issues that you have reported with the public beta. These issues mostly have to do with how the compiler handles missing types and other errors in the code. Some of the error message are still kind of rough and we are trying to make the compiler error messages more helpfull.
  • Visual Studio: we are working on support for the Forms Editor, WPF editor and other editors. For these components we need to add support for Codedom and Code Generation. Of course code re-use is important here, so we are using the same components to parse the source code inside Visual Studio that we are also using when compiling your code.
  • Tools: we have created a tool to help you convert your Visual Studio solution with Vulcan.NET projects to a Visual Studio solution with XSharp projects.
  • Tools: we are working on an XPorter tool that will help you to extract your Visual Objects source code from your Visual Objects repository and create a X# solution in Visual Studio from that.
  • Runtime: we are working on replacements for the Vulcan Runtime (classes, functions, RDDs) and we are preparing for the other runtimes (for example xHarbour ) as well.

A next beta version (for FOX subscribers only) can be expected in the coming 10 days. This version will include some of the improvements above.

Support

Of course we welcome all the support that you can give us. Sign up for the FOX program and help support the development of X#.
But we want to support you as well: we are aware that for many GrafX customers the VPS support license expires in the coming month.
Please know that you are more than welcome with us. Apart from the obvious support on X# we can also give you support on Visual Objects and Vulcan.NET.
Who knows these products better than the people that created them ? So if your VPS support contract expires and you are not happy with the GrafX support anymore: sign up for the FOX program and get support from the original authors of Visual Objects and Vulcan.NET!

Conference

Finally: we are preparing for the XBase.Future conference next month in Cologne. Please come and meet us there and let us know what you think is important for a succesfull future of your projects.


We are very glad that we can announce our new XSharp news server. This newsserver is the primary place where you can get and give support to and from fellow XSharp users.

This news server can be found at news.xsharp.info (port 119)

Please use your favorite news reader and connect using the user name XSharpUser and password X#Rulez!.

Of course we ask you to follow the normal rules of conduct on the internet and behave properly on the newsgroup. We have published a set of rules that we we ask you kindly to follow www.xsharp.info/faq/39-xsharp-news-server-rules

At this moment the newsgroups and forum operate independent of each other. In a few days they will be synchronized, which means that posts in the web interface will appear in the newsgroups and vice versa.