[Python-Dev] Gathering Python 2.1 goals and non-goals

Guido van Rossum guido@python.org
Fri, 03 Nov 2000 18:01:27 -0500

Moshe and Andrew (the impatient youth :-) have asked what's on our
plate for Python 2.1.


The current plan for the 2.1 release is in PEP 226:


According to that PEP, the tentative schedule is:

    16-Dec-2000: 2.1 PEPs ready for review
    01-Feb-2001: First 2.1 beta release
    16-Mar-2001: 2.1 final release

But the PEP doesn't really say much about which PEPs we're going to
work on.

Overview of the PEPs

In my recent reworking of PEP 0 (the PEP index) I created a category
of Active PEPs -- these are PEPs that I definitely want to consider in
Python 2.1:

 I    42  pep-0042.txt  Small Feature Requests                 Hylton
 S   207  pep-0207.txt  Rich Comparisons                       Ascher
 S   208  pep-0208.txt  Reworking the Coercion Model           Ascher
 S   217  pep-0217.txt  Display Hook for Interactive Use       Zadka
 S   222  pep-0222.txt  Web Library Enhancements               Kuchling
 I   226  pep-0226.txt  Python 2.1 Release Schedule            Hylton
 S   227  pep-0227.txt  Statically Nested Scopes               Hylton

Note that I said *consider*: I'm sure that not all feature requests
from PEP 42 (a grab-bag of stuff that may or may not be feasible to
implement) will be implemented, and I'm not sure that all the other
PEPs on the list will be (especially nested scopes still seems iffy).

Two of these (207, 208) haven't been written yet -- but I know roughly
what they will contain, so they are included in this list, and not in
the lists of vaporware PEPs later in PEP 0 (Incomplete and Empty
PEPs).  These may be reconsidered for Python 2.1 if their authors care
to follow the PEP guidelines.

There are a bunch of other PEPs that I moved to the Pie-in-the-sky
category -- these are form-complete PEPs, but they are controversial
(e.g. there are two competing matrix op PEPs); some others I think are
not important; for yet others I think it's unrealistic to expect them
to be implemented by Python 2.1.  (There are also other things I'd
like to do that fit in the pie-in-the-sky category, like breaking up
the interpreter in several replaceable pieces.)

Other issues to work on

These aren't PEPs yet, but I think they need to become PEPs soon --
I'd like to see work on them go into Python 2.1:

- The buffer interface needs a revamping or simplification; this was
  discussed here previously.

- A warning framework.  I've got some ideas already.

- Integer division.  If we want to play by Paul Prescod's Language
  Evolution rules (PEP 5), we better get started on the first stage.
  E.g. we could introduce a // operator in 2.1 for integer division,
  and issue a warning when / is used for integers.  Then a year later
  (i.e., March 2002!) we could change / so that it returns a floating
  point number.

- Case sensitivity???

- Class/type dichotomy???

- Weak references.  This *is* a PEP, but there's no contents yet.  We
  could also try to implement (just) weak dictionaries.

- Internationalization.  Barry knows what he wants here; I bet Martin
  von Loewis and Marc-Andre Lemburg have ideas too.

- Arbitrart attributes on functions?  This would be a generalization
  of docstrings; with the intent that you don't have to put semantics
  in docstrings (like SPARK and Zope).  Issue: what syntax to choose?
  This could possibly lead to implementing private, protected, public
  attributes too.

- Whatever you want to work on.  If you have an idea for a PEP that
  you think should be implemented in Python 2.1, or if you want to
  revive a PEP that's currently listed in one of the "unattainable"
  categories, now's the time to make a plea!

--Guido van Rossum (home page: http://www.python.org/~guido/)