dsimcha wrote:
However, after thinking about it, I doubt D will go the route of moving/more
precise GC. I know I've advocated it in the past, but I've realized that false
pointers aren't generally that big a deal if you delete a few huge (>1MB)
objects
manually. Furthermore, I think it's necessary in a systems programming language
to be able to allocate a big chunk of untyped memory. Technically, this could
still be done with a moving GC by using the C heap, but it would make things
really, really complicated.
You'd have to do more bookkeeping:
- this memory is referenced by something that I know is a pointer
- this memory is referenced by something that might be a pointer (or
some random bit pattern)
- this memory is not referenced
This isn't unreasonable, and it really just depends on how complete and
how fast D's runtime reflection is.