symmetryinvestments / autowrap

Wrap existing D code for use in Python, Excel, C#
BSD 3-Clause "New" or "Revised" License
80 stars 16 forks source link

Add support for Delphi #249

Open andre2007 opened 4 years ago

andre2007 commented 4 years ago

For Delphi a free* community version exists, allowing to create gui application for Windows, MacOS, iOS and Android with only one code line. Delphi has also support for the various stores of the operating systems.

Beeing able to click together a multi operation system gui on Delphi and directly calling D classes / functions has a huge potential for the D community.

Actually I tried to implement an "autowrap" just for Delphi myself but due to time constraints it is almost impossible.

Maybe support for Delphi could be added as gsoc/autumn of code project to autowrap?

atilaneves commented 4 years ago

I don't even know Delphi, so only someone who does could do this. In any case I plan to write an alternative to autowrap from the ground up that'll make it easier to add new languages, and any Delphi wrapper should go there.

andre2007 commented 4 years ago

Thanks, that sounds quite promising. As an idea, could you please consider a way to call Delphi classes from the D shared object? Delphi has a huge grown eco system with functionality for almost everything. What is also interesting, Delphi has the most sophisticated RTTI I know (for a compiled language). If you know the Delphi class name at runtime, you can do everything. This might become very handy here.

What makes it difficult to implement Delphi into the successor of autowrap, is the fact that circular references needs to be solved (avoided) by the developer. You can solve some issues with forward declarations...

Laeeth commented 4 years ago

Would be nice to have and I thought of it myself at one point. But we don't ourselves use Delphi at Symmetry and I don't think Atila does. We are quite a small firm with many fewer developers than you might think and have our hands full with more immediate needs. So the best way to advance this goal would be to make a small beginning yourself and then try to get others interested.

andre2007 commented 4 years ago

At the moment I am only able to work on mini projects in my spare time, like solving small dub issues / adding small features. While I am highly interested in this feature and would like to work myself on it, it is currently unfortunately not possible. I created a dlang/project (see github reference link above) and hope maybe a SAoC student can work on this.