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
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-devel

Reply via email to