Replacing AA's in druntime

Steven Schveighoffer schveiguy at yahoo.com
Thu Mar 15 03:48:46 PDT 2012


On Wed, 14 Mar 2012 19:20:43 -0400, Jakob Bornecrantz  
<wallbraker at gmail.com> wrote:

> On Wednesday, 14 March 2012 at 14:02:30 UTC, Steven Schveighoffer wrote:
>>
>> This is unavoidable, whether it's a template or not.  What changes do  
>> you envision would be transparent using an opaque pImpl model (as was  
>> done in previous versions of phobos), but would break using templates?
>
> struct AAver1(K, V)
> {
>     K[] tbl; V[] tlb2; uint size;
> }
>
> struct AAver2(K, V)
> {
>     K[] tbl; V[] tbl2; V[] optimizationTbl;
> }
>
> Would break if a AAver1 table was ever passed to code that
> was compiled against a AAver2 table. In sort you could never
> add anything to the AA struct. Without going in roundabout
> ways of making sure you never access outside of any struct
> version ever out there.
>
> Or for that matter change how the internal tables are
> populated by add and remove.

So you are expecting druntime to be a .so/dll then.  When that happens, we  
can worry about this.  But right now, each dll gets it's own copy of  
druntime, so there still is no compatibility.

-Steve


More information about the Digitalmars-d mailing list