Am 01.08.2013 12:11, schrieb Michael Van Canneyt:
On Thu, 1 Aug 2013, Sven Barth wrote:
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.d...@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.
Since a library is provided by a vendor, I'd say you normally
interface with one compiler per lib that you target, no ?
That's basically what I said :)
As a first step I'd only target GCC and LLVM as these are the main
compilers for the majority of our platforms.
Eh, MSVC also seems popular on windows ? ;)
We have three windows platforms with MSVC and I don't know how many
platforms where GCC or LLVM is the main compiler. I'm not going for
popularity here, just for the majority of platforms.
Regards,
Sven
_______________________________________________
fpc-pascal maillist - fpc-pascal@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-pascal