- Created: 06 December 2016
We have uploaded a new version of the compiler for our FOX subscribers to the Prerelease area on this website. This version fixes several issues that have been reported by our customers.
VO and Vulcan compatibility:
- All init procedures are now properly called at program startup. So not only init procedures in the SDK libraries, but also init procedures in 3rd party libraries and in your own code
- When both a function (static method) and an instance method with the same name can be found, then the compiler will no longer choose the instance method, but will default to the static method, when called inside a class and no SELF: or SUPER: prefix is used.
- The sizeof operator now returns a DWORD value
- Added support for EXIT PROCEDURES (PROCEDURE MyProcedure EXIT). These procedures will automatically be called during program shutdown, just before all the global variables in the assembly are cleared.
- We have added support for preprocessor output (ppo) files
- The code generation for IIF expressions has been improved
- The code for ACCESS and ASSIGN methods is no longer stored as a separate method, but inlined in the generated Property Get and Property Set.
This build contains many bug fixes and fixes many smaller and larger incompatibilities with the VO/Vulcan compiler. See the included readme for more information.
- Created: 20 November 2016
We are proud to announce that we have released XSharp Beta 8 to our FOX subscribers,
This version has many new features. The list below shows some of the highlights:
- Support for the new Visual Studio 2017
- We have implemented “Linked Files” in a project. This is useful for example if you have files with common code that you want to include in different projects, like global attributes with company name, product name etc.
- We have added the ability to “Show all files”.
- If you add a file with a Form or User Control to your project we will now detect that, and set the subtype of the file. You should see the appropriate icon appear in the project tree
- Improved Drag and drop in the project explorer
- The ResX and Settings editor now generate source code. We have also enabled the combo box in these editors that allow you to choose between public and internal classes.
Compiler and Language changes
Some new language features in the Compiler:
- Object Initializers
- Collection Initializers
- When constructing anonymous types, you no longer have to name the fields. If you reference fields or properties from other objects, then the names of these fields/properties will be used for the anonymous type as well
Many improvements in the VO/Vulcan compatibility
- Default Parameters are now implemented just like in VO and Vulcan.
- Init Procedures in the main app and the Vulcan SDK Libraries are now called by the main app. We are also initializing the Vulcan macro compiler (calling Init procedure in other libraries will follow shortly)
- The compiler option Implicit Casts and Conversions (/vo7) has been implemented. You can now also use the @ sign to pass variables by Reference (but we prefer the REF syntax)
- With these changes you can now successfully compile the standard sdi and mdi examples from VO/Vulcan with X#.
- Created: 16 November 2016
Today at Connect 2016 Microsoft Launched the new version of Visual Studio called Visual Studio 2017
There are many new features in this product. The first and also first visible difference is that the installation process has dramatically changed. You no longer have to download and install many giga bytes of information to run Visual Studio. In stead you now can select a workload and only the elements needed for this particular work will be installed.
Typical workloads are .Net desktop development, Universal Windows Platform development and many more.
Installation will run much smoother after that and the whole footprint of Visual Studio will be much smaller.
We at XSharp are ready for this new version, as we already have indicated in earlier news posts.
We are proud that we are one of the so-called "Sim Ship partners" for Visual Studio 2017, 3rd party vendors whose product is ready for VS 2017 from day 1.
We have created a new installer for our FOX subscribers which will integrate the X# product in Visual Studio 2015 and/or Visual Studio 2017. A public installer is expected around Christmas time.
The new installer will be available for download later this week. Please give us some time to test the latest Visual Studio build, to be sure nothing serious has changed.
To celebrate the release of Visual Studio 2017 we have a special introductionary price for new FOX subscribers: new FOX subscribers will get a 30% discount when they use the Coupon Code VS2017 during the order process.
Click here to subscribe to the the FOX program immediately and to qualify for the 30% discount.
This discount will be available until January 31st 2017.
- Created: 25 October 2016
You may have heard about it already, but Microsoft is working very hard to finish the next version of Visual Studio (VsNext or VS 15).
Last week they have released Preview 5. You can read more about this new VS version on https://www.visualstudio.com/en-us/news/releasenotes/vs15-relnotes.
Of course we are working very hard to make sure that X# works with this new version of Visual Studio, and so far this works.
Our latest installer (Beta 7a) detects the installation of VS 15 and integrates into VS15 without problems !
See the picture below for the form designer in action
In a couple of weeks, on November 16 & 17 at Connect 2016 more information about this new VS version is expected. Stay tuned, we will keep you informed as well.
- 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
- 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!
- Created: 30 April 2016
The conference in Cologne is now more than a week behind us and we have all gone back to the usual work.
In the last week many people, that did not attend the conference, have approached us to hear the details about our future plans.
That is why we have decided to upload PDF versions of Robert's presentations to the website.
Goto the Downloads / General section to find them
We have also picked up the work for the Spring build that contains the full Bring Your Own Runtime support. We have now implemented:
- Clipper calling convention
- /vo5 compiler option (to set Clipper calling convention for parameter-less methods)
- Support for the implicit functions PCOUNT, _GETMPARAM and _GETFPARAM
- Support for String2Psz() and Cast2Psz()
At the same time we have also added a couple of new features to the language (sorry we could not resist it..)
- Lambda expressions with multiple expressions
- Lambda expressions with multiple statements
- The nameof operator
- Anonymous classes (useful when doing Linq)
- Using block now (optionally) contains a variable declaration
And also some changes in our Visual Studio integration
- Support for designer.prg
- Fixed some problems with opening the source from the error list
- Visual Studio was always treating "warnings as errors" regardless of the setting in the project properties. This has been fixed.
Please give us a week or so to wrap this up, create some examples and to release Beta 4 (for FOX subscribers only).