www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.announce - Calypso milestone hit: D adaptation of Qt5 tutorial working

reply "Elie Morisse" <syniurge gmail.com> writes:
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 08 2015
next sibling parent reply "Mike" <none none.com> writes:
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 08 2015
next sibling parent reply Rainer Schuetze <r.sagitario gmx.de> writes:
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
parent reply "Elie Morisse" <syniurge gmail.com> writes:
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
parent "Elie Morisse" <syniurge gmail.com> writes:
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
prev sibling parent "Kagamin" <spam here.lot> writes:
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
prev sibling parent Walter Bright <newshound2 digitalmars.com> writes:
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!
May 09 2015