Proposal: Don't require users to use undefined

Michael Snoyman michael at snoyman.com
Wed Oct 27 03:15:34 EDT 2010


On Wed, Oct 27, 2010 at 9:01 AM, Bas van Dijk <v.dijk.bas at gmail.com> wrote:
> On Wed, Oct 27, 2010 at 7:57 AM, Michael Snoyman <michael at snoyman.com> wrote:
>> On Wed, Oct 27, 2010 at 7:51 AM, Bas van Dijk <v.dijk.bas at gmail.com> wrote:
>>> On Tue, Oct 26, 2010 at 9:09 PM, Henning Thielemann
>>> <lemming at henning-thielemann.de> wrote:
>>>
>>>> 4. In the future you may deprecate the immediate use of 'sizeOf' and
>>>> 'alignment'.
>>>
>>> We could deprecate sizeOf immediately in favor of sizeOfTagged.
>>> Deprecating it doesn't break any code but does gives warnings so that
>>> users are encouraged to upgrade. I don't see a reason to wait.
>>
>> We can't immediately switch to using sizeOfTagged since many people
>> will still be using old versions of base. If we waited one cycle to
>> deprecate the old functions, it won't annoy people. By the next cycle,
>> in theory a majority of people will already have sizeOfTagged, and it
>> would be feasible to switch our code to sizeOf.
>
> Yes, that's what I meant. We should {-# DEPRECATE #-} sizeOf now and
> provide sizeOfTagged as an alternative. In a further cycle we can
> remove sizeOf.
>

My point is that if you use DEPRECATE immediately, no one will be able
to compile with -Wall -Werror. No one can reasonably switch over to
sizeOfTagged until at least the next cycle, and by putting in a
deprecation immediately, we'll start generating warnings immediately
for writing code in the only reasonable way possible.

There is of course the possibility of conditional compilation, but I
like to avoid that whenever possible.

Michael


More information about the Libraries mailing list