any tool to at least partially convert C++ to D (htod for source

Justin Johansson no at spam.com
Wed Mar 10 12:34:44 PST 2010


Thanks for your comments Walter.

Certainly I'm not on about berating D; I have quite an affection for D and high hopes
for the success of D as it matures over time.  It is, of course, important for you to
know what show-stoppers people are finding (which is why you asked).

Also, while I'm not currently actively developing with D, I still enjoy watching this channel,
especially some of the episodes featuring skits by retard, bearophile and other cool boffins**

http://en.wikipedia.org/wiki/Boffin  (**taking the complimentary meaning of the word).

If I had more time available I'd happily contribute in some concrete way (code/bug fixes etc)
to the common cause of D but alas that might have to wait for another lifetime.

> > #2 significant deterioration of D's GC under high working dataset volume.  The GC did
> > not seem to scale very well.  Since moving back to C++ I've implemented my own
> > memory management technique (note I said memory management not *automatic* GC).
> > One of the biggest reasons for using D in the first place (automatic GC) no longer held for me.
> > This topic also discussed much before on this NG.
> 
> It is possible to do your own memory management with D.

Agreed; but so is the case with C++, my point being that automatic GC (in D) is no longer
(for me) the number one reason to use D.

> There've been a lot of proposals for improved gc, but not really anyone 
> willing to step up and do the work. On the plus side, D's gc has proven 
> to be remarkably robust and reliable. It's a solid, if pedestrian, 
> implementation.

Actually I've solved the memory management problem in C++ to the degree that
suits my purposes.  I developed the idea quite independently of others (I did
this a few months ago when having decided to go back to C++).

Having developed the technique myself, thought that no doubt it must already have
a name.  After a bit of web searching I happened across the term "region based memory
management".  I don't have the references handy still, but believe it's used in Cyclone
and has been proposed for "real-time Java".

If I were to revert to D in the future, I would definitely have this in my D toolbox.

> I'm going to argue a bit with dmd not having optimization. It actually 
> does have a well developed and reliable data flow analysis driven 
> optimizer. It does register allocation based on live range analysis, and 
> it even has a sophisticated instruction scheduler in it. Where it's 
> deficient is in floating point code gen, but the rest is pretty good.

I won't argue the issue; probably I made some wrong assumptions /
interpretations re my D experience.

Regards
Justin Johansson





Walter Bright Wrote:

> Justin Johansson wrote:
> > The #1 show-stopper for me was lack of shared object (.so) support under Linux; virtually
> > mandated by my audience (Apache/LAMP).  (A workaround like FastCGI is simply not
> > appealing to customers.)  This topic discussed many times before on this NG.
> 
> I know this is a big problem and I know it's been discussed a lot, I 
> just wanted to be sure what was stopping you.
> 
> 
> > #2 significant deterioration of D's GC under high working dataset volume.  The GC did
> > not seem to scale very well.  Since moving back to C++ I've implemented my own
> > memory management technique (note I said memory management not *automatic* GC).
> > One of the biggest reasons for using D in the first place (automatic GC) no longer held for me.
> > This topic also discussed much before on this NG.
> 
> It is possible to do your own memory management with D.
> 
> There've been a lot of proposals for improved gc, but not really anyone 
> willing to step up and do the work. On the plus side, D's gc has proven 
> to be remarkably robust and reliable. It's a solid, if pedestrian, 
> implementation.
> 
> 
> > #3 problems with circular module references.  I forget some of the detail but think, if I
> > recall correctly, that it was to do with static class members so had to pull a lot of source
> > code into one big file .. then leading to problem #4
> 
> The circular module thing is usually a result of static constructors in 
> each of two modules that import each other. There are many solutions to 
> this, such as switching to lazy initialization, moving the 
> initializations to a 3rd module, having the initialization done by a 
> function called explicitly from main(), etc.
> 
> 
> > #4 The performance of the IDE that I was using (Descent under Eclipse) did not scale
> > very well with large source files.  Tried a few other development tools but found Descent
> > to be overall the best but, like I say, not adequate at scaling in a large project.
> > Sure this is not a D language problem per se but a practical issue that is still likely to
> > put some users off.
> 
> > #5 problems with circular references when dealing with a complex class template design
> 
> This has gotten a lot better in the last 3 months or so.
> 
> > #6 a general feeling of "gee, I never had any of these problems with C++" .. this comment
> > relating to the general immaturity (bugs-wise) of the D compiler compared with what's
> > available for C++ these days ..
> 
> In the last 10 years C++ compilers have gotten a lot better. Before 
> 2000, they all suffered from endless bugs.
> 
> > so I guess a comment about the outlandish size of executable
> > files produced by the D compiler
> 
> I have some ideas about improving the size, but the priority right now 
> is finalizing D2.
> 
> > and general immature (lack of) optimization of generated
> > code by D compiler is apt for this point as well.
> 
> I'm going to argue a bit with dmd not having optimization. It actually 
> does have a well developed and reliable data flow analysis driven 
> optimizer. It does register allocation based on live range analysis, and 
> it even has a sophisticated instruction scheduler in it. Where it's 
> deficient is in floating point code gen, but the rest is pretty good.




More information about the Digitalmars-d mailing list