C++, D: Dinosaurs?
Tony
tonytech08 at gmail.com
Tue Nov 4 22:08:09 PST 2008
"Nick Sabalausky" <a at a.a> wrote in message
news:gep0ej$232$1 at digitalmars.com...
> "Tony" <tonytech08 at gmail.com> wrote in message
> news:geogvj$1p5r$2 at digitalmars.com...
>>
>> "Robert Fraser" <fraserofthenight at gmail.com> wrote in message
>> news:geo5p6$12gk$1 at digitalmars.com...
>>> Tony wrote:
>>>> (one HAS to use GC with D, right?)
>>>
>>> No. Well, the compiler generates calls to allocate & free memory, but
>>> you can replace those calls with whatever you want. See Tango's
>>> (druntime's) "stub" GC, which just reroutes compiler-generated calls to
>>> GC methods to malloc() and free(). You can implement your own "GC" or
>>> whatever management scheme you want (in fact, if you're writing, say, a
>>> device driver in D, you would want to use a custom allocator like this
>>> and not the built-in GC).
>>
>> Please clarify for me the mem mgmt of D: is the garbage collector
>> optional or not?
>
> Yes, it can be ripped out, replaced, whatever. It's slightly hacky, but
> it's perfectly doable. I did it a few years ago when I was playing around
> with using GDC with DevKitARM for GBA.
>
> IIRC, you just go into "extern (C) int main(size_t argc, char **argv)" in
> the internal portion of phobos/tango/druntime or wherever it lives now and
> comment-out the calls to "gc_init()" and "gc_term()". You might also need
> to call "gc.disable()" or something (don't really remember). And then if
> you still want to use "new" and/or "delete" with your own memory manager,
> you can use D's class allocator and deallocator feature
> (http://www.digitalmars.com/d/1.0/class.html#allocators). I assume you
> could probably plug those class allocators/deallocators directly into the
> internal object class if you wanted.
It sounds like a lot of work and new stuff to learn about the
implementation. Let's face it, I'm not going to use D since it doesn't offer
me anything over C++ that I want. The main thing I may like about D is that
it makes the effort to make implementation of the language easier, and that,
I think, is very key. I am here to look for features I would put in a new
language, though that may be too large of an endeavor for someone my age.
Tony
More information about the Digitalmars-d
mailing list