Bitarrays in the age of 64bit

Dominikus Dittes Scherkl dominikus at scherkl.de
Sun Apr 5 10:46:18 UTC 2020


On Saturday, 4 April 2020 at 11:44:24 UTC, Basile B. wrote:
> Yes I already thought to that, using an addressing system 
> relative to the base address of a memory pool with a fixed size.
>
> At some point I considered this for a very wasteful Radix-tree 
> structure but never did.
>
> This would work with a kind of stdx.allocator-like static 
> interface but the problem is that the pointers types become 
> something like ubyte[1], ubyte[2], ubyte[3], etc. depending on 
> the pool max size. But the stdx alloc interface take void[] 
> (and works on void[].ptr).
No, I thought of a whole new type-system, where ALL pointers are 
bit-pointers, just the "standard" types now have to follow a 
byte-alignment (the address has to be divisable by 8 - like on 
68000er, where all multi-byte types had to have even addresses).

> So all the helpers (make, makeArray, etc) would not be usable 
> and finally you'd have to write a lot to make the things 
> usable, I mean in a generic way, with all D types.
Yes, there is a lot to change. I came up with this idea now, 
because there's a discussion about D3, and this is something I 
wish for a new language.



More information about the Digitalmars-d mailing list