Broken?

Manu turkeyman at gmail.com
Wed Mar 12 04:40:25 PDT 2014


On 12 March 2014 20:40, monarch_dodra <monarchdodra at gmail.com> wrote:

> On Wednesday, 12 March 2014 at 03:05:00 UTC, Manu wrote:
>
>> I'm really trying to keep my lid on here...
>>
>> I'll just remind that in regard to this particular point which sounds
>> reasonable, it's easy to forgot that *all library code where the author
>> didn't care* is now unusable by anybody who does. The converse would not
>> be
>> true if the situation was reversed.
>>
>> virtual-by-default is incompatible with optimisation, and it's reliable to
>> assume that anybody who doesn't explicitly care about this will stick with
>> the default, which means many potentially useful libraries may be
>> eliminated for use by many customers.
>> Also, as discussed at length, revoking virtual from a function is a
>> breaking change, adding virtual is not. Which means that, instead of
>> making
>> a controlled breaking change with a clear migration path here and now, we
>> are committing every single instance of any user's intent to 'optimise'
>> their libraries (by finalising unnecessarily virtuals) to breaking changes
>> in their ABI - which *will* occur, since virtual is the default.
>> According to semantic versioning, this requires bumping the major version
>> number... that's horrible!
>>
>> What's better; implementing a controlled deprecation path now, or leaving
>> it up to any project that ever uses the 'class' keyword to eventually
>> confront breaking changes in their API when they encounter a performance
>> oriented customer?
>>
>
> Case in point:
> https://github.com/D-Programming-Language/phobos/pull/1771
> "mark std.zip classes as final"
>
> Long story short: MartinNowak decided to make the Zip classes final, since
> it made no sense to have any of the functions virtual, or to have anybody
> derive from them anyways.
>
> https://github.com/D-Programming-Language/phobos/pull/1771#issuecomment-
> 36524041
> Comment from Dav1dde:
> "Just to let you know, it broke my code"
>

Thank you.
There you go, it's not even hypothetical.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puremagic.com/pipermail/digitalmars-d/attachments/20140312/9751c1eb/attachment.html>


More information about the Digitalmars-d mailing list