Syniurge / Calypso

LDC fork to experiment direct interfacing with C++
http://wiki.dlang.org/LDC
Other
136 stars 10 forks source link

Calypso could then exist as a LDC plugin in the form of a shared library. #44

Open wilzbach opened 8 years ago

wilzbach commented 8 years ago

It is designed so that when the day comes splitting Calypso from LDC will be easy and Calypso could then exist as a LDC plugin in the form of a shared library.

Is there already a roadmap with open issues for this day to happen?

Syniurge commented 8 years ago

Hi @wilzbach and sorry for the late reply, there is still a long way to go, Calypso first has to make the DDMD jump.

And the sentence from the wiki may make it sound easier than it is. It's easy to separate the bulk of Calypso from DMD/LDC and put it into a shared library but there are still many intrusions into the code of DMD and LDC that first need to be turned into PR and accepted by the DMD and LDC teams: type system changes, class value types, generalization of struct literals for class values, multiple template parameter pack support, lots of small hooks... (and some of these changes need rework and cleanup before submission)

According to https://github.com/ldc-developers/ldc/compare/release-0.17.1...Syniurge:cpp11-push there are more than 1700 lines of change to submit.

The dive into DDMD will be the occasion to trim down the changes that could be controversial (for ex. Type::equivs which is horrible and unfortunately I didn't realise it until too late, it was already everywhere) and create at least a few PRs for bugfixes and improvements not Calypso-specific that I didn't take the time to submit to upstream before, e.g template argument deduction improvements (which iirc is ~400 lines of code). It shall happen after the first MSVC release so probably some time in October.

timotheecour commented 6 years ago

As of 3ec67bcb465c87a83c3e4a8cffd6846630a2a678 the DDMD jump was done