Replacing AA's in druntime

Jakob Bornecrantz wallbraker at gmail.com
Wed Mar 14 15:44:39 PDT 2012


On Wednesday, 14 March 2012 at 09:07:40 UTC, Dmitry Olshansky 
wrote:
> On 14.03.2012 6:39, Jakob Bornecrantz wrote:
>> On Wednesday, 14 March 2012 at 00:52:32 UTC, H. S. Teoh wrote:
>>> Hi all,
>>>
>>> My AA implementation is slowly inching closer to being ready 
>>> to
>>> replace aaA.d. So far I've been writing the implementation
>>> outside of object_.d for ease of testing & development; now 
>>> I'm
>>> ready to start moving stuff into object_.d to start working on
>>> integration with druntime.
>>
>> Hi,
>>
>> If I'm understanding this correctly you are moving the entire
>> implementation of the AA into object.d and as such letting
>> programs be purview to its inner working? In sort meaning you
>> are making the entire AA implementation D ABI locked.
>>
>> This will make it impossible to either change the AA
>> implementation in any ABI breaking fashion or make it 
>> impossible
>> to pass AA's between libraries compiled against different
>> versions of druntime.
>
> I will just point out that the major point of ABI is to make 
> sure different D compiler produce compatible object code. Thus 
> it makes AA implementation locked already anyway, right?

Not true, as Steven said a opaque pImpl implementation would
work, most modern C library design follow this principle with
only using opaque except for pointers. This is because the ABI
will then only require you call a certain set of functions (that
can be extended to) not what that pointers points to, the
details can be completely hidden.

Cheers, Jakob.


More information about the Digitalmars-d mailing list