It is time to let you know what we have done since beta 9.Below is a list of the things that are ready and will be included in beta 10.
We have also published the contents of our help file on the website.
- We have completed support for the DEFINE keyword. The type clause is now optional. The compiler will figure out the type of the define when no type is specified.
The DEFINEs will be compiled to a Constant field of the Functions class, or a Readonly Static field, when the expression cannot be easily determined at compile time.
- We have extended the preprocessor . It now has support for #command, #translatem #xcommand and #xtranslate
- Added ASTYPE expression, similar to the AS construct in other languages. This will assign a value of the correct type or NULL when the expression is not of the correct type:
VAR someVariable := <AnExpression> ASTYPE <SomeType>
- Tested and works with Visual Studio 2017 RC 4
- We have added supports for snippets and included several code snippets in the installer
- Added support for ARM and Itanium platform types
- The parser that is used in the Windows Forms editor now also properly handles background images in resource files. Both images in the resx for the form and also background images in the shared project resources
- We have added Nuget support for our project system.
- Added a project property to control how Managed file resources are included: Use Vulcan Compatible Managed Resources
- Fixes several problems with dependent items
- Added implementation of the OAProject.Imports property, which is used by JetBrains
- Fixed a problem converting WPF style projects
More than a year ago, we have published our first development Roadmap for the X# project. This new roadmap continues the tradition and describes what our plans for 2017 are.
Our plans for 2017
You will not be surprised that the open items from our roadmap for 2016 are still on the to do list for 2017. Some of the things on our to list:
- Improved Visual Studio support:
- Nuget support
- Editors for the VO Binaries
- Support for other VS subsystems, especially those that are based on T4 templates.
- “Intellisense” features for the editor, such as completion lists, parameter tips, Goto definition etc
- Class browser and Object browser support
- Debugger support for Globals and X# expressions
- Create the X# runtime, so you no longer need the Vulcan Runtime to run your apps that use RDDs and the VO SDK classes. Our intention is not only to replace the Vulcan runtime, but also to improve it.
After all, we have done this before, so we can do it again, but then better!
- Thread Safe runtime and RDD system
- Runs on AnyCPU
- Support Runtime Macros AND scripting (our macro compiler will support the complete language!)
- Portable where possible. Unfortunately, there are many areas (IO related mostly) that can’t be completely portable
- Add support for an extra xBase language. At this moment, we are considering to add support for (x)Harbour. The (x)Harbour community is very active and seems to be the most interesting target audience.
Contents / Motto
Most “intellisense” features in VS
Complete X# Runtime
First version of (x)Harbour support
Complete version of (x)Harbour support
We are proud to announce that a new prerelease version of the X# compiler is available for download for our FOX subscribers.
You can find the ZIP file with the new compiler in the prerelease downloads folder on this website.
With this build you can compile the Vulcan SDK without changes, except for some obvious errors in the Vulcan SDK that Vulcan did not find! One of our team members will write a blog article about these errors, since you may have similar problems in your code.
We consider the Vulcan Compatibility of the compiler nearly finished with the current state of the compiler. All Vulcan code should compile without problems now. Of course the real test is with compiling and running YOUR source code.
Please try this version of the compiler with as much of your code as possible and let us know which compile time and which runtime problems you find.
The next builds of the compiler will focus on bug fixing and adding some VO compatibility options such as UDCs, VO compatible DEFINES, VO compatible numeric conversions etc.
The next full build of the product (Beta 9) will contain this new compiler and improved Visual Studio support and is expected a few weeks from now.
For those interested, here is a summary of the changes in the compiler since Beta 8:
- Added support for PCall and PCallNative
- Full support for INIT procedures. We also added EXIT procedures.
- Added compatibility command line options /ppo, .showincludes, /vo1, /vo6
- Changed several method resolution strategies. Calls without object/self prefix will resolve to functions first and when no function is found then it will look for instance methods
- Added support for DEFAULT TO, ACCEPT, WAIT and QUIT commands
- Allow multiple indexed properties per type and allow to use the indexer name, such as the string:Chars collection
- Code generation has been optimized for several language constructs
- Debugger step information has been improved for a better debug "experience".
The full list of changes is included in the ZIP but also available as download in the General section on this website.
If you are not a FOX subscriber and want to test this new compiler with your code: sign up now.
Click here to subscribe to the the FOX program immediately and to qualify for the 30% discount.
We are proud to announce the release of XSharp Beta 9.
This beta mainly focuses on bug fixes and compatibility With this build we consider the VO and Vulcan support completed: the complete Vulcan SDK compiles as well as 99.9% of the 3rd party products, such as ClassMate, ReportPro, bBrowser and Vn2Ado. You should have no problems compiling your Vulcan code with this build of X#.
Many changes to the compiler have been released before as Beta 8a and Beta 8b. We have made some more changes since beta 8b mostly as a result of your feedback, for which we are very grateful.
This build also includes updated Visual Studio integration. Unfortunately not with Code completion and other editor features, but we did make quite some changes to the build system and project system. Not all of these are directly visible, but we fixed some glitches, especially with regard to dependent items, resource compilation, the error list etc. We have now also enabled all the VO compatibility compiler options in the project properties dialog.
And if you are wondering "where is my intellisense": we have decided to delay the Code completion support until the next build because we were not completely satisfied with it.
You will also find quite some changes in the documentation. All of the compiler options are documentation now, and we have included a list of the most common error numbers and messages.
Today we are uploading both a build for our Friends Of XSharp (FOX) subscribers and a public build. This public build is identical to the FOX build but does not include the optimized version of the compiler.
Last but not least: our special 30% discount on the price of a FOX subscription was expiring this week. We have decided to extend this price until February 15th. Click here to subscribe now
On behalf of the whole devteam I would like to wish all our friends, customers and other people following our project all the best for 2017!
And I would also like to use the opportunity to share some news with you:
Last week we had our 2nd 'DevTeam Summit' in Athens. It was a little bit different this year compared with last year. First Fabrice could not attend because of health issues for a relative. And secondly it was cold, very cold. We had snow in Athens !
We worked a lot this week but also had some time for touristic attractions, as you can see in the image here.
One of the things we acomplished is that we finished the work on the Vulcan compatibility in the compiler. We were able to successfully compiler the complete Vulcan SDK including all kind of dirty tricks that are used in this SDK without code changes.
To be honest: we had to make a couple of changes, because our compiler found a few problems in the Vulcan SDK. If you ever wondered why drag and drop in the GUI classes is not working properly in Vulcan, then we have found the reason: there is code missing because of a typo in a define in the source code.
We also discussed our future plans for X# and you can expect updates on this website in the next couple of weeks.
As you can expect we will now pickup the work on the X# runtime, which will consist of a set of runtime functions, xBase datatypes RDDs, Macro compiler and more.
We expect to be able show you a lot of this at the XBase Future conference in Cologne end of April.
Will we see you there ?