Thread overview
Calypso milestone hit: D adaptation of Qt5 tutorial working
May 09, 2015
Elie Morisse
May 09, 2015
Mike
May 09, 2015
Rainer Schuetze
May 09, 2015
Elie Morisse
May 09, 2015
Elie Morisse
May 09, 2015
Kagamin
May 09, 2015
Walter Bright
May 09, 2015
Hi!

Calypso just got a D translation of the first Qt5 Widgets tutorial building and running:

  https://github.com/Syniurge/Calypso/blob/master/tests/calypso/qt5/qt5demo.d

Result: http://homo-nebulus.fr/dlang/oh%20my.webm

Compilation log: https://paste.kde.org/pewbbsw45

Previously Calypso was merely able to work with STL types, this is the first time a large C++ library is successfully mapped and used by D code (Ogre3D is probably close as well, but after Kagamin's suggestion and for a change of scene I switched my focus from Ogre3D to Qt).
May 09, 2015
On Saturday, 9 May 2015 at 02:31:09 UTC, Elie Morisse wrote:
> Hi!
>
> Calypso just got a D translation of the first Qt5 Widgets tutorial building and running:
>
>   https://github.com/Syniurge/Calypso/blob/master/tests/calypso/qt5/qt5demo.d
>
> Result: http://homo-nebulus.fr/dlang/oh%20my.webm
>
> Compilation log: https://paste.kde.org/pewbbsw45
>
> Previously Calypso was merely able to work with STL types, this is the first time a large C++ library is successfully mapped and used by D code (Ogre3D is probably close as well, but after Kagamin's suggestion and for a change of scene I switched my focus from Ogre3D to Qt).

Wow! Game changing work here, IMO!

Question:  You are using a modified version of LDC, but is that compiler required to consume link to a library created with that custom compiler?  What I mean is:  Can you use this modified version of LDC to create a library, and then use a generic D compiler to build an application that links to that library?

Mike
May 09, 2015

On 09.05.2015 04:58, Mike wrote:
> On Saturday, 9 May 2015 at 02:31:09 UTC, Elie Morisse wrote:
>> Hi!
>>
>> Calypso just got a D translation of the first Qt5 Widgets tutorial
>> building and running:
>>
>> https://github.com/Syniurge/Calypso/blob/master/tests/calypso/qt5/qt5demo.d
>>
>>
>> Result: http://homo-nebulus.fr/dlang/oh%20my.webm
>>
>> Compilation log: https://paste.kde.org/pewbbsw45
>>
>> Previously Calypso was merely able to work with STL types, this is the
>> first time a large C++ library is successfully mapped and used by D
>> code (Ogre3D is probably close as well, but after Kagamin's suggestion
>> and for a change of scene I switched my focus from Ogre3D to Qt).
>
> Wow! Game changing work here, IMO!
>
> Question:  You are using a modified version of LDC, but is that compiler
> required to consume link to a library created with that custom
> compiler?  What I mean is:  Can you use this modified version of LDC to
> create a library, and then use a generic D compiler to build an
> application that links to that library?
>
> Mike

Very impressive indeed!

Probably discussed before, but as an alternative to a library, would it be possible to use the header generation (-H) to emit .di files compatible with other compilers?
May 09, 2015
On Saturday, 9 May 2015 at 02:58:58 UTC, Mike wrote:
> Question:  You are using a modified version of LDC, but is that compiler required to consume link to a library created with that custom compiler?  What I mean is:  Can you use this modified version of LDC to create a library, and then use a generic D compiler to build an application that links to that library?

Should be possible. If you properly encapsulate language extensions, nothing should prevent using the library.
May 09, 2015
On Saturday, 9 May 2015 at 02:58:58 UTC, Mike wrote:
> Question:  You are using a modified version of LDC, but is that compiler required to consume link to a library created with that custom compiler?  What I mean is:  Can you use this modified version of LDC to create a library, and then use a generic D compiler to build an application that links to that library?

If you manage to hide every C++ symbol, including C++ class/struct/enum types, that should work.

On Saturday, 9 May 2015 at 09:56:03 UTC, Rainer Schuetze wrote:
> Probably discussed before, but as an alternative to a library, would it be possible to use the header generation (-H) to emit .di files compatible with other compilers?

I don't think this is possible since C++ functions for instance are mapped directly and not wrapped inside a D function, and only the Clang libraries know how to properly emit a call.
May 09, 2015
On Saturday, 9 May 2015 at 19:16:33 UTC, Elie Morisse wrote:
> On Saturday, 9 May 2015 at 02:58:58 UTC, Mike wrote:
>> Question:  You are using a modified version of LDC, but is that compiler required to consume link to a library created with that custom compiler?  What I mean is:  Can you use this modified version of LDC to create a library, and then use a generic D compiler to build an application that links to that library?
>
> If you manage to hide every C++ symbol

from the normal compiler I should have said, sorry for the vague answer. Linking would work like with normal D libraries, but the .d or .di files parsed by the normal compiler would have to be emptied of C++ imports so any symbol those imports provided shouldn't appear in the .di file.
May 09, 2015
On 5/8/2015 7:31 PM, Elie Morisse wrote:
> Hi!
>
> Calypso just got a D translation of the first Qt5 Widgets tutorial building and
> running:
>
> https://github.com/Syniurge/Calypso/blob/master/tests/calypso/qt5/qt5demo.d
>
> Result: http://homo-nebulus.fr/dlang/oh%20my.webm
>
> Compilation log: https://paste.kde.org/pewbbsw45
>
> Previously Calypso was merely able to work with STL types, this is the first
> time a large C++ library is successfully mapped and used by D code (Ogre3D is
> probably close as well, but after Kagamin's suggestion and for a change of scene
> I switched my focus from Ogre3D to Qt).

This is really quite dazz. I'm looking forward to meeting you at DConf!