On Wed, May 27, 2009 at 9:32 PM, Frits van Bommel <[email protected]> wrote: > Robert Clipsham wrote: >> >> Andrei Alexandrescu wrote: >>> >>> Great! Quick question - are you supporting or considering supporting D2? >>> I looked on the project's home page and couldn't find that information. >>> There's mention of druntime for D2 which makes me hopeful. >>> >>> Thanks, >>> >>> Andrei >> >> D2 support in LDC has been started, but it does not have any of D2's >> features implemented. I believe all that has been done is the frontend >> added. Last time I checked ldc + d2 would not compile. >> >> I believe that the plan is to make D1 solid (more so than DMD), before >> moving on to D2. One of the developers might be able to give a more accurate >> status. > > That's pretty accurate, actually. > > A while back somebody sent in a patch to get D2 support working, but by the > time it got properly reviewed it was already outdated... > > The main problem on this front is that nobody currently working on LDC is > particularly interested in D2. >
The way the frontend is developed is also a factor. Right now we have two frontend source dirs. One for D1 and one for D2. Every time a new DMD release is out, this means: cleaning out the files we don't need (or can't use) in LDC, merging the changes into LDC, repeating for D2. But merging isn't always trivial. Since we have quite a lot of changes and conflicts are common. Also often LDC bugreports are frontend related, and both D1 and D2 need identical fixes applied, this is often forgotten. So, for now we're focusing on D1 and unfortunately D2 has fallen behind to a point where it's just plain broken. I would like to see more improvements to the way the DMD frontend is developed - regarding other users than the DMD compiler - before picking up D2 again. More specifically: * Seperation of frontend and backend needs to be more clear. The file structure is one thing, but it would be nice if the DMD backend specific parts in the frontend code could be versioned out for DMD. A simple ` #if IN_DMD ' would be a big improvement. * put the code under version control, that could simplify pulling fixes into our tree. I was going to put a few more entries on this list, but I could probably provide some patches there instead of just asking for things to happen .. But the main point is, D1 support is more than enough work already, however these two simple improvements would be a big help, and will benefit others who wish to use the frontend in the future as well. -Tomas
