View mode: basic / threaded / horizontal-split · Log in · Help
October 01, 2005
Re: [D newbie - long] A lot of questions about D: Binary Modules, Metadata, Memory Management
Sean Kelly wrote:

> In article <dhi5v8$fl7$1@digitaldaemon.com>, Wolfgang Draxinger
> says...
>>
>>The memory management of my component system was designed with
>>a relocation GC in mind, but it can also work with raw memory
>>and offers an interface to smart memory handles, that operate
>>on a address range, separated from the raw heap.
>>
>>But thinking of how this could be put in D.
> [snip]
> 
> Frankly, I think it must be one way or the other in D.  I don't
> want to have to
> deal with pointers in some instances and handles in another. 
> That just seems
> like needless complexity for the most part.  And it would also
> be a tad odd to have classes referenced by handles but all
> other dynamic types referenced by
> pointers.    Using dynamic type info would allow a moving GC to
> work with
> pointers as easily as handles anyway.

Then you however loose interoperability with libraries not moving
GC safe. The only thing to prevent this is explicitly locking
the memory, which is however error prone, since one could forget
this. Such bugs are nasty to track down, because they're
difficult to reproduce: you can't predict, that the GC will do
the same move with every instance, or at different times of
execution.

> The sticking point for 
> me (as I've mentioned before) is that class references omit the
> pointer specifier, which I find completely misleading.  Even if
> we never had stack-based classes, it would be nice if the '*'
> were required for class references, assuming they are
> guaranteed to be pointers. 

That's an argueable point.

-- 
Wolfgang Draxinger
Next ›   Last »
1 2
Top | Discussion index | About this forum | D home