On Saturday, 9 June 2012 at 10:09:25 UTC, Matthias Walter wrote:
First, thank you for your answer. I've already made some tiny modifications in order to make BitArray work for my purposes:

https://github.com/xammy/phobos/commit/eb46d99217f2bf1e6d173964e2954248b08146d6

If you plan to create pull requests for your changes - please consider my changes as well. When do you expect to finish, I.e., create a pull request for phobos?

Curious... Almost all of the changes you proposed I've already added in my version, the toHash is the only one missing and I don't know if I can work that very well. The new version is going to include 'slice-like' features, which is mostly a couple extra numbers specifying the offset in bits from the beginning to the end; The problem with that is hashing would have a huge speed drop.

I'm adding an 'realign' function that handles those cases, but the downside is shared slices where you would want to make changes may or may not work. Caching the result would also be useful... Hmmm...

I don't suppose you have a toHash where I can enter the odd bits and then also bulk ones and have the hash return the same could you? I can see xor easily having this type of effect...

Anyways, here's some things I can do so far; Got a few improvements left to do, but not many. (const & immutable friendly of course :) )

--

const BitArray ba = BitArray([1,1,0,0,1]);
const BitArray slice = ba[1 .. ba.length];
BitArray m = slice.dup;
immutable BitArray im = slice.idup;

assert(slice == ba[1 .. ba.length]);
assert(slice == [1,0,0,1]);
assert(slice == m);
assert(slice == im);

assert(slice.isCompact);
writeln("GC not used");

Reply via email to