[Python-Dev] Some dull gc stats

Alex Martelli aleax@aleax.it
Fri, 5 Jul 2002 07:30:16 +0200

On Tuesday 02 July 2002 21:06, Tim Peters wrote:
> [martin@v.loewis.de]
> > I understand that it is not a requirement anymore that changes to
> > Python 2.2 are "pure bugfixes". Instead, people expect that Python 2.2
> > evolves and continues to grow new features, as long as they are
> > "strictly backwards compatible".
> Alex made a case here for "new features", but the Python Business Forum
> hasn't shown interest in that.

As a Python Business Forum member and board member, I think I can
state that if a (business) case is indeed made, the PBF interest is there.

> Like most businessfolk, I expect they'll
> ignore such issues until someone discovers that the lack of a new feature
> is putting them out of business <0.8 wink>.

I suspect instead that a businessperson clever enough to pick Python
rather than heavily-hyped Java or widely-popular Perl or PHP is most
likely to be an unusually clever businessperson, with some level of
perception of what programming productivity is worth and how to get it.

> > For any user-visible feature, it is normally debatable whether it is
> > "strictly backwards compatible", since it is, by nature, a change in
> > observable behaviour.
> >
> > This specific case is not in that category (i.e. has no
> > user-observable behaviour change), so I think it qualifies for 2.2 -
> > provided there is enough trust in its correctness.
> The "bugfix part" of these changes certainly had user-visible aspects, in
> that before it was possible for objects in older generations to get
> yanked back into younger generations.  This can affect when objects get
> collected, and so throw off over-tuned programs slinging gc.enable() and
> disable() "at exactly the best time(s)".

Performance change is not quite the same thing as behavior change.
I agree with Martin that, assuming a performance-oriented change is
'known' to be correct (no change in the inputs-to-outputs behavior
of programs), the criterion should be one of overall benefit rather han
one of Pareto optima.

> > I'm concerned that backporting more changes to Python 2.2 will become
> > difficult in that area, if the GC implementations vary significantly.
> Maintaining multiple branches is always a PITA.

Yes, but the degree of pain varies with the branches' separation.

> > Maybe this can be reconsidered when there actually is another change
> > to backport.
> Anyone who is so inclined is welcome to reconsider it non-stop <wink>.

I suspect we'll indeed reconsider it.  Whether we do something about
it after the reconsideration will depend on cost-benefit analysis...