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 !
XSharp Development Team
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).
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.
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.