manual memory management

Jonathan M Davis jmdavisProg at gmx.com
Mon Jan 7 09:18:27 PST 2013


On Monday, January 07, 2013 17:55:35 Rob T wrote:
> On Monday, 7 January 2013 at 16:12:22 UTC, mist wrote:
> > How is D manual memory management any worse than plain C one?
> > Plenty of language features depend on GC but stuff that is left
> > can hardly be named "a lousy excuse". It lacks some convenience
> > and guidelines based on practical experience but it is already
> > as capable as some of wide-spread solutions for systems
> > programming (C). In fact I'd be much more afraid of runtime
> > issues when doing system stuff than GC ones.
> 
> I think the point being made was that built in language features
> should not be dependent on the need for a GC because it means
> that you cannot fully use the language without a GC present and
> active. We can perhaps excuse the std library, but certainly not
> the language itself, because the claim is made that D's GC is
> fully optional.

I don't think that any of the documentation or D's developers have ever 
claimed that you could use the full language without the GC. Quite the 
opposite in fact. There are a number of language features that require the GC 
- including AAs, array concatenation, and closures. You _can_ program in D 
without the GC, but you lose features, and there's no way around that. It may 
be the case that some features currently require the GC when they shouldn't, 
but there are definitely features that _must_ have the GC and _cannot_ be 
implemented otherwise (e.g. array concatenation and closures). So, if you want 
to ditch the GC completely, it comes at a cost, and AFAIK no one around here 
is saying otherwise. You _can_ do it though if you really want to.

In general however, the best approach if you want to minimize GC involvement 
is to generally use manual memory management and minimize your usage of 
features that require the GC rather than try and get rid of it entirely, 
because going the extra mile to remove its use completely generally just isn't 
worth it. Kith-Sa posted some good advice on this just the other day, and he's 
written a game engine in D:

http://forum.dlang.org/post/vbsajlgotanuhmmpnspf@forum.dlang.org

- Jonathan M Davis


More information about the Digitalmars-d mailing list