Jump to page: 1 24  
Page
Thread overview
Calypso progress report (+ updated MingW64 build)
Oct 21, 2015
Elie Morisse
Oct 22, 2015
Elie Morisse
Nov 15, 2015
Elie Morisse
Nov 21, 2015
Elie Morisse
Nov 23, 2015
deadalnix
Nov 23, 2015
Elie Morisse
Nov 24, 2015
deadalnix
Nov 24, 2015
Elie Morisse
Nov 25, 2015
deadalnix
Nov 25, 2015
deadalnix
Nov 25, 2015
Elie Morisse
Oct 22, 2015
Joakim
Oct 22, 2015
jmh530
Oct 22, 2015
Suliman
Oct 22, 2015
Szymon Gatner
Oct 22, 2015
Szymon Gatner
Oct 22, 2015
Kai Nacke
Oct 22, 2015
Elie Morisse
Oct 23, 2015
jmh530
Oct 22, 2015
Kagamin
Oct 22, 2015
Elie Morisse
Oct 23, 2015
Kagamin
Oct 25, 2015
Elie Morisse
Oct 25, 2015
Stefan
Oct 25, 2015
Elie Morisse
Oct 26, 2015
Elie Morisse
Oct 26, 2015
Laeeth Isharc
Oct 26, 2015
Elie Morisse
Oct 26, 2015
Russel Winder
Oct 26, 2015
bachmeier
Oct 27, 2015
Laeeth Isharc
Oct 27, 2015
jmh530
Oct 27, 2015
bachmeier
Oct 27, 2015
jmh530
October 21, 2015
It's been a while since the last update, so here's a quick one before making the jump to LDC 0.16.

Kelly added a more complex Qt5 demo, I recently added an Ogre3D one:

  https://www.youtube.com/watch?v=eryhDOa9MV0
  https://github.com/Syniurge/Calypso/blob/master/tests/calypso/ogre3d/demo.d

Ogre3D is a much more "sophisticated" creature than Qt5, relies on some Boost libraries, so Calypso had to reach quite another level to support it.

As a reminder Calypso (https://github.com/Syniurge/Calypso) is an experimental LDC fork which lets you use C/C++ libraries without having to write bindings. Its main additions:

 • Maps C++ functions, global variables, structs, classes, unions, enums, typedefs, templates
 • C++ class and function template instantiation (including global variables inside class templates with their proper initialization in the global ctor)
 • C++ class creation with the correct calls to ctors (destruction is still disabled)
 • Virtual function calls
 • Static casts between C++ base and derived classes (incl. multiple inheritance offsets)
 • D classes inheriting from C++ classes, including the correct vtable generation for the C++ part of the class (except for MSVC which has a different ABI)
 • Debug info generation for any C++ symbol instantiated by D code

The roadmap is:

 merge upstream LDC 0.16 into Calypso → C++ exception support → better C++11 support → MSVC support → extend magicport2 to convert Calypso to D (and Calypso could "bootstrap" itself to avoid writing bindings to Clang) → make Calypso an optional shared library

On Linux Calypso should be in a state usable enough to start a project assuming the lack of C++ exceptions or class destruction isn't a blocker to start it (but I'm looking into the latter right now), it has held up quite well while expanding the Ogre and Qt5 demos, and my own project based on Qt5 and OpenCV.

So far only Kelly Wilson has been testing Calypso with various libs and expanded the test cases (most of the libstdc++ samples are his), so more testing would be very helpful.


Updated MingW build: http://www.homo-nebulus.fr/dlang/Calypso-Mingw64-i686-4.9.3-posix-dwarf-rt_v4-rev1.tar.xz
October 22, 2015
On 10/21/2015 07:40 PM, Elie Morisse wrote:
> It's been a while since the last update, so here's a quick one before
> making the jump to LDC 0.16.

Great news! What's the story on exceptions? Does Calypso allow D code to catch exceptions thrown from C++ code? -- Andrei

October 22, 2015
On Thursday, 22 October 2015 at 01:19:19 UTC, Andrei Alexandrescu wrote:
> On 10/21/2015 07:40 PM, Elie Morisse wrote:
>> It's been a while since the last update, so here's a quick one before
>> making the jump to LDC 0.16.
>
> Great news! What's the story on exceptions? Does Calypso allow D code to catch exceptions thrown from C++ code? -- Andrei

