We are very proud that we can announce that we have just released XSharp Bandol 9 "Winter has come" to our FOX subscribers.
The X# Summit in Austin is getting closer and closer. We are preparing everything for a great event.
If you haven't registered yet, now is the time to do so. The special hotel room price will expire on Feb 15, but apart from that we'd like to know a.s.a.p. if you are coming so we can confirm and reserve everything with the hotel and others involved.
The session schedule will become available in a week or two from now.
We hope to meet you in Austin !
The Christmas build (184.108.40.206) has been received very well, but unfortunately a few small issues in the compiler make this build difficult to use for some of our clients. The good news is that we are getting very positive reports about the level of compatibility of the runtime and the compatibility and speed of the macro compiler.
We will deliver a new version in the coming weeks that fixes the compiler problems and also has some bug fixes to the runtime and VS integration.
The biggest other change in that new build will be the support for dBase style "dynamic" variables, such as PUBLICs and PRIVATEs. We have added this to the language, even though we think that there are better ways to code, but we know that some of our (potential) customers are using it. We have also added support for the PARAMETERS keyword which is an alternative for the declared parameters and works just like the parameters in a clipper calling convention. But the compiler does not create local variables for these parameters but private variables.
Memvars will be available in the VO, Harbour and Xbase++ dialects. So not in Vulcan and not in Core. And you also need to explicitely enable them by setting a special compiler option. We have also added support for undeclared variables (yes, really). This requires an additional compiler option and will always produce a special compiler warning (that you can disable). Undeclared variables are mapped to a runtime call that either returns the value of a field in the current workarea or otherwise a value of a PRIVATE or PUBLIC variable.
We have done our best to make this perform as fast as possible, but your code will be faster (and less error prone) if you stay away from the dynamic memory variables. So the choice is yours.
Unfortunately the work on the DBFCDX driver and additional work on the VS integration has received lower priority in the last weeks. Two of the devteam members have had to deal with the death of (close) familiy members, and 'family comes first' as you can imagine. So work has had lower priority as you will understand.
Something else is that Visual Studio 2019 preview 2 has been released. Our VS integration works nicely with this new version (you may have to run te installer again to install the VS support), however there is a problem with the 'New Project' dialog. Microsoft has hardcoded the languages in the languages dropdown, so XSharp is now shown as language. Also when you select the project type Windows Forms or Console then our templates are not shown. Only when you type XSharp in the search control then will our templates be shown.
In Preview 1 you could disable the new "New Project" dialog and switch back to the old dialog from previous versions of Visual Studio. That is no longer possible in Preview 2.
You can imagine that we are doing everything we can to get this corrected before VS 2019 is released, but we are not sure if there is time / priority for this in the Microsoft team.
Opening existing solutions / projects is not a problem, it is only the dialog to create new projects that has this problem.
For now we recomment not to use VS 2019.
Stay tuned for more news on the new release.
Finally: don't forget to register for our 'Summit' in Austin. The dead line for the special hotel room price is February 15. And of course we'd like to see many of you there !
A few months ago we posted a message on our forums under the title "The X# devteam wants to meet you". The reponse to that has been very positive, so we have decided to organize the event. With the help of Greg Garza and his colleagues at QLAdmin Solutions we have booked a location and we are now finalizing the plans.
We have decided to name this the "X# Summit".
It will be held in Austin (Texas) and will be on Thursday March 21 and Friday March 22 2019 . Please block those dates in your calendar if you want to attend.We will post more information later this week with details about the schedule, how you can register, what the costs will be, how you can reserve a room at the hotel for a special price that we arranged etc.
We will present the current state of the X# development and show how to migrate your apps from VO to .Net. We will also have time to explain some of the internals of the X# compiler and runtime and how you can use the new features in the product (generics, lambda expression, linq, scripting, multi threading etc) in your apps. We will also show you the support that we have for other dialects (such as XBase++ and Harbour).
Of course there will also be plenty of time for questions and answers and to socialize with other XBase developers, exchange ideas and maybe make plans to work together.
We intend to be there with 2 people from the development team, but we are also looking for other speakers. If you are interested then you can fill a complete time slot, but it would also be great if you want to share a success story of a project that you did. Our idea is to have one time slot where people can show their applications ("Application Show"). We have done this on other events in the past and this was always very inspiring.
We did want to share this with you so you can discuss a possible trip to Austin with your family during the Christmas holidays. So why don't you come and bring your partner for a nice (romantic?) weekend after the conference.
Once again, on behalf of the entire X# development team a very happy Chrismas for you and your loved ones.
We are very proud that we can announce that we have just released XSharp Bandol 8 "The Christmas Edition" to our FOX subscribers.
This new version has many new features. To name a few:
The development team wishes you all a very happy Christmas.
A short message to inform you of things we are working on this moment.
- We are making good progress with the new macro compiler. Most of the features are ready. And performance is very good !
- We have located and fixed almost all of the issues (some of) you have reported with the X# runtime
- We have added support in the compiler for the Xbase++ dialect.
- We have fixed many things in the VS integration. And X# also installs and works with the new Visual Studion 2019 preview
- We have also rearranged the runtime to better support the Xbase++dialect. There is now a separate VO assembly and a XPP assembly. Both share a common RT assembly that contains the common code (such as the USUAL, DATE and FLOAT types)
- We have updated the compiler to the latest version of the Roslyn source code. As a result we have new features (such as the ability to generate reference assemblies ), the new combination of "PRIVATE PROTECTED" which makes a type member only accessible for derived classes in the same assembly and more.
We have not enabled all the new features of the latest C# versions yet. For some of them we still have to invent a syntax. We are considering to add the IN modifier for parameters in one of the next builds. This will declare a readonly reference parameter. This is especially useful when you have a structure as parameter of a method (like the FLOAT or USUAL structures in the runtime). This should result in somewhat faster execution speed since at runtime not the whole structure has to be passed to a function or method, but only the address of the structure. Once we have added this to the compiler then we will also start to use this in the runtime.
There are many other new features added to Roslyn. You can look at this page to see the new features in C# in the last versions.
If you see something that you think is useful for X#, please let us know. And if you have a suggestion for a syntax, that helps too. One other thing we are thinking about is the "is pattern", which combines the "IS" check with the "ASTYPE" operation and creates a variable that has the scope of the IF expression that it is part of :
IF oServer IS DbServer oDbServer
oDbServer:GoTop() /// <- this will generate a compiler error because the scope of oDbServer is the statementblock inside the IF expression
We expect a new FOX release of the product by the end of next week. A public release will follow short before Christmas