[Python-Dev] Banishing apply(), buffer(), coerce(), and intern()

Raymond Hettinger python at rcn.com
Sun Nov 30 03:26:16 EST 2003


 [Anthony] 
> > Then let's kill all use of backticks in the standard library.
There's
> > a lot of them.

[Guido]
> As always, be careful with doing peephole changes to the standard
> library -- historically, we've seen a 1-5% error rate in these change
> sets that persists for months or years afterwards.

FWIW, Walter and I did a bunch of these for Py2.3 and had excellent
success because of a good process.  Some ideas are:

* start it now (don't wait until a beta release).

* skip the packages like email which are maintained separately

* think out ways it could go wrong (operator precedence, double
backticks, escaped backticks, backticks inside strings or comments,
etc.).

* do it manually (not brainlessly), then do it with automation to
compare the results.

* make sure every affected module still imports.

* run the whole unittest suite in debug mode with -u all.

* self-review the diff file.

* get a second person to do a 100% review of the diff (Walter or I would
be a good choice).

* put on an asbestos suit because the flames will come even if no
mistakes are made.

IMO, this change is much easier to get right than the ones that were
done before.


Good luck,


Raymond




More information about the Python-Dev mailing list