Hi Andrei,

Not yet but I've looked into it, the plan is to add:

  catch (C++) (...) { }

statements and make Clang translate them into C++ landing pads (as for imports the parser will query the language plugins when encountering two pairs of (), so the C++-specific statement will be part of Calypso, not DMD).

Then add a "C++ exception class" handler in LDC's personality function:

  https://github.com/ldc-developers/druntime/blob/ldc/src/ldc/eh/libunwind.d#L327

Easier said that done but Clang should make the std::type_info matching doable.

So it's on the roadmap just after the merge of LDC 0.16.
October 22, 2015
On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
> It's been a while since the last update, so here's a quick one before making the jump to LDC 0.16.

You should write a blog post explaining what you have done so far and what remains to be done, then submit it to the usual link sites.  I bet a lot of people would be interested in reading about this approach.
October 22, 2015
On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
> make Calypso an optional shared library

Does it's mean, that Calypso can be work as plugin for Clang?

October 22, 2015
On Thursday, 22 October 2015 at 03:14:39 UTC, Joakim wrote:
> On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
>> It's been a while since the last update, so here's a quick one before making the jump to LDC 0.16.
>
> You should write a blog post explaining what you have done so far and what remains to be done, then submit it to the usual link sites.  I bet a lot of people would be interested in reading about this approach.

Second.
October 22, 2015
On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
> It's been a while since the last update, so here's a quick one before making the jump to LDC 0.16.
>
> Kelly added a more complex Qt5 demo, I recently added an Ogre3D one:
>
>   https://www.youtube.com/watch?v=eryhDOa9MV0
>   https://github.com/Syniurge/Calypso/blob/master/tests/calypso/ogre3d/demo.d
>
> Ogre3D is a much more "sophisticated" creature than Qt5, relies on some Boost libraries, so Calypso had to reach quite another level to support it.
>

Wow, this is fantastic. What about Windows and iOS support?


October 22, 2015
On Thursday, 22 October 2015 at 15:22:16 UTC, Szymon Gatner wrote:
> On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
>> It's been a while since the last update, so here's a quick one before making the jump to LDC 0.16.
>>
>> Kelly added a more complex Qt5 demo, I recently added an Ogre3D one:
>>
>>   https://www.youtube.com/watch?v=eryhDOa9MV0
>>   https://github.com/Syniurge/Calypso/blob/master/tests/calypso/ogre3d/demo.d
>>
>> Ogre3D is a much more "sophisticated" creature than Qt5, relies on some Boost libraries, so Calypso had to reach quite another level to support it.
>>
>
> Wow, this is fantastic. What about Windows and iOS support?

By Windows I meant Win32/x86
October 22, 2015
On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
> On Linux Calypso should be in a state usable enough to start a project assuming the lack of C++ exceptions or class destruction isn't a blocker to start it (but I'm looking into the latter right now), it has held up quite well while expanding the Ogre and Qt5 demos, and my own project based on Qt5 and OpenCV.

Cool, is that a value type QString? Really? Then functions in Qt5 demo should accept QString by ref to better match C++.
Are copy constructors and assignment operator invoked?
As I see default constructors are not invoked yet?
October 22, 2015
On Thursday, 22 October 2015 at 15:23:34 UTC, Szymon Gatner wrote:
> On Thursday, 22 October 2015 at 15:22:16 UTC, Szymon Gatner wrote:
>> On Wednesday, 21 October 2015 at 23:40:15 UTC, Elie Morisse wrote:
>>> It's been a while since the last update, so here's a quick one before making the jump to LDC 0.16.
>>>
>>> Kelly added a more complex Qt5 demo, I recently added an Ogre3D one:
>>>
>>>   https://www.youtube.com/watch?v=eryhDOa9MV0
>>>   https://github.com/Syniurge/Calypso/blob/master/tests/calypso/ogre3d/demo.d
>>>
>>> Ogre3D is a much more "sophisticated" creature than Qt5, relies on some Boost libraries, so Calypso had to reach quite another level to support it.
>>>
>>
>> Wow, this is fantastic. What about Windows and iOS support?
>
> By Windows I meant Win32/x86

Win32/x86 is on the todo-list for the LDC release. I assume that once merged Calypso will support Win32/x86, too. (There is still work to do on x86 exception support in LLVM.)

Regards,
Kai
« First   ‹ Prev
1 2 3 4