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.
For the entire time that I've been a Parrot developer, GC has been flagged as one of the primary causes of criticism of Parrot. This is precisely how I got involved in the project in the first place: Taking on the GC as a GSoC project. That project failed in that it didn't produce a working replacement GC at the time. However, it did help set in motion several waves of fixes, changes, tunings, and optimizations that have brought us to where we are now. As bacek mentioned in another email, current GC is about 30% faster than it was when I first started in Parrot. Even with that improvement, the GC is *still* regularly identified as a major performance problem in Parrot. 30% later and it's still one of our biggest problems. Every time we open a forum for users to talk about problems Parrot has and make suggestions for improvements, the GC is listed at the top of the list. Now, we have a tool to finally start changing that. bacek has put together a fantastic new GC following a far superior algorithm. It's not perfect yet, it's not tuned and optimized, but algorithmically it's superior and there is room for improvement. Already, we're seeing numbers that our biggest user is seeing an average of 25% performance improvement over the current GC. Everybody knows that this is necessary, and the faster we get it in place, the better. 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. 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. --Andrew Whitworth _______________________________________________ http://lists.parrot.org/mailman/listinfo/parrot-dev
