- Created: 13 June 2018
When we designed the X# compile and X# Runtime we had a few focus points in mind:
- The language and runtime should be VO compatible whenever possible. We know that the Vulcan devteam made some decisions not to support certain features from VO, but we decided that we would like to be as compatible as technically possible.
- We want our runtime to be fully Unicode and AnyCPU. It should run on any platform and also both in x86 and x64 mode. That has caused some challenges because VO is Ansi (and not Unicode) and also X86. In VO you can cast a LONG to a PTR. That will not work in X64 mode because a LONG is 32 bits and a PTR 64 bits
- We want the code to compile in "Safe" mode. No unsafe code when not strictly needed. The biggest problem / challenge here is the PTR type. With a PTR you can access memory directly and read/write from memory, even if you don't "own" that memory. However the same PTR type is also used as "unique identifier" for example in the low level file i/o and in the GUI classes for Window and Control handles. These PTR values are never used to read/write memory but are like object references. We have decided to use the .Net IntPtr type for this kind of handles. Of course the compiler can transparently convert between PTR and IntPtr.
- We want to prove that the X# language is a first class .Net development language. That is why we decided to write the X# runtime in X#. By doing that we also create a large codebase to test the compiler. So that is a win - win situation.
- We want the runtime to be thread safe. Each thread has its own "global" state and its own list of open workareas. When a new thread is started it will inherit the state of the main thread but will not inherit the workareas from the main thread
- At this moment the X# Runtime is compiled against .Net Framework 4.6.
- Created: 05 June 2018
Just a quick update to follow up on our report from last week.
Our meeting in Greece last week has brought up a few compatibility problems between X# and Visual Objects, especially in the area of Number <-> String conversions as well as the Transform and Unformat functions.
For some of the problems you could argue that the VO implementation does not make sense. However for obvious (compatibility) reasons we try to make our runtime behave just as insane as Visual Objects.
We will try to resolve most of these this week and when no new problems arise we will upload X# 2 beta 1 end of this week.
There is one important new feature in this build that we would like to announce at this moment and that is support for Dynamic typed arrays.
This feature has been added and sponsored by one customer in particular, but we think it can be usefull for all of you.
Look at the following code for an example and the new syntax ARRAY OF <type>
- Created: 25 May 2018
With this message we would like to give you all a quick heads up of the progress on the X# runtime.
As promised in Cologne last month we will release the first beta of the X# runtime end of May.
And we are on schedule !
We will release the first Beta next week. This will include XSharp.Core.DLL and XSharp.VO.DLL the 2 components that contain the XBase functions and XBase specific types. Recompiled versions of the VO class libraries are most likely not included yet. These will follow a few weeks later. In fact: we will not send you these DLLs but will deliver a tool that will create personalid versions of these DLLs for you which include your Visual Objects username and serial number, to avoid legal and copyright issues. That means that without valid VO installation you will not be able to create these DLLs.
- Created: 25 May 2018
If you want to read the policy click here.
- Created: 26 April 2018
ILSpy is the open-source .NET assembly browser and decompiler, and as shown during the xBase Future 2018, you can now use ILSpy to view and decompile .NET assembly as XSharp Language.
To do so, first get the ILSpy binaries and unzip them in a folder.
Then get the ILSpy Plugin in the Downloads/General/Tools section, and unzip the DLL in the same folder as the ILSpy Binaries.
Now, when running ISpy, you can set the language as XSharp.
The full source code of the Plugin is available in the public XSharp Repository on Github; you can also view there the current state of developement of the tool ( What is working currently, Changelog, ... )
- Created: 26 April 2018
At the XBase.Future conference we have talked with you about our plans for 2018.
For those of you that could not make it to the conference we have uploaded the presentations to this webserver.
Many of you have asked about the planning for the release of the runtime. The short version of this is below.
More information about what is in each of the components can be found in a blog article on this website
Finally, some people have asked us how they can contribute to the source code of the runtime and/or visual studio integration. Please look at this article for more information.
- Created: 19 April 2018
Just a short message to tell all of you that we have had a great conference XBase Future 2018 in Cologne this week. The conference was very well organized and there were a lot of great topics. And of course the "after session" time was also worth the trip.
We have used the occasion to speak with customers about our plans for X# for the coming years. We have shown a beta version of the X# runtime, including the macro compiler and we have received very valuable feedback during our sessions. Fabrice has also shown his new plugin for IlSpy that allows you to decompile any .Net assembly into X# code, Very useful!
Some of the customers have shared their success stories about how they have used X# and its tools to move their applications from Visual Objects to .Net. We have also seen some very nice apps running in .Net compiled with X#. We love to see and hear these success stories !
Please give us a few days to recover and organise things at home and then we will share the announcements we did in Cologne as well as the roadmap etc. in the form of messages and downloads on this website.
- Created: 10 April 2018
We have just released XSharp 1.2.1 to our FOX subscribers.
This is an interim release that adds some small features to the compiler and has some enhancements in the Visual Studio integration that should mostly benefit users with large solutions.
Build 1.2.1 will most likely be the last XSharp 1 build.
Next week, at the conference in Cologne, we will show a beta version of XSharp 2 which will include the XSharp runtime.
More details about the planning for the release of XSharp 2.0 will be revealed at the conference and will be shared at this website after the conference.
We hope to see you all in Cologne. You can still register !