On Thursday, 18 February 2016 at 03:07:22 UTC, Ali Çehreli wrote:
Congratulations! Any project that can get rid of moc is a big
achievement. :) Folks at CopperSpice had done the same in C++
with their Qt replacement:
http://www.copperspice.com/
Ali
Nice! I've never heard of them, interesting how they proved the
moc maintainer partly wrong.
On Thursday, 18 February 2016 at 03:36:20 UTC, ZombineDev wrote:
Congratulations! This is an extremely promising result!
BTW, what do you think about DMD's recent advancement in this
area? Can you reuse some of this work for Calypso? When do you
think you'll be ready to start upstreaming some of your work to
LDC and/or DMD?
https://github.com/D-Programming-Language/dmd/pull/5261 -
Parameter types should have namespace std mangling too
https://github.com/D-Programming-Language/dmd/pull/5262 - Add
versioned-out branch to support new C++-11 implementations of
std::string
https://github.com/D-Programming-Language/druntime/pull/1470 -
Add catching C++ exception support to dwarfeh.d
https://github.com/D-Programming-Language/druntime/pull/1473 -
add core.stdcpp.exception and core.stdcpp.typeinfo
https://github.com/D-Programming-Language/dmd/pull/5330 - fix
Issue 15389 - extern(C++) forward referencing problem
https://github.com/D-Programming-Language/dmd/pull/5333 - fix
Issue 15519 - Circular imports leads to fwd ref error with
aliased imports
https://github.com/D-Programming-Language/dmd/pull/5342 - C++
EH: initial front end work
https://github.com/D-Programming-Language/dmd/pull/5361 - fix
Issue 15579 - extern(C++) interfaces/multiple-inheritance
https://github.com/D-Programming-Language/dmd/pull/5372 - fix
Issue 15610 - extern(C++) multiple inheritance - calling with
wrong 'this' ptr
https://github.com/D-Programming-Language/dmd/pull/5397 - fix
Issue 15644 - Switch object layout ABI to MI style
https://github.com/D-Programming-Language/dmd/pull/5402 - fix
Issue 15647 - Casting from one C++ interface in a hierarchy to
another is a noop
https://github.com/D-Programming-Language/dmd/pull/5403 - fix
Issue 15626 - extern(C++) calling crash
Most of Calypso lives independently from the C++ support in DMD,
and instead queries Clang whenever possible on C++ matters.
It was actually catching C++ exceptions some time before DMD
(https://github.com/Syniurge/Calypso/tree/master/tests/calypso/eh), has no C++ multiple inheritance layout issue since that's handled by Clang, and the only way extern(C++) affects Calypso is by not reverting the order of function parameters so these functions can be correctly called by C++ code (function pointers, overridden virtual methods), and if I understand correctly this is only necessary because there's a discrepancy between DMD and what the docs say: http://forum.dlang.org/thread/zogygbvfszssudpae...@forum.dlang.org?page=2
When do you think you'll be ready to start upstreaming some of
your work to LDC and/or DMD?
My big concern is the switch to DDMD. It seems that the
transition is going pretty smoothly for LDC, but what about
Calypso's extensions to DMD? Calypso classes deriving from DMD
ones will have to be converted to D and those classes happen to
sollicit Clang's C++ API a lot, so I'm counting on C++ Calypso to
build D Calypso meaning it has to be pretty solid at that point
to support both Clang and LLVM.
Anyway as long as both LDC and Calypso haven't both caught up
with DDMD it's probably too early for upstreaming.
The downside is that Calypso is marginalized, I don't get many
testers (<- euphemism, only wilsonk helped a lot and right now
I'm about the only one testing). The neglecting of MSVC, the
"still experimental" label and the lack of releases probably
don't help in that regard. It's not a big deal though since I
have enough on my hands, coming next is the LDC 0.17 merge, and
rework on the PCH generation that should increase the speed 3x
according to cachegrind.