- Created: 28 September 2016
We have added an example to the downloads section on the website with which you can convert your Visual Studio solutions with Vulcan source code from Vulcan.NET to XSharp.
Navigate to https://www.xsharp.info/itm-downloads?folder=general%252FSamples to download the example and start converting your projects.
- Created: 26 September 2016
Last year in the last week of September we have announced XSharp at the DevShare conference in the United Kingdom.
One year later XSharp is no longer a promise but a full blown product!
We are pleased to announce that we have released XSharp Beta 7 both to our FOX subscribers and to the general public today.
XSharp Beta 7 is a major step forward, especially compared to Public Beta 1 from February 2016.
Many new features have been added to the product, and major steps have been made to make X# compatible with Visual Objects and Vulcan.NET.
This version has almost all of the features that are needed to compile Vulcan.NET applications.
We still call this version a Beta version because it misses a very small number of features to compile your Vulcan applications, but the quality of the product is not Beta software at all but Release quality.
Now is a great time to look at XSharp and to test your VO and Vulcan code with XSharp.
Some of the changes since Public Beta 1:
- The compiler recognizes the complete VO syntax, so also Codeblocks, Field statements, Workarea alias etc.
- The compiler can consume the USUAL type, ARRAY, DATE etc from a Vulcan runtime assembly (in what we call Bring Your Own Runtime mode).
Please note that to use this you need to have a license to distribute the Vulcan.NET runtime. We have tested our code with both Vulcan.NET 3 and Vulcan.NET 4 runtimes.
- We have added support for "Clipper Calling Convention"
- The compiler can produce late bound code (methods and properties can be called on variables of type USUAL and OBJECT)
- We have implemented most of the /VO compatibilty compiler options that Vulcan has
- We have added support for String2Psz() and Cast2Psz() and some other intrinsic functions such as SLen(), AltD(), PCOUNT() and _GETMPARAM()
- We have added several preprocessor macros, such __ENTITY__, __DIALECT__, __VERSION__ etc
- We have added support for the &() macro operator
- We have added support for BEGIN SEQUENCE .. END
- We have added a new /vo15 compiler option. With this option you can disable the (VO and Vulcan) behavior that declarations without type will automatically become 'AS USUAL'
- All the code compiled by the X# compiler in the Vulcan Dialect will be recognized as "True Vulcan code" by the Vulcan compiler, so you can mix the two if you want or have to.
Some new features (also in the Core dialect)
- Support for the DYNAMIC type
- Support for BEGIN USING .. END USING (similar to the using statement in C#)
- Support for "interpolated strings"
- Support for Lambda expressions with multiple expressions or even statements and statement lists
- a new syntax for 'complex events'
- Support for the NameOf() intrinsic function
- Support for BEGIN FIXED .. END FIXED (similar to the fixed statement in C#)
Also many changes were made in the Visual Studio integration such as:
- Support for the Windows Forms Editor (including separate .designer.prg)
- Support for the WPF Editor
- Several project and item templates have been added
- Support for the Native Resource Compiler
- Better support for Side by Side installation with Vulcan.NET
The installer for FOX subscribers will come with both a Debug and Release version of the compiler. The Release version compiles many times faster than the debug version and also many times faster than the Vulcan.NET compiler!The public beta contains the Debug version only.
We expect to release a new build in the coming 6 weeks, which will include the latest missing pieces for the BYOR support and some improvements to the Visual Studio Integration.
With that build you should be able to compile ALL (correct) Vulcan code, including 3rd party libraries such as Classmate, ReportPro, RightSLE, Vn2Ado etc.
After that we will start working on our own Runtime, including replacements for the RDD system, Macro compiler and runtime functions.
The Public version of X# can be downloaded for free, but this is also a perfect moment to subscribe to the Friend Of XSharp (FOX) program.
You will help to support the XSharp development and will help to move your Visual Objects and Vulcan application forward in the DotNet world.Licenses are € 999 per year and include frequent updates and support through closed newsgroups and forums by the X# Development team.
We will also give you support for Visual Objects and Vulcan.NET. After all: we know these products inside out, so who can better support you and provide you with workarounds or solutions for problems with these programs?
- Created: 15 August 2016
We are pleased to announce that we have released XSharp Beta 6 to our subscribers today.
This build contains many improvements in the VO/Vulcan compatibility area. A selection from these changes:
- Added support for compile time codeblocks
- Added support for all kinds of Aliased Expressions (useful with RDD based data access)
- Added support for VO Compatible string comparisons
- Indexed properties can now be used by name (String:Chars for example)
- Indexed properties can now be defined with overloads with different parameter types (int and string for example)
VO and Vulcan support is nearing completion!
Some new features in this build
- Added a new syntax to define EVENTS (with ADD and REMOVE keywords)
- Completed the support for the .Designer.prg for windows forms inside visual studio
- X# now properly works side by side with the Vulcan project system inside Visual Studio. We no longer "steal" the language service from Vulcan projects
- Performance improvements in the source code editor for large files
This new build is available for download for FOX subscribers on the FOX download page on this website.
- Created: 21 July 2016
Last week I was on a holiday with my family in Normandy in France.
Some of the touristic highlights that we visited were of course the D-Day beaches Omaha, Utah, Juno, Gold and Sword where the allied forces started the liberation of the Northern part of Europ on June 6, 1944.
Near those beaches we also visited the war cemetaries where thousands of solders from the US, Britain, Canada and other countries were buried. This was very impressive as you can imagine.
The thought about these (mostly) young men that have given their lives to help liberate Europe, makes you feel very grateful and sad at the same time. You know that each person has left behind parents, or wife and children who have had to miss their loved sons or husbands and fathers.
At the same time the number of casualties was of course much smaller than the number of people that were killed by the occupiers. Compared to these numbers, the number of deceased allied soldiers was relatively low.
This reminded me of the famous quote from Spock in Vulcan "The needs of the wany outweigh the needs of the few, or the one".
I am sure that these soldiers and their families did not have something like that in mind, but I am glad that the allied leaders have chosen to liberate Europe, even when they could know that this would mean serious losses of allied lives.
- Created: 02 July 2016
We are reaching the end of the process to implement the BYOR (Bring Your Own Runtime) support and we are working on some of the more obscure things inside the compiler: implicit and explicit conversions and the related compiler options, such as /vo4 and /vo7.
If you would ask any normal person which number is bigger: -1 or any arbitrary positive number, then most people will say that -1 is smaller. Now ask the same thing to a computer and you may receive diferent and unexpected answers. Consider the following example program:
FUNCTION Start AS VOID
LOCAL dwValue AS DWORD
LOCAL liValue AS LONG
liValue := -1
dwValue := 1
? liValue < dwValue
Compile this code in Vulcan and it will compile without warnings, but the result will be that liValue (-1) is NOT smaller than dwValue (1).
- Created: 21 June 2016
We are proud to inform you that we have released XSharp Beta 5 today to our FOX subscribers.
It has taken a little longer than expected / hoped, but it is full of new features that make the product very compatible with VO and Vulcan.
Next to the obvious bug fixes there are lots of new features in this build, most of which are for the VO/Vulcan dialect only
- Full support for the ARRAY type, including array access, nested arrays, the /AZ compiler option etc.
- Full support for Late Binding
- Support for missing arguments and array elements in literal arrays
- Full support for VO & Vulcan compatible constructor chaining (where the call to the parent constructor is not the first statement in the constructor body)
- Support for the Macro operator and Alias (->) operator.
- Support for the FIELD statement
- We are now addorning our assemblies with the attributes that the Vulcan runtime and Vulcan macro compiler expect, so your functions will be callable from the macro compiler, and your classes can be instantiated with CreateInstance()
- "Usings" for Vulcan are now automatically included by the compiler
- Added several preprocessor macros, such as __DIALECT__ which returns the current selected dialect
- Several implicit conversions have been added for VO compatible types
- Support for the implicit function _Chr() has been added
Our VS integration and Build system also have a lot of new features
- Improved the CodeDom compiler and CodeDom parser which are used by the Winform and WPF editors
- Several new WPF and Resource templates have been included
- Support for native resources and the resource compiler
Subscribers can download the new build from the download page on this website.
- Created: 29 May 2016
It has been a few weeks, so it is time again for a progress report.
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.
- 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.
- A second license, the Apache Open License, that describes what you can do with the source code to our runtime and tools
- 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.
- Created: 08 May 2016
We are proud that XSharp Beta 4 is available for download for our FOX subscribers.
On top of the changes that we already listed in a news message last week, we have now also added support for some additional VO and Vulcan compatibility topics:
- BEGIN SEQUENCE... RECOVER USING ... END
- We have also added support for the /VO10 compiler option (Compatible IIF expressions, where the TRUE and FALSE expressions are of a different type).
- And finally we restored the behavior that the call to the parent constructor no longer has to be the first line inside a constructor (for VO and Vulcan dialect only). That way you will be able to create Clipper calling convention constructors and set default values for missing parameters before calling the Super constructor. Or call a PreInit() method before the super constructor.
As said: this build is for download for FOX subscribers only.
The next public beta is planned for the second half of June 2016, and should contain the full VO and Vulcan compatibility support as well as some enhancements inside Visual Studio and our first XSharp Runtime.
We would finally like to remind you that the introductionary price for the FOX program ends this month.
Stay tuned for more news!