[fpc-pascal] Re: Automatically exporting C++ API using SWIG??

Sven Barth pascaldragon at googlemail.com
Thu Aug 1 12:05:47 CEST 2013

Am 01.08.2013 11:38, schrieb Michael Van Canneyt:
> On Thu, 1 Aug 2013, Sven Barth wrote:
>> Am 01.08.2013 11:10, schrieb dev.dliw at gmail.com:
>>> And if it's allowed to dream: one time fpc will simply link against C++
>>> directly :)
>> If you prefer to work in Pascal instead of C++ then you could work on 
>> that dream by improving the cppclass code in the compiler. Linking 
>> against static C++ class methods already works, what's (basically) 
>> missing is support for C++ runtimes (at first the stdc++ one would be 
>> sufficient), support for vtables and object instantiation/destruction.
> How do you handle different binary formats of C++ compilers ?
> Or is this meanwhile standardized ?
Support for every C++ compiler (mainly MSVC, C++ builder and GCC [LLVM 
counts here as GCC]) needs to be implemented explicitely, because they 
not only differ in class layout, but also in e.g. name mangling. So in 
the end (if we want to support more than GCC and LLVM) we'll need to use 
a directive to declare which compiler to target and this then includes a 
corresponding interface unit for the runtime (like is done with 
Objective C) and let the compiler generate the code correctly. Maybe 
together with packages support it should be possible to interface with 
multiple different compilers at once.

As a first step I'd only target GCC and LLVM as these are the main 
compilers for the majority of our platforms.


More information about the fpc-pascal mailing list