Associative Arrays in the data segment

Daniel Kozak via Digitalmars-d digitalmars-d at puremagic.com
Fri Apr 10 01:15:39 PDT 2015


On Friday, 10 April 2015 at 07:54:44 UTC, Daniel Murphy wrote:
> One long-standing issue with AAs has been that you can't 
> generate constant ones at compile time and access them at 
> run-time.  Workarounds are available, like initializing them in 
> static this or using horribly inefficient enum AAs.
>
> I've opened 
> https://github.com/D-Programming-Language/dmd/pull/4571 which 
> allows code like this:
>
> immutable int[int] aa = [1 : 7, 3 : 2];
>
> void main()
> {
>    assert(aa[1] == 7);
>    assert(aa[3] == 2);
> }
>
> It only works with integral types of at most 32-bits at the 
> moment, but most built-in types are fairly easy to support.  
> The downside is requires re-implementing druntime's AA and 
> hashing algorithms in the compiler, and keeping them in sync 
> when either changes.
>
> I think it's worthwhile, even if only integral and string keys 
> are supported for now.  That would cover 99% of my AA use.
>
> Is anybody else interested in seeing this in the next release?

this would be awesome


More information about the Digitalmars-d mailing list