Success story

This forum is meant for anything you would like to share with other visitors
Post Reply
User avatar
robert
Posts: 4520
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Success story

Post by robert »

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
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Success story

Post by wriedmann »

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
Wolfgang Riedmann
Meran, South Tyrol, Italy
wolfgang@riedmann.it
https://www.riedmann.it - https://docs.xsharp.it
George
Posts: 106
Joined: Thu Nov 05, 2015 9:17 am

Success story

Post by George »

Good news for my last VO app (16 years old) who was not imported nor rewritten in .NET.

George
User avatar
rjpajaron
Posts: 364
Joined: Fri Nov 06, 2015 12:01 am

Success story

Post by rjpajaron »

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
User avatar
Otto
Posts: 174
Joined: Wed Sep 30, 2015 6:22 pm

Success story

Post by Otto »

Hi Robert,

That is really great news!

Best regards,
Otto
User avatar
Chris
Posts: 4906
Joined: Thu Oct 08, 2015 7:48 am
Location: Greece

Success story

Post by Chris »

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
Chris Pyrgas

XSharp Development Team
chris(at)xsharp.eu
User avatar
wriedmann
Posts: 3755
Joined: Mon Nov 02, 2015 5:07 pm
Location: Italy

Success story

Post by wriedmann »

Hi Chris,
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.
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).

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
User avatar
robert
Posts: 4520
Joined: Fri Aug 21, 2015 10:57 am
Location: Netherlands

Success story

Post by robert »

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
XSharp Development Team
The Netherlands
robert@xsharp.eu
User avatar
rjpajaron
Posts: 364
Joined: Fri Nov 06, 2015 12:01 am

Success story

Post by rjpajaron »

Thanks Chris for the feedback.

Can't wait.

Keep us inform all the time...

thanks,

Rene
Post Reply