[dmd-internals] AssociativeArray in druntime should go before the next release
Martin Nowak
dawg at dawgfoto.de
Fri Feb 3 13:32:08 PST 2012
On Fri, 03 Feb 2012 20:11:18 +0100, Steve Schveighoffer
<schveiguy at yahoo.com> wrote:
>> ________________________________
>> From: Daniel Murphy <yebblies at gmail.com>
>> On Sat, Feb 4, 2012 at 2:31 AM, Steve Schveighoffer
>> <schveiguy at yahoo.com> wrote:
>>> 2. This conversion: [a:b, c:d] --> AALiteral([a, c], [b, d]) should
>>> *NOT* use the heap for the two array literals. I'm not sure how you
>>> can declare AALiteral such that this doesn't happen, but this needs to
>>> be solved.
>>>
>>
>> It's not about how AALiteral is declared, it's how the compiler calls
>> it. For a lot of druntime calls it currently does something along the
>> lines of:
>> Key[dim] keys;
>> ... store the keys ...
>> Value[dim] values;
>> ... store the values ...
>> aa = AAliteral(key, value);
>>
>> We'll need to define an interface, but that's just the point - the
>> current half-language/half-runtime solution doesn't have this.
>
> Right, the point I was bringing is that if the new method is to do a
> simple lowering using the above translation, today that means heap
> allocations. If that means we need to invent some new syntax, I'm all
> for it, or if it means the compiler needs to do a translation more like
> what you said than a simple expression change, then so be it.
> I just don't want to move from the current method to something that
> unnecessarily heap-allocates, we already have enough of that.
>
> -Steve
What is allocating?
Are you referring to this
http://d.puremagic.com/issues/show_bug.cgi?id=2356?
More information about the dmd-internals
mailing list