On 5/11/22 11:54 AM, templatedperson wrote:
On Wednesday, 11 May 2022 at 15:31:02 UTC, Steven Schveighoffer wrote:
I just spent a couple hours making a library AA solution that is
binary compatible with druntime's builtin AA.
The benefits:
1. Proves that a library implementation is possible, also shows where
shortcomings are.
2. Usable at compile time to make an AA that can be used at runtime.
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.
This is great!
Thanks!
2. Look at alternatives to GC for allocation/deallocation.
Maybe add `@nogc` overloads that take `std.experimental.allocator`s?
That could be the best way to accomplish this.
Technically, we don't need attributes, if the allocator doesn't use the
GC, it will infer @nogc.
Adding an allocator template parameter is a definite plan. However, once
you go outside the standard AA implementation, you can no longer be
binary compatible.
But the overall goal is to provide a base for future improvement (both
in the language and as an alternative to AAs), so please, if you have
more ideas, file some github issues!
-Steve