On Tuesday, 12 August 2014 at 00:47:20 UTC, ketmar via Digitalmars-d wrote:
On Tue, 12 Aug 2014 00:18:26 +0000
Meta via Digitalmars-d <[email protected]> wrote:

What about modifying is(typeof(...)) to return false for deprecated symbols?
btw, we can add 'date' arg do deprecated(), so compiler will spit warnings before that date and rejects deprecated code after this date.

this gives us another fine thing: forgotten deprecations, which was sheduled but their shedule date missed, will immediately break unfixed
code.

i'm pretty sure that such enhancement was proposed before and rejected
for good reasons, but i cannot into search (as always).

Release numbers might make sense (at least for the standard library; it wouldn't for normal code, since it wouldn't be tied to compiler releases), but dates don't make any sense at all when you consider maintenance. If I'm writing a program today, and it compiles with dmd 2.065, and I have to come back and work on it two years from now, it should still compile exactly the same with 2.065. Sure, it may not compile with the current compiler at the time, but builds can't suddenly start failing because of a date change. In production environments, it's freuently the case that specific compiler and library versions are used and not freuently updated, and those builds have to continue to work. So, compiler-enforced date-based deprecation doesn't make any sense.

But regardless of whether it would have made sense, Walter was adamantly opposed to pretty much anything which complicated the deprecated feature, so all proposals which were more complex than what we currently have were shot down. But for the most part, what we have is plenty. Making it so that deprecation messages were just informational rather than stopping compilation and making it possible to add user-defined informational messages to deprecated were huge steps forward as it was. While what we have isn't perfect, it does work most of the time. But deprecating stuff is always a messy business, so I suppose that it's not completely surprising that we're running into issues like this.

- Jonathan M Davis

Reply via email to