On Mon, Jul 08, 2013 at 12:50:02PM +0200, Joseph Rushton Wakeling wrote: > On 07/08/2013 11:45 AM, eles wrote: > > Just me alone, I do not feel that I have enough time and competence > > to do that. But, what about to form a venture, the three of us? > > (JRW, HST and me, Iain already has a lot of job to do) > > > > The goal would be to D-ify the gdmd. > > > > I will learn some Perl in the process, but that's life... > > My main concern is about regularity of time/attention I can give. As > you can see from my contributions to Phobos, I tend to have brief > periods of furious activity and then long activity deserts -- which > are mostly to do with commitments elsewhere. > > Anyway, I'll happily give it a go if the two of you are up for it, and > understand that at certain points I may just vanish for a while, at > least contribution-wise :-) > > I figure it's something we can all learn something by doing and once > this is started we might be able to get others in as well. [...]
I forked GDMD on github and took a first stab at D-ifying it: https://github.com/quickfur/GDMD/tree/dport The new code is in gdmd.d -- I haven't updated the Makefile to build it yet, so you'll have to compile it by hand. It can do very simple compiles now (list of .d files -> executable), including compile itself. :) It can read dmd.conf and setup environment variables accordingly, though I haven't actually tested whether it's really doing what I think it's doing. (Anybody up for writing unittests? ;-)) However, NO command-line options are parsed right now, so it can't handle anything beyond just a list of .d files. I also haven't tested anything on Windows in spite of the version(Windows) blocks; so I've no idea if that code actually works. But it's a start. :) I decided to write idiomatic D instead of a 1-to-1 translation of the Perl version, so I took some liberties in the program structure. But I do use the Perl version as the go-to reference at each point, so it *should* in theory be identical in functionality at the end. Comments / flames / pull requests welcome. ;-) T -- Tell me and I forget. Teach me and I remember. Involve me and I understand. -- Benjamin Franklin