Deprecation Policy and new GC
Moritz Lenz
moritz at faui2k3.org
Tue Feb 15 15:53:58 UTC 2011
Am 15.02.2011 03:54, schrieb Andrew Whitworth:
> It's not exactly a secret that I don't like our deprecation policy.
> Recently I think we've come to a point where it is far more
> detrimental to our status and progress than it is a benefit.
As a Rakudo developer, I have to agree.
We don't really use the deprecation announcements to migrate away from
deprecated parrot features before the change is actually implemented.
There are a couple of reasons for that:
- some features don't have viable replacements at the time of the
deprecation announcements
- it's not fun, and we are all volunteers
- it takes a lot of work/time
- some deprecations take quite long to carry out, so why bother with
them now when we can hack on cool stuff instead?
- sometimes we simply forget
The deprecation policy does have some value, in that we can yell at the
one who breaks stuff and don't get a bad conscience over the yelling.
And also sometimes the deprecation notice tells us what to do to fix stuff.
But I think both benefits could be achieved with a less drastic
deprecation policy too.
Sometimes we HLL developers are annoyed about how much parrot changes
(though we do recognize the need for change). I just want to point that
the deprecation policy doesn't itself reduce the amount of change we
have to do, just the timing is different.
> So this brings us to the topic of the deprecation policy. The new GC
> creates an interface change by requiring the use of new write barriers
> on certain operations. According to the deprecation policy we would
> need to put in a notice now and wait 2 months until after the 3.3
> release before we could merge it. Then, since our users are supposed
> to be targetting our supported releases only, they wouldn't have a
> "supported" release with this new system in place until 3.6, 5 months
> from now.
>
> I find this unacceptable. Considering how important GC is, and how big
> a problem it is for us, I think it's unacceptable to simultaneously
> tell our users that we have a solution ready but they can't have it
> for almost half a year. And in that time we won't be getting valuable
> usage information, benchmarks, or feedback. We wont be able to
> effectively tune or optimize the system if people aren't regularly
> using it. If we don't have this in place by the 3.3 release at the
> latest, I think we are making a huge mistake.
Agreed. I want my 25%+ faster sooner than later.
> I find this situation to be extremely frustrating. I sincerely hope we
> can start a concerted discussion about this topic and find a
> resolution that is going to be acceptable to our developers and our
> users.
As a user, I quite like bacek's suggestion from IRC: instead of
deprecating a feature, change it right away, but also provide patches
for the users. (This can coexist with the current deprecation policy, ie
a feature can either be slowly deprecated, or be changed fast with in
conjunction with HLL patches).
I know that this scheme doesn't scale to too many users, and it doesn't
work for closed source parrot-based projects, but I'm not aware that
either of those should be a problem right now.
Of course this implies that we have some kind of submission process
where a HLL developer can say "I have written language $x, and if you
change parrot and bypass the deprecation policy, please conduct
@these_steps to test my HLL", and then have access to a list of these
submissions.
Just my 2 cents (and not speaking for all Rakudo developers),
Moritz
More information about the parrot-dev
mailing list