std.allocator: false pointers

safety0ff via Digitalmars-d digitalmars-d at puremagic.com
Sat May 3 16:41:01 PDT 2014


On Friday, 2 May 2014 at 17:15:20 UTC, Orvid King via 
Digitalmars-d wrote:
> Well, in a 64-bit address space, the false pointer issue is 
> almost
> mute, the issue comes in when you try to apply this design to 
> 32-bit,
> where the false pointer issue is more prevelent. Is the volume 
> of
> memory saved by this really worth it?

False pointers don't only cause memory consumption, you're 
forgetting that the GC will repeatedly scan memory held by false 
pointers at each collection*. This adds time to each collection 
and further increases the risk of other false pointers.

False pointers can make many reasonable looking D programs behave 
unexpectedly when run in a 32-bit environment (to the point that 
I consider that they can "break" programs.)

I think false pointers must be addressed to make claims that D is 
well-behaved on 32-bit systems.

* Unless it is marked NO_SCAN of course, but this is not likely 
the common case.


More information about the Digitalmars-d mailing list