dmd support for IDEs

Denis Koroskin 2korden at gmail.com
Sun Oct 11 07:32:32 PDT 2009


On Sun, 11 Oct 2009 05:19:56 +0400, Walter Bright  
<newshound1 at digitalmars.com> wrote:

> In my discussions with companies about adopting D, the major barrier  
> that comes up over and over isn't Tango vs Phobos, dmd being GPL,  
> debugger support, libraries, bugs, etc., although those are important.
>
> It's the IDE.
>
> They say that the productivity gains of D's improvements are  
> overbalanced by the loss of productivity by moving away from an IDE. And  
> what is it about an IDE that is so productive? Intellisense (Microsoft's  
> word for autocompletion).
>
> So, while I'm not going to be writing an IDE, I figure that dmd can  
> help. dmd already puts out .doc and .di files. How about putting out an  
> xml file giving all the information needed for an IDE to implement  
> autocompletion? There'd be one .xml file generated per .d source file.
>
> The nice thing about an xml file is while D is relatively easy to parse,  
> xml is trivial. Furthermore, an xml format would be fairly robust in the  
> face of changes to D syntax.
>
> What do you think?

I believe it won't work. It will always be slow and incomplete.

Instead, I would make it easier to embed DMD into an IDE: separate DMDFE  
 from DMDBE, fix memory leaks, remove all the static data (so that code  
would be re-intrable and it could work in different threads in parallel),  
move most of DMD code into a DLL so that an IDE could dynamically link  
with it and whatever it pleases with the source code.

In fact, that's what I do right now.

I'm writing my own D IDE in my spare time (in D, of course). I already  
made a lot of progress and now it's time to start implementing source code  
analysis.

First thing I did is I made complete D bindings for C++ code. It worked  
out quite well but it was leaking so badly that I dropped it.

Instead, I started porting DMD entirely to D (except the backend, of  
course), and I already got some great results. A few simple programs  
compile and produce byte-perfect binaries. It's still in its early stages  
and there is a lot of work to do, but it will be finished soon  
(hopefully). It could probably become a part of an official distribution,  
eventually. :)

If anyone is interested and is willing to test and/or help, I will gladly  
share my code.



More information about the Digitalmars-d mailing list