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.

 


We are pleased to share with you our roadmap for 2016

In short this roadmap looks like this:

Estimated Month Name Contents / Motto
February 2016 First Public Beta Core Xbase language
April 2016 Spring 2016 Support for Vulcan -1: “Bring your Own Runtime”
July 2016 Summer 2016 Support for Vulcan -2:  “Improve Your Own Runtime”
October 2016 Autumn 2016 Support for Vulcan -3:  “Use the XSharp Runtime”
Christmas 2016 Winter 2017 Other Xbase dialects

Please come and meet us at the XBase Future conference in April in Cologne. We would love to share our ideas with you and hear about your ideas for the future for XBase in the .NET world


We are pleased to offer you the first public beta of XSharp (X#).

When we started this project we have promised a first beta version in the first quarter of 2016, and that has not been an empty promise!

You can download the beta now from this website for free. The only thing that we request from you is that you register yourself as user on our website.

Of course we would like to "warn" you that it is still a beta version of our product. It is not finished yet.

This beta version of the compiler supports the “Core” language, that means that VO & Vulcan specific datatypes such as DATE, ARRAY, USUAL, SYMBOL, FLOAT etc. are not supported yet.

The Visual Studio integration supports the Edit/Compile/Debug cycle. Only the source code editor is supported. Other editors, such as the WPF editor, Forms Editor and Resource editor are not supported yet.

The debugger may stop more often than you would expect.

Please note that this is an early build of the compiler. Some things will NOT work, you can be sure of this.

Please also read our other article about our Roadmap and support options.

 

On behalf of the XSharp Development team

Robert van der Hulst


It is time for a quick status update:

  • The first public Beta will be released in the coming week. Is is a little bit delayed because the flu epidemy has unfortunately also found its way to one of our team members.
  • We will also publish a public Roadmap next week in which we will give you an impression of what you can expect from us in 2016. It is going to be an exciting year.
  • We hope that you have already booked your ticket for the xBase.Future conference in April in Cologne. If not then please visit http://www.visualobjects.de/en/conference/ and book for the special early bird price which is valid until the end of this month.
    We have planned to demonstrate and release our version 1 product at that conference! More details about that will be in the roadmap. Of course this conference is also the perfect place to tell us what you would like to see added to X#.

On behalf of the team,

Robert van der Hulst


Another new build of X# has been released to our FOX subscribers. This build was mostly focused on making the compiler more compatible with the VO an Vulcan xBase language. Some of the changes are:

  • The "ns" (add default namespace to classes without namespace) has been implemented
  • The "vo3" compiler option (to make all methods virtual ) has been implemented
  • Fixed an issue where the send operator on an expression between parentheses was not compiling properly
  • Relational operators for strings (>, >=, <, <=) are now supported. They are implemented using the String.Compare() method.
  • Fixed a problem with local variables declared on the start line from FOR .. NEXT statements
  • Added first version of the documentation in CHM & PDF format
  • Added several properties to the Visual Studio Project properties dialog to allow setting the new compiler options
  • Fixed a problem in the Targets files used by MsBuild because some standard macros such as $(TargetPath) were not working properly
  • XIDE 0.1.7 is included. This version of XIDE is completely compiled with XSharp !
  • The name of some of the MsBuild support files have changed. This may lead to problems loading a VS project if you have used the VS support from the previous build. If that is the case then please edit the xsproj file inside Visual Studio and replace all references of "XSharpProject" with "XSharp" . Then safe the xsproj file and try to reload the project again.
  • The WHILE.. ENDDO (a DO WHILE without the leading DO) is now recognized properly