[fpc-devel] RTTI interface & variant late binding issue (mORMot)
Arnaud Bouchez
webcontact01 at synopse.info
Sat Feb 7 13:03:37 CET 2015
Just to be clear, because it sounds like there is some confusion in the
discussion.
About http://bugs.freepascal.org/view.php?id=26774
1. We do NOT need Invoke() implemented.
2. We do NOT need extended RTTI as available since Delphi 2010, nor
features like attributes.
3. We do NOT need 100% compatibility with Delphi - it is fine to have
some diverse data layout.
4. There should not be huge platform specific work.
Because:
1. We have our own low-level Invoke, for x86 and x64 platforms, working
on both Windows and Linux.
Note: you can take a look at how we defined the asm stubs, in mORMot.pas
- much better design than the RTTI.pas or RIO.pas code IMHO - see
http://blog.synopse.info/post/2012/03/07/Interface-based-services-implementation-details
2. We need only the RTTI as available since Delphi 6 for IInvokable
methods arguments.
3. We already introduced some FPC-specific code, e.g. to follow RTTI
data alignment on platforms which demand it.
4. By design, point 2 is mostly platform-independent, and some details
(like calling conventions) do already exist for other part of the
existing FPC RTTI.
What is needed by this bug report is to have
objectdef_rtti_interface_full(def:tobjectdef) implemented in ncgrtti.pas.
Any new input is welcome!
Arnaud
More information about the fpc-devel
mailing list