64 bit compatibility of mORMot units
I'm happy to announce that mORMot units are now compiling and working great in 64
bit mode, under Windows.
Need a Delphi XE2/XE3 compiler, of course!
ORM and services are now available in Win64, on both client and
Low-level x64 assembler stubs have been created, tested and optimized.
UI part is also available... that is grid display, reporting (with pdf export and display anti-aliasing), ribbon auto-generation,
SynTaskDialog, i18n... the main SynFile demo just works
Overall impression is very positive, and speed is comparable to 32 bit version (only 10-15% slower).
Speed decrease seems to be mostly due to doubled pointer size, and some less
optimized part of the official Delphi RTL.
But since mORMot core uses its own set of functions (e.g. for JSON serialization, RTTI support or interface calls or stubbing), we were able to release the whole 64 bit power of your hardware.
Delphi 64 bit compiler sounds stable and efficient. Even when working at low
level, with assembler stubs.
Generated code sounds more optimized than the one emitted by FreePascalCompiler - and RTL is very close to 32 bit mode.
Overall, VCL conversion worked as easily than a simple re-build.
Embarcadero's people did a great job for VCL Win64 support, here!
SQlite3 works great in 64 bit mode.
You can find our own 3.7.16 version of the SQlite3 external
library, to be used in 64 bit mode, from SQLite3-64.7z, since there is no
official Win64 library released yet in http://sqlite.org
No problem so far, and pretty good performance.
Jut a weird bug about
SQLITE_TRANSIENT constant, which should be
pointer(integer(-1)) instead of
working with virtual tables columns - but nothing to care of in your user code,
since the framework will handle it for you.
I suspect some part of official
System.RTTI.pas unit as
provided in XE2/XE3 is broken in Win64.
For instance, I think it does not handle a method returning a string.
mORMot.pas implementation has been tested with the same
regression code as in 32 bit mode.
Your own tests and feedback are welcome!
Feedback and detailed tests results are available in our forum!