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

Jacob Carlborg doob at me.com
Wed Mar 10 06:34:33 PST 2010


On 3/9/10 23:57, 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.
>

I've always wonder why that is. I mean if I put an empty static 
constructor in two modules and they import each other I get a circular 
reference error. Usually when I use static constructors they don't 
depend on the order of each other. Can't this be fixed if the static 
constructors don't depend on each other?




More information about the Digitalmars-d mailing list