Progress report May 2016

It has been a few weeks, so it is time again for a progress report.

Free Software

We have worked on the legal side of distributing free software. In the top menu from this website you can now find an option that describes under which licenses we distribute our software. We have decided to use a couple of different licenses.

  1. A license that describes how you can use the compiled version of X# and which components you can include with your product. This is the XSharp Open Software License Agreement.
  2. A second license, the Apache Open License, that describes what you can do with the source code to our runtime and tools
  3. A third license, The XSharp Compiler Source Code License, that describes what our FOX subscribers can do with the source code for our compiler.

Please look at the separate page on this website for more details.


The XSharp source code is available on Github. Please read this FAQ article on where you can find it and how you can contribute.


In the last few weeks we have worked very hard on the completion of the Vulcan Runtime compatibility (Bring Your Own Runtime support). At this moment we have added support for the Clipper calling convention, for late binding, for the macro operator (&), for the ALIAS (->) operator and more. Almost everything you need is now in place to compile your Visual Objects applications with XSharp against the Vulcan runtime.

We have also added a new switch (/vo15): the default behavior for VO and Vulcan is that untyped variables will be automatically compiled as USUAL without warning. Many developers have asked us to for a switch to disable this behavior. We have decided to make the default behavior for the VO and Vulcan dialect the same as VO and Vulcan, but we have added this compiler switch that will allow you tell the compiler to complain about missing types.

There are some small issues left, especially some of the special compiler options that Vulcan has to allow "dirty" VO code to compile in .Net, such as mixing typed and untyped integers, mixing different pointer types and support for the VO STRUCT and UNION. We expect to finish these in a few weeks.

Some people have asked us for a clear overview of the differences between the dialects. We have added a FAQ page for this.

Visual Studio

We are completing the support for the .Designer.prg and have fixed some issues regarding the support for the WPF editor. We are also working on some other changes that should add better copy/paste behavior to the VS IDE as well as support for linked files.

We are finally preparing to include the IDE components from XIDE (from Chris Pyrgas) to our VS IDE support, so you can edit VO compatible server entities, forms and menus.

Build System

We have added support for the new /vo15 compiler switch as well as support for compiling native resource files (which are used by the VO compatible GUI classes).

Beta 5

XSharp Beta 5 which includes all of this should be available in the coming week.



  • Hi Robert,
    great news - thank you!

    Please consider to allow Altd() also in the Core dialect!

  • Wolfgang,
    Since the AltD() (pseudo) function does not introduce a dependency to a Vulcan assembly we have decided to also support it in the Core dialect.