Arbitrary abbreviations in phobos considered ridiculous

Nick Sabalausky a at a.a
Sun Mar 11 00:57:06 PST 2012


"Daniel Murphy" <yebblies at nospamgmail.com> wrote in message 
news:jjhcj8$25sv$1 at digitalmars.com...
> "Nick Sabalausky" <a at a.a> wrote in message 
> news:jjh9uh$1vto$1 at digitalmars.com...
>>
>> My understanding is that the *only* thing preventing vitrual template 
>> functions is the possibility of pre-compiled closed-source static libs. 
>> Which is why I've long been in favor of allowing vitrual template 
>> functions *as long as* there's no closed-source static libs preventing 
>> it. Why should OSS have to pay costs that only apply to closed source?
>>
>
> That's not really it...
>
> The problem is that vtables contain every virtual function of a class - 
> and if you instantiate a template function with a new type, it would 
> require a new vtable entry.  Therefore you need to know how every template 
> function in every derived class is instantiated before you can build the 
> base class vtable.  This doesn't work with D's compilation model.
>

Right, but when I tell something like rdmd to pass all my files into DMD, 
then DMD *does* have all the information needed. I understand that it can't 
be done in *all* build setups, but it would seem to be possible in many 
build setups, so why should *all* projects suffer when really only *some* 
projects have to have that limitation? That's what I've never understood.

>>
>> Now, as for whether or not D actually *does* omit the vtable entry for 
>> non-override finals, I wouldn't know. Although I seem to vaguely remember 
>> doing optimizations once that seemed to imply it did. If that's so, I 
>> don't know whether its guaranteed per D spec or just 
>> implementation-defined. A UFCS approach would definitely be guaranteed 
>> not to affect the vtable, of course.
>>
>
> D (dmd) does not create a vtable entry for final functions that don't 
> override anything.  It's in the frontend, so it should be the same for all 
> the d compilers.

I see. Thanks.




More information about the Digitalmars-d mailing list