python-peps/pep-0200.txt

328 lines
11 KiB
Plaintext
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

PEP: 200
Title: Python 2.0 Release Schedule
Version: $Revision$
Owner: Jeremy Hylton <jeremy@beopen.com>
Python-Version: 2.0
Status: Incomplete
Introduction
This PEP describes the Python 2.0 release schedule, tracking the
status and ownership of the major new features, summarizes
discussions held in mailing list forums, and provides URLs for
further information, patches, and other outstanding issues. The
CVS revision history of this file contains the definitive
historical record.
Tentative Release Schedule
14-Aug-2000: All 2.0 PEPs finished / feature freeze
28-Aug-2000: 2.0 beta 1
29-Sep-2000: 2.0 final
Guidelines for submitting patches and making changes
Use good sense when committing changes. You should know what we
mean by good sense or we wouldn't have given you commit privileges
<0.5 wink>. Some specific examples of good sense include:
- Do whatever the dictator tells you.
- Discuss any controversial changes on python-dev first. If you
get a lot of +1 votes and no -1 votes, make the change. If you
get a some -1 votes, think twice; consider asking Guido what he
thinks.
- If the change is to code you contributed, it probably makes
sense for you to fix it.
- If the change affects code someone else wrote, it probably makes
sense to ask him or her first.
- You can use the SF Patch Manager to submit a patch and assign it
to someone for review.
Any significant new feature must be described in a PEP and
approved before it is checked in.
Any significant code addition, such as a new module or large
patch, must include test cases for the regression test and
documentation. A patch should not be checked in until the tests
and documentation are ready.
If you fix a bug, you should write a test case that would have
caught the bug.
If you commit a patch from the SF Patch Manager or fix a bug from
the Jitterbug database, be sure to reference the patch/bug number
in the CVS log message. Also be sure to change the status in the
patch manager or bug database (if you have access to the bug
database).
It is not acceptable for any checked in code to cause the
regression test to fail. If a checkin causes a failure, it must
be fixed within 24 hours or it will be backed out.
All contributed C code must be ANSI C. If possible check it with
two different compilers, e.g. gcc and MSVC.
All contributed Python code must follow Guido's Python style
guide. http://www.python.org/doc/essays/styleguide.html
It is understood that any code contributed will be released under
an Open Source license. Do not contribute code if it can't be
released this way.
Failing test cases need to get fixed
We need to resolve errors in the regression test suite quickly.
Changes should not be committed to the CVS tree unless the
regression test runs cleanly with the changes applied. If it
fails, there may be bugs lurking in the code. (There may be bugs
anyway, but that's another matter.) If the test cases are known
to fail, they serve no useful purpose.
test case platform date reported
--------- -------- -------------
test_fork1 Linux 26-Jul-2000
[no clue; there are probably two bugs here]
[19-Aug-200 tim
Charles Waldman whipped up a patch to give child processes a new
"global lock":
http://sourceforge.net/patch/?func=detailpatch&patch_id=101226&group_id=5470
While this doesn't appear to address the symptoms we *saw*, it
*does* so far appear to be fixing the failing cases anyway
]
Previously failing test cases
If you find a test bouncing between this section and the previous one,
the code it's testing is in trouble!
test case platform date reported
--------- -------- -------------
test_parser all 22-Aug-2000
test_posixpath all 22-Aug-2000
test_popen2 Win32 26-Jul-2000
[20-Aug-2000 tim
changed the popen2.py _test function to use the "more" cmd
when os.name == "nt". This makes test_popen2 pass under
Win98SE.
HOWEVER, the Win98 "more" invents a leading newline out
of thin air, and I'm not sure that the other Windows flavors
of "more" also do that.
So, somebody please try under other Windows flavors!
]
[still fails 15-Aug-2000 for me, on Win98 - tim
test test_popen2 crashed -- exceptions.AssertionError :
The problem is that the test uses "cat", but there is
no such thing under Windows (unless you install it).
So it's the test that's broken here, not (necessarily)
the code.
]
test_winreg Win32 26-Jul-2000
[works 15-Aug-2000 for me, on Win98 - tim]
test_mmap Win32 26-Jul-2000
[believe that was fixed by Mark H.]
[works 15-Aug-2000 for me, on Win98 - tim]
test_longexp Win98+? 15-Aug-2000
[fails in release build,
passes in release build under verbose mode but doesn't
look like it should pass,
passes in debug build,
passes in debug build under verbose mode and looks like
it should pass
]
[18-Aug-2000, tim: can't reproduce, and nobody else
saw it. I believe there *is* a subtle bug in
regrtest.py when using -v, and I'll pursue that,
but can't provoke anything wrong with test_longexp
anymore; eyeballing Fred's changes didn't turn up
a suspect either
19-Aug-2000, tim: the "subtle bug" in regrtest.py -v is
actually a feature: -v masks *some* kinds of failures,
since it doesn't compare test output with the canned
output; this is what makes it say "test passed" even
in some cases where the test fails without -v
]
test_winreg2 Win32 26-Jul-2000
[20-Aug-2000 tim - the test has been removed from the project]
[19-Aug-2000 tim
This test will never work on Win98, because it's looking for
a part of registry that doesn't exist under W98.
The module (winreg.py) and this test case will be removed
before 2.0 for other reasons, though.
]
[still fails 15-Aug-2000 for me, on Win98 - tim
test test_winreg2 failed -- Writing: 'Test Failed: testHives',
expected: 'HKEY_PERFORMANCE_DATA\012'
]
Open items -- Need to be resolved before 2.0b1 release
Add popen2 support for Linux -- assigned to /F
Get all patches out of Open.
Get all patches out of Accepted.
Fix bug 112558
https://sourceforge.net/bugs/?func=detailbug&bug_id=112558&group_id=5470
Fix all other bugs with priority 7 or higher
Review performance and frequency of garbage collection scans.
Decide on a license.
Windows: Look for registry info in HKCU before HKLM - Mark
Hammond.
Windows installer: If HKLM isn't writable, back off to HKCU (so
Python can be installed on NT & 2000 without admin privileges).
Windows installer: Install w9xpopen.exe only under Win95/98.
Windows ME: Don't know anything about it. Will the installer
even run? Does it need the w9xpopen hack?
Win98 Guido: popen is hanging on Guido, and even freezing the
whole machine. No clue yet.
Open items -- Need to be resolved before 2.0 final release
Improve code coverage of test suite.
Decide on a license.
Finish writing the PEPs for the features that went out with
2.0b1(! sad, but realistic -- we'll get better with practice).
Major effort to whittle the bug database down to size. I've (tim)
seen this before: if you can keep all the open bugs fitting on one
screen, people will generally keep it that way. But let it
slobber over a screen for a month, & it just goes to hell (no
"visible progress" indeed!).
Open items -- completed/fixed
[20-Aug-2000 tim - done]
Remove winreg.py and test_winreg2.py. Paul Prescod (the author)
now wants to make a registry API more like the MS .NET API. Unclear
whether that can be done in time for 2.0, but, regardless, if we
let winreg.py out the door we'll be stuck with it forever, and not
even Paul wants it anymore.
Accepted and completed
* "import as" - Thomas Wouters
Extend the 'import' and 'from ... import' mechanism to enable
importing a symbol as another name. (Without adding a new keyword.)
* List comprehensions - Skip Montanaro
Tim Peters still needs to do PEP.
* Restore old os.path.commonprefix behavior
Do we have test cases that work on all platforms?
* Tim O'Malley's cookie module with good license
* Lockstep iteration ("zip" function) - Barry Warsaw
* SRE - Fredrik Lundh
[at least I *think* it's done, as of 15-Aug-2000 - tim]
* Fix xrange printing behavior - Fred Drake
Remove the tp_print handler for the xrange type; it produced a
list display instead of 'xrange(...)'. The new code produces a
minimal call to xrange(), enclosed in (... * N) when N != 1.
This makes the repr() more human readable while making it do
what reprs are advertised as doing. It also makes the xrange
objects obvious when working in the interactive interpreter.
* Extended print statement - Barry Warsaw
PEP 214
http://python.sourceforge.net/peps/pep-0214.html
SF Patch #100970
http://sourceforge.net/patch/?func=detailpatch&patch_id=100970&group_id=5470
Accepted and in progress
* interface to poll system call - Andrew Kuchling
SF Patch 100852
* Compression of Unicode database - Fredrik Lundh
SF Patch 100899
* PyErr_Format - Fredrik Lundh
Make this function safe from buffer overflows.
* Support for opcode arguments > 2**16 - Charles Waldman
SF Patch 100893
* Range literals - Thomas Wouters
SF Patch 100902
* Augmented assignment - Thomas Wouters
Add += and family, plus Python and C hooks, and API functions.
* Change meaning of \x escapes - PEP 223 - Fredrik Lundh? Tim Peters?
* Add \U1234678 escapes in u"" strings - Fredrik Lundh?
* Integrated gettext module - Barry Warsaw
wrapper around standard internationalization libraries
Open: proposed but not accepted or rejected
* Extended slicing on lists - Michael Hudson
Make lists (and other builtin types) handle extended slices.
Postponed
* Eliminated SET_LINENO opcode - Vladimir Marangozov
Small optimization achieved by using the code object's lnotab
instead of the SET_LINENO instruction. Uses code rewriting
technique (that Guido's frowns on) to support debugger, which
uses SET_LINENO.
http://starship.python.net/~vlad/lineno/
for (working at the time) patches
Discussions on python-dev:
- http://www.python.org/pipermail/python-dev/2000-April/subject.html
Subject: "Why do we need Traceback Objects?"
- http://www.python.org/pipermail/python-dev/1999-August/002252.html
* test harness for C code - Trent Mick
Rejected
* 'indexing-for' - Thomas Wouters
Special syntax to give Python code access to the loop-counter in 'for'
loops. (Without adding a new keyword.)
Local Variables:
mode: indented-text
indent-tabs-mode: nil
End: