On Tuesday, 29 May 2012 at 06:30:37 UTC, Dmitry Olshansky wrote:
You surely haven't looked at the source code did you? :) It's conceptualy non per bit '-', it's a set difference...
I recall looking at it, but to me that just didn't make sense. I could add subtract back and update it (Not many changes needed to keep it).
Not at all. Once you established that it's not a pointer namely since every pointer to size_t is word aligned (unless constructed by hand).
You could use it's lowest bit as marker then. It's 0 state won't disturb pointer usual semantics, when it's set to 1 it's obviously.
I considered that, but then you actually limit your address space to 2^63, true that seems silly up until in the future when we use all 64bits for memory referencing and suddenly it's seg faulting for no understandable reason (Yes it's a long ways off, but this will long be forgotten about by that time). However referring to the internal offsets it only effects slices; and those are easy to fix.
This will likely take a little time to think over and get working, I'd hate to have to make alternate versions of everything.
I don't see BitArray as a good replacement for the C flags. However I already made (and suggested) a flags struct that accepts and uses enums for it's flags.
Cool. Eager to see that on the way to Phobos too.
We'll see, once I sorta figure this all out.