We made some changes to the compiler this week and with these changes I was able to compile a reasonably sized customer app with X#. This app was developed with VO, migrated to Vulcan and now compiles unchanged with X#.
To give you an idea:
The app has 1000 source files, 100 header files, 500 native resource files, a total of 34 Mb source (including rc, and headers).
VOPP statistics for the original VO app says that there are 43.000 entities with 895.000 lines of source, of which there are 600.000 lines of real code.
The app uses a lot of stuff that everybody uses
- it is based on VO GUI, RDD etc.
- the app uses bBrowser and ReportPro 2.
- there is lots of latebound code
- there is lots of generated code from the server editor and windows editor
- lots of codeblocks
- init procedures
- many conversions between numeric types
- default parameters in the middle of the parameter list with VO style defaults, such as literal symbols, literal dates etc.
The debug version of X# takes about 1 min 30 seconds to compile the solution.
The release version of X# takes about 37 seconds to compile the solution
Vulcan takes about 3 minutes
The native resource compilation takes 12 seconds of the X# compilation time, so if you subtract that then the pure compilation time is 25 seconds for X# compared to 2 mins 48 for Vulcan.
Imagine compiling the whole app 10 times a day and you already have won 23 minutes!
Needless to say that we are very pleased with this !
Robert
Success story
Success story
XSharp Development Team
The Netherlands
robert@xsharp.eu
The Netherlands
robert@xsharp.eu
Success story
Hi Robert,
you can be very pleased with this result. Apart from the very fast X#-Compiler: this is a very large VO program, and I will be very happy to try my own VO programs with X# (they at this moment don't run with Vulcan.NET).
Wolfgang
you can be very pleased with this result. Apart from the very fast X#-Compiler: this is a very large VO program, and I will be very happy to try my own VO programs with X# (they at this moment don't run with Vulcan.NET).
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Success story
Good news for my last VO app (16 years old) who was not imported nor rewritten in .NET.
George
George
Success story
Hi Robert,
This is great news.
Profile of my VO apps is bBrowser + CM/RP3 +RightSLE +Fabtoys, and some odd classes taken from newsgroups and some Willie's stuff.
the next good news is when u said: VO RDD and VO Runtime fully compiled with X#. I assume, you are nearing the finish line on this part.
Regards,
Rene
This is great news.
Profile of my VO apps is bBrowser + CM/RP3 +RightSLE +Fabtoys, and some odd classes taken from newsgroups and some Willie's stuff.
the next good news is when u said: VO RDD and VO Runtime fully compiled with X#. I assume, you are nearing the finish line on this part.
Regards,
Rene
Success story
Hi Robert,
That is really great news!
Best regards,
Otto
That is really great news!
Best regards,
Otto
Success story
Hi Rene,
>>
the next good news is when u said: VO RDD and VO Runtime fully compiled with X#. I assume, you are nearing the finish line on this part.
>>
The runtime consists of several items:
- VO SDK, we are very close to being able to compile it "as is" in x#, now very few items are still remaining to do that, so it should be a matter of a few weeks at most.
- Macro compiler, this is more or less done, too, since the macro compiler will simply be a cut-down version of the x# compiler. And because the x# compiler is so much faster than the vulcan compiler, the same goes for the macro-compiler, it will be a lot faster, too.
- Runtime Funcs and RDDs, those are the items that still require enough work to be finished, can't give a specific timeframe, but they should be ready as well in a few months from now.
Chris
>>
the next good news is when u said: VO RDD and VO Runtime fully compiled with X#. I assume, you are nearing the finish line on this part.
>>
The runtime consists of several items:
- VO SDK, we are very close to being able to compile it "as is" in x#, now very few items are still remaining to do that, so it should be a matter of a few weeks at most.
- Macro compiler, this is more or less done, too, since the macro compiler will simply be a cut-down version of the x# compiler. And because the x# compiler is so much faster than the vulcan compiler, the same goes for the macro-compiler, it will be a lot faster, too.
- Runtime Funcs and RDDs, those are the items that still require enough work to be finished, can't give a specific timeframe, but they should be ready as well in a few months from now.
Chris
Chris Pyrgas
XSharp Development Team
chris(at)xsharp.eu
XSharp Development Team
chris(at)xsharp.eu
Success story
Hi Chris,
Compatibility to VO code is very important to us longtime VO programmers as most of us cannot afford to rewrite their VO applications.
Wolfgang
This should speedup a lot of VO code, specially DBF access and array operations like ASort() and AScan() - unfortunately this was no priority during Vulcan development (I remember some discussions about this, and the development head of this time stated that this was legacy code and speed of the macrocompiler had no importance).And because the x# compiler is so much faster than the vulcan compiler, the same goes for the macro-compiler, it will be a lot faster, too.
Compatibility to VO code is very important to us longtime VO programmers as most of us cannot afford to rewrite their VO applications.
Wolfgang
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
Success story
Wolfgang,
I do not want to be pessimistic, but you should realize that this will only make a change when creating runtime codeblocks, such as the index expressions for index files.
Most AScan and ASort() that I have seen in the field use compile time code blocks.
If you see speed diferences there between Vulcan and VO then this is because of the implementation of the ARRAY class in the Vulcan Runtime.
Now of course we plan to optimize this class as well, so that should be faster as well.
Robert
I do not want to be pessimistic, but you should realize that this will only make a change when creating runtime codeblocks, such as the index expressions for index files.
Most AScan and ASort() that I have seen in the field use compile time code blocks.
If you see speed diferences there between Vulcan and VO then this is because of the implementation of the ARRAY class in the Vulcan Runtime.
Now of course we plan to optimize this class as well, so that should be faster as well.
Robert
XSharp Development Team
The Netherlands
robert@xsharp.eu
The Netherlands
robert@xsharp.eu
Success story
Thanks Chris for the feedback.
Can't wait.
Keep us inform all the time...
thanks,
Rene
Can't wait.
Keep us inform all the time...
thanks,
Rene