[fpc-devel] RTTI interface & variant late binding issue (mORMot)

Michael Van Canneyt michael at freepascal.org
Sun Mar 22 10:38:34 CET 2015

On Sun, 22 Mar 2015, Alfred wrote:

> Hello again to all,
> I am enjoying variant late binding AND interface RTTI for a while now !
> Thanks again !
> As far as I know, the patch for RTTI has not yet been included in trunk.
> But correct me if I am wrong.
> I would like to ask to include the RTTI patch for i386 in trunk.
> With i386 interface RTTI, FPC is on level with Kylix for the RTTI part.
> To ease introduction, I would like to suggest to include a new 
> HASINTERFACERTTI flag, which will let the FPC user know, the new RTTI is 
> available for use.
> At this moment, it will only be i386.

I can't remember when I last used i386 code. Must have been more than 10 years ago.

> But I hope also ARM will be included in the trunk.
> On my Raspberry Pi2, the new RTTI works flawless.

The core developers are divided on the approach to take. Hence it is not yet included.
The code is highly non-portable, which means that each platform must be maintained separately.
This means additional pressure on people who maintain these other platforms.

The idea is to use a manager approach (as for instance for threads, locale, widestrings)
using a libffi wrapper as fallback for platforms for which no native manager is available.
(see https://sourceware.org/libffi/)

However this means the RTTI info must be written in a format that can be fed directly to libffi.
(or using a conversion routine). In each case, additional work is needed.

My - and Florian Klaempfl's, if I understood correctly - idea is to include what exists, 
and then modify the code as needed so it can work with libffi. Others fear that this will 
mean the ffi wrapper will not get written anytime soon.


More information about the fpc-devel mailing list