On Wed, May 11, 2022 at 11:31:02AM -0400, Steven Schveighoffer via Digitalmars-d-announce wrote: > I just spent a couple hours making a library AA solution that is > binary compatible with druntime's builtin AA.
This is awesome! Don't have time to look at it in detail right now, but will definitely keep this in mind. > The benefits: > > 1. Proves that a library implementation is possible, also shows where > shortcomings are. What are the shortcomings that you found? > 2. Usable at compile time to make an AA that can be used at runtime. Awesome. > 3. Much more approachable code than the AA runtime, does not require > "faking" a typeinfo, dealing with typeinfo in general, or deal with > magic compiler hooks. This gives a good base to start experimenting > with. Awesome. > For the future: > > 1. Implement all the things that AAs can do (which are possible, some > are not). Which things are not possible to do? > 2. Look at alternatives to GC for allocation/deallocation. > 3. Possible use with betterC? [...] Just use malloc/free? Could have problems with dangling references to buckets, though, if somebody retains the pointer returned by `key in aa` expressions. Or use ref-counting of some sort. But hard to do this without changing binary compatibility. T -- "You know, maybe we don't *need* enemies." "Yeah, best friends are about all I can take." -- Calvin & Hobbes
