Am 12.01.2011 03:10, schrieb Jonathan M Davis:
On Tuesday, January 11, 2011 17:17:43 Daniel Gibson wrote:
Am 12.01.2011 01:55, schrieb Jonathan M Davis:
On Tuesday, January 11, 2011 16:23:13 Daniel Gibson wrote:
Deprecating them is certainly a good idea, but I'd suggest to keep the
deprecated aliases around for longer (until D3), so anybody porting a
Phobos1-based application to D2/Phobos2 can use them, even if he doesn't
do this within the next few releases.
Well, leaving an alias until D3 would equate to a permanent alias in D2,
which is exactly what Walter and Andrei don't want (and I don't either).
There's already plenty in Phobos 2 that's different from Phobos 1. So,
while I don't think that we should rename stuff just to rename stuff, I
also don't think that we should keep aliases around just to make porting
D1 code easier - especially when most D1 code is probably using Tango
anyway. We don't really have a policy in place for how long deprecation
should last prior to outright removal, but until D3 is definitely too
long. I would have thought that the question would be more along the
lines of whether it should be a couple of releases or more like 6 months
to a year before removing deprecated functions and modules at this
point, not whether something will remain deprecated until D3.
- Jonathan M Davis
Somewhere in this thread:
Am 11.01.2011 21:43, schrieb Walter Bright:
> Nick Sabalausky wrote:
>> I agree with this reasoning for having them. However, I don't think it
>> means we shouldn't D-ify or Phobos-ify them, at least as far as
>> capitalization conventions.
>
> I also object to rather pointlessly annoying people wanting to move
> their code from D1 to D2 by renaming everything. Endlessly renaming
> things searching for the perfect name gives the illusion of progress,
> whereas time would be better spent on improving the documentation,
> unittests, performance, etc.
So his objection was specifically that renaming those functions could
annoy people migrating D1 code (and certainly he meant Phobos1 users,
because Tango-people either port (parts of) Tango or will have to
rewrite that anyway).
So, to accomplish that goal (not annoying those people), these aliases
should be kept for longer.
(An alternative may be to one/some phobos1-compat modules that contain
such aliases and maybe even wrappers with old signatures for new
functions, that could be imported to ease porting of old applications.
That would have the benefit of not cluttering the regular Phobos2
modules with that legacy stuff.)
Well, I didn't say that Walter wasn't concerned about it. I just don't see the
point. Phobos has changed enough from D1 to D2 that even D1 Phobos users (of
which I get the impression there are relatively few) that there's probably
already plenty of stuff which is going to break for anyone porting over. I do
think that keeping a deprecated alias around longer for a function which has
been around longer makes sense, and the Phobos 1 functions have been around
longer than anything else. So, deprecating a function that was added 2 releases
ago probably shouldn't require a deprecated alias for as long as deprecating a
function that was in Phobos 1 would, but there's still a limit to how long it
makes sense.
And given that your average D1 user uses Tango rather than Phobos, it makes that
much less sense to keep aliases to Phobos 1 functions around for a long time.
So, no, we shoudln't get rid of the deprecated alias for a Phobos 1 function
after only a release or two, but I don't think that it makes sense to keep it
around for a year or two either.
- Jonathan M Davis
Hmm maybe.
I guess there will be further similar discussions (e.g. the depreation
of std.stream once the successor is ready).
I think those aliases should at least be kept until all Phobos1 stuff
that is to be replaced is indeed replaced.
That'd allow a decision that is at least consistent for most Phobos1
stuff (some has already been removed/replaced, e.g. by the druntime
modules like core.thread).
Cheers,
- Daniel