[Python-checkins] r43656 - peps/trunk/pep-0000.txt peps/trunk/pep-3000.txt peps/trunk/pep-3099.txt peps/trunk/pep-3100.txt
georg.brandl
python-checkins at python.org
Wed Apr 5 09:17:24 CEST 2006
Author: georg.brandl
Date: Wed Apr 5 09:17:23 2006
New Revision: 43656
Added:
peps/trunk/pep-3100.txt
- copied, changed from r43576, peps/trunk/pep-3000.txt
Removed:
peps/trunk/pep-3000.txt
Modified:
peps/trunk/pep-0000.txt
peps/trunk/pep-3099.txt
Log:
Move PEP 3000 to PEP 3100.
Someone still has to write PEP 3000 ;)
Modified: peps/trunk/pep-0000.txt
==============================================================================
--- peps/trunk/pep-0000.txt (original)
+++ peps/trunk/pep-0000.txt Wed Apr 5 09:17:23 2006
@@ -62,7 +62,7 @@
I 333 Python Web Server Gateway Interface v1.0 Eby
I 339 Design of the CPython Compiler Cannon
I 356 Python 2.5 Release Schedule Norwitz, et al
- I 3000 Python 3.0 Plans Kuchling, Cannon
+ I 3100 Python 3.0 Plans Kuchling, Cannon
Accepted PEPs (accepted; may not be implemented yet)
@@ -415,8 +415,8 @@
S 358 The "bytes" Object Schemenauer
SR 666 Reject Foolish Indentation Creighton
S 754 IEEE 754 Floating Point Special Values Warnes
- I 3000 Python 3.0 Plans Kuchling, Cannon
I 3099 Things that will Not Change in Python 3000 Brandl
+ I 3100 Python 3.0 Plans Kuchling, Cannon
Key
Deleted: /peps/trunk/pep-3000.txt
==============================================================================
--- /peps/trunk/pep-3000.txt Wed Apr 5 09:17:23 2006
+++ (empty file)
@@ -1,306 +0,0 @@
-PEP: 3000
-Title: Python 3.0 Plans
-Version: $Revision$
-Last-Modified: $Date$
-Author: A.M. Kuchling <amk at amk.ca>,
- Brett Cannon <drifty at alum.berkeley.edu>
-Status: Draft
-Type: Informational
-Content-Type: text/x-rst
-Created: 20-Aug-2004
-Post-History:
-
-
-Abstract
-========
-
-This PEP describes the changes currently envisioned in Python 3.0
-(also called Python 3000), a hypothetical future release of Python that
-can break backwards compatibility with the existing body of Python code.
-
-The list of features included in this document is subject to change
-and isn't binding on the Python development community; features may be
-added, removed, and modified at any time. The purpose of this list is
-to focus our language development effort on changes that are steps to
-3.0, and to encourage people to invent ways to smooth the transition.
-
-This document is not a wish-list that anyone can extend. While there
-are two authors of this PEP, we're just supplying the text; the
-decisions for which changes are listed in this document are made by
-Guido van Rossum, who has chosen them as goals for Python 3.0.
-
-
-General goals
-=============
-
-A general goal is to reduce feature duplication by removing old ways
-of doing things. A general principle of the design will be that one
-obvious way of doing something is enough. [1]_
-
-
-Influencing PEPs
-================
-
-* PEP 238 (Changing the Division Operator) [#pep238]_
-* PEP 328 (Imports: Multi-Line and Absolute/Relative) [#pep328]_
-* PEP 343 (The "with" Statement) [#pep343]_
-* PEP 352 (Required Superclass for Exceptions) [#pep352]_
-
-
-Core language
-=============
-
-* True division becomes default behavior [10]_
-* ``exec`` as a statement is not worth it -- make it a function
-* Add optional declarations for static typing [11]_
-* Support only new-style classes; classic classes will be gone [1]_
-* OR... Make keys() etc. return "views" a la Java collections???
-* Replace ``print`` by a function [16]_
-* Do something so you can catch multiple exceptions using ``except E1,
- E2, E3:``. Maybe use ``except E1, E2, E3 as err:`` if you want the
- error variable? [3]_
-* ``None``, ``True`` and ``False`` become keywords [4]_
- (Or perhaps just ``None``?)
-* ``as`` becomes a keyword [5]_ (probably in 2.6 already)
-* Have list comprehensions be syntactic sugar for passing an
- equivalent generator expression to ``list()``; as a consequence the
- loop variable will no longer be exposed [12]_
-* Comparisons other than ``==`` and ``!=`` between disparate types
- will raise an exception unless explicitly supported by the type [6]_
-* Exceptions will grow an attribute to store the traceback [13]_
-* floats will not be acceptable as arguments in place of ints for operations
- where floats are inadvertantly accepted (PyArg_ParseTuple() i & l formats)
-* Imports will be absolute by default.
- Relative imports must be explicitly specified [19]_
-* __init__.py will be optional in sub-packages. __init__.py will still
- be required for top-level packages.
-* Cleanup the Py_InitModule() variants {,3,4} (also import and parser APIs)
-* Cleanup the APIs exported in pythonrun, etc.
-* Some expressions will require parentheses that didn't in 2.x:
-
- - List comprehensions will require parentheses around the iterables.
- This will make list comprehensions more similar to generator comprehensions.
- [x for x in 1, 2] will need to be: [x for x in (1, 2)]
- - Lambdas will have to be parenthesized [23]_
-
-* Builtin module init function names (PyMODINIT_FUNC) will be prefixed
- with _Py (or Py). Currently they aren't namespace safe since the names
- start with init.
-* __builtins__ should get a different name *or* completely unified
- with __builtin__. Keeping both with confusingly similar spellings
- and semantics is evil.
-
-To be removed:
-
-* String exceptions: use instances of an Exception class [2]_
-* ``raise Exception, "message"``: use ``raise Exception("message")`` [14]_
-* ```x```: use ``repr(x)`` [2]_
-* The ``<>`` operator: use ``!=`` instead [3]_
-* Unbound methods [7]_
-* METH_OLDARGS, WITH_CYCLE_GC
-* __getslice__, __setslice__, __delslice__ [17]_
-* Remove slice opcodes and use slice objects
-* C APIs (see code):
- PyFloat_AsString, PyFloat_AsReprString, PyFloat_AsStringEx,
- PySequence_In, PyEval_EvalFrame, PyEval_CallObject,
- _PyObject_Del, _PyObject_GC_Del, _PyObject_GC_Track, _PyObject_GC_UnTrack
- PyString_AsEncodedString, PyString_AsDecodedString
- PyArg_NoArgs, PyArg_GetInt, intargfunc, intintargfunc
-
-
-Atomic Types
-============
-
-* Remove distinction between int and long types [1]_
- (int may become an abstract base type, with short and long subtypes.)
-* Make all strings be Unicode, and have a separate bytes() type [1]_
-* Return iterators instead of lists where appropriate for atomic type methods
- (e.g. ``dict.keys()``, ``dict.values()``, ``dict.items()``, etc.); iter*
- methods will be removed
- OR make keys(), etc. return views ala Java collections???
-
-To be removed:
-
-* ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()``
- or ``basestring.rindex()`` in a try/except block [15]_
-* ``file.xreadlines()`` method [17]_
-* ``dict.setdefault()`` [22]_
-* ``dict.has_key()`` method
-
-
-Built-in Namespace
-==================
-
-* Make built-ins return an iterator where appropriate (e.g. ``range()``,
- ``zip()``, etc.)
-* Relevant functions should consume iterators (e.g. ``min()``,
- ``max()``)
-* Introduce ``trunc()``, which would call the ``__trunc__()`` method on its
- argument; suggested use is for objects like float where calling ``__int__()``
- has data loss, but an integral representation is still desired [8]_
-* Exception hierarchy changes [20]_
-
-To be removed:
-
-* ``apply()``: use ``f(*args, **kw)`` instead [2]_
-* ``buffer()``: must die (use a bytes() type instead) [2]_
-* ``callable()``: just call the object and catch the exception [2]_
-* ``compile()``: put in ``sys`` (or perhaps in a module of its own) [2]_
-* ``coerce()``: no longer needed [2]_
-* ``execfile()``, ``reload()``: use ``exec()`` [2]_
-* ``input()``: use ``eval(sys.stdin.readline())`` [2]_
-* ``intern()``, ``id()``: put in ``sys`` [2]_
-* ``map()``, ``filter()``: use list comprehensions instead [1]_, [9]_
-* ``reduce()``: write a loop instead [2]_, [9]_
-* ``raw_input()``: use ``sys.stdin.readline()`` [2]_
-* ``xrange()``: use ``range()`` instead [1]_
-
-
-Standard library
-================
-
-* Reorganize the standard library to not be as shallow
-* Move test code to where it belongs, there will be no more test() functions
- in the standard library
-
-To be removed:
-
-* Deprecated modules, methods, parameters, attributes, etc. [1]_ [17]_ [18]_
- There may be other modules, the most common are listed below.
-
- stdlib modules to be removed (see docstrings and comments in the source):
- * ``macfs``, ``new``, ``reconvert``, ``stringold``, ``xmllib``
- * ``pcre``, ``pypcre``, ``strop``
- stdlib modules to be removed (see PEP 4): [18]_
- * ``posixfile``, ``pre``, ``regsub``, ``rfc822``,
- * ``statcache``, ``string``, ``TERMIOS``
- * ``mimetools``, ``MimeWriter``, ``mimify``,
- * ``mpz``, ``rgbimage``
- * Everything in lib-old: [18]_
- * Para.py, addpack.py, cmp.py, cmpcache.py, codehack.py,
- * dircmp.py, dump.py, find.py, fmt.py, grep.py, lockfile.py,
- * newdir.py, ni.py, packmail.py, poly.py, rand.py, statcache.py,
- * tb.py, tzparse.py, util.py, whatsound.py, whrandom.py, zmod.py
-
-* ``sys.exitfunc``: use atexit module instead [17]_
-* ``sys.exc_type``, ``sys.exc_values``, ``sys.exc_traceback``:
- not thread-safe; use ``sys.exc_info()`` or an attribute
- of the exception [2]_ [13]_ [17]_
-* ``array.read``, ``array.write`` [17]_
-* ``operator.isCallable``, ``operator.sequenceIncludes`` [17]_
-* In the thread module, the aquire_lock() and release_lock() aliases
- for the acquire() and release() methods on lock objects.
- (Probably also just remove the thread module as a public API,
- in favor of always using threading.py.)
-
-Outstanding Issues
-==================
-
-* Require C99, so we can use // comments, named initializers, declare variables
- without introducing a new scope, among other benefits.
-
-* Remove support for old systems, including: BeOS, RISCOS, (SGI) Irix, Tru64
-
-References
-==========
-
-.. [1] PyCon 2003 State of the Union:
- http://www.python.org/doc/essays/ppt/pycon2003/pycon2003.ppt
-
-.. [2] Python Regrets:
- http://www.python.org/doc/essays/ppt/regrets/PythonRegrets.pdf
-
-.. [3] Python Wiki:
- http://www.python.org/moin/Python3.0
-
-.. [4] python-dev email ("Constancy of None")
- http://mail.python.org/pipermail/python-dev/2004-July/046294.html
-
-.. [5] python-dev email (' "as" to be a keyword?')
- http://mail.python.org/pipermail/python-dev/2004-July/046316.html
-
-.. [6] python-dev email ("Comparing heterogeneous types")
- http://mail.python.org/pipermail/python-dev/2004-June/045111.html
-
-.. [7] python-dev email ("Let's get rid of unbound methods")
- http://mail.python.org/pipermail/python-dev/2005-January/050625.html
-
-.. [8] python-dev email ("Fixing _PyEval_SliceIndex so that integer-like
- objects can be used")
- http://mail.python.org/pipermail/python-dev/2005-February/051674.html
-
-.. [9] Guido's blog ("The fate of reduce() in Python 3000")
- http://www.artima.com/weblogs/viewpost.jsp?thread=98196
-
-.. [10] PEP 238 ("Changing the Division Operator")
- http://www.python.org/peps/pep-0238.html
-
-.. [11] Guido's blog ("Python Optional Typechecking Redux")
- http://www.artima.com/weblogs/viewpost.jsp?thread=89161
-
-.. [12] PEP 289 ("Generator Expressions")
- http://www.python.org/peps/pep-0289.html
-
-.. [13] python-dev email ("anonymous blocks")
- http://mail.python.org/pipermail/python-dev/2005-April/053060.html
-
-.. [14] python-dev email ("PEP 8: exception style")
- http://mail.python.org/pipermail/python-dev/2005-August/055190.html
-
-.. [15] python-dev email (Remove str.find in 3.0?)
- http://mail.python.org/pipermail/python-dev/2005-August/055705.html
-
-.. [16] python-dev email (Replacement for print in Python 3.0)
- http://mail.python.org/pipermail/python-dev/2005-September/056154.html
-
-.. [17] Python docs
- http://docs.python.org/ref/sequence-methods.html
- http://docs.python.org/lib/module-sys.html
- http://docs.python.org/lib/module-operator.html
- http://docs.python.org/lib/module-array.html
- http://docs.python.org/lib/bltin-file-objects.html
-
-.. [18] PEP 4 ("Deprecation of Standard Modules")
- http://www.python.org/peps/pep-0004.html
-
-.. [19] PEP 328 ("Imports: Multi-Line and Absolute/Relative")
- http://www.python.org/peps/pep-0328.html
-
-.. [20] PEP 352 ("Required Superclass for Exceptions")
- http://www.python.org/peps/pep-0352.html
-
-.. [21] python-dev email
- http://mail.python.org/pipermail/python-dev/2006-February/061169.html
-
-.. [22] python-dev email ("defaultdict")
- http://mail.python.org/pipermail/python-dev/2006-February/061261.html
-
-.. [23] PEP 308 ("Conditional Expressions")
- http://www.python.org/peps/pep-0308.html
-
-.. [#pep238] PEP 238 (Changing the Division Operator)
- http://www.python.org/peps/pep-0238.html
-
-.. [#pep328] PEP 328 (Imports: Multi-Line and Absolute/Relative)
- http://www.python.org/peps/pep-0328.html
-
-.. [#pep343] PEP 343 (The "with" Statement)
- http://www.python.org/peps/pep-0343.html
-
-.. [#pep352] PEP 352 (Required Superclass for Exceptions)
- http://www.python.org/peps/pep-0352.html
-
-Copyright
-=========
-
-This document has been placed in the public domain.
-
-
-
-..
- Local Variables:
- mode: indented-text
- indent-tabs-mode: nil
- sentence-end-double-space: t
- fill-column: 70
- End:
Modified: peps/trunk/pep-3099.txt
==============================================================================
--- peps/trunk/pep-3099.txt (original)
+++ peps/trunk/pep-3099.txt Wed Apr 5 09:17:23 2006
@@ -23,7 +23,7 @@
* Python will not have programmable syntax.
- Thread: "It's a statement! It's a function! It's BOTH!"
+ Thread: "It's a statement! It's a function! It's BOTH!",
http://mail.python.org/pipermail/python-3000/2006-April/000286.html
* There won't be a syntax for ``zip()``-style parallel iteration.
@@ -35,7 +35,8 @@
Builtins
========
-* ``hash()`` won't become an attribute.
+* ``hash()`` won't become an attribute since attributes should be cheap
+ to compute, which isn't necessarily the case for a hash.
Thread: "hash as attribute/property",
http://mail.python.org/pipermail/python-3000/2006-April/000362.html
Copied: peps/trunk/pep-3100.txt (from r43576, peps/trunk/pep-3000.txt)
==============================================================================
--- peps/trunk/pep-3000.txt (original)
+++ peps/trunk/pep-3100.txt Wed Apr 5 09:17:23 2006
@@ -1,5 +1,5 @@
-PEP: 3000
-Title: Python 3.0 Plans
+PEP: 3100
+Title: Miscellaneous Python 3.0 Plans
Version: $Revision$
Last-Modified: $Date$
Author: A.M. Kuchling <amk at amk.ca>,
@@ -14,9 +14,9 @@
Abstract
========
-This PEP describes the changes currently envisioned in Python 3.0
-(also called Python 3000), a hypothetical future release of Python that
-can break backwards compatibility with the existing body of Python code.
+This PEP, previously known as PEP 3000, describes smaller scale changes
+and new features for which no separate PEP is written yet, all targeted
+for Python 3000.
The list of features included in this document is subject to change
and isn't binding on the Python development community; features may be
@@ -29,6 +29,9 @@
decisions for which changes are listed in this document are made by
Guido van Rossum, who has chosen them as goals for Python 3.0.
+Guido's pronouncements on things that will not change in Python 3.0
+are recorded in PEP 3099. [#pep3099]_
+
General goals
=============
@@ -162,6 +165,7 @@
* Reorganize the standard library to not be as shallow
* Move test code to where it belongs, there will be no more test() functions
in the standard library
+* For the procedures of standard library improvement, see PEP 3001 [#pep3001]_
To be removed:
@@ -192,6 +196,8 @@
for the acquire() and release() methods on lock objects.
(Probably also just remove the thread module as a public API,
in favor of always using threading.py.)
+* UserXyz classes, in favour of XyzMixins.
+
Outstanding Issues
==================
@@ -201,6 +207,7 @@
* Remove support for old systems, including: BeOS, RISCOS, (SGI) Irix, Tru64
+
References
==========
@@ -233,13 +240,13 @@
http://www.artima.com/weblogs/viewpost.jsp?thread=98196
.. [10] PEP 238 ("Changing the Division Operator")
- http://www.python.org/peps/pep-0238.html
+ http://www.python.org/dev/peps/pep-0238
.. [11] Guido's blog ("Python Optional Typechecking Redux")
http://www.artima.com/weblogs/viewpost.jsp?thread=89161
.. [12] PEP 289 ("Generator Expressions")
- http://www.python.org/peps/pep-0289.html
+ http://www.python.org/dev/peps/pep-0289
.. [13] python-dev email ("anonymous blocks")
http://mail.python.org/pipermail/python-dev/2005-April/053060.html
@@ -261,13 +268,13 @@
http://docs.python.org/lib/bltin-file-objects.html
.. [18] PEP 4 ("Deprecation of Standard Modules")
- http://www.python.org/peps/pep-0004.html
+ http://www.python.org/dev/peps/pep-0004
.. [19] PEP 328 ("Imports: Multi-Line and Absolute/Relative")
- http://www.python.org/peps/pep-0328.html
+ http://www.python.org/dev/peps/pep-0328
.. [20] PEP 352 ("Required Superclass for Exceptions")
- http://www.python.org/peps/pep-0352.html
+ http://www.python.org/dev/peps/pep-0352
.. [21] python-dev email
http://mail.python.org/pipermail/python-dev/2006-February/061169.html
@@ -276,19 +283,26 @@
http://mail.python.org/pipermail/python-dev/2006-February/061261.html
.. [23] PEP 308 ("Conditional Expressions")
- http://www.python.org/peps/pep-0308.html
+ http://www.python.org/dev/peps/pep-0308
.. [#pep238] PEP 238 (Changing the Division Operator)
- http://www.python.org/peps/pep-0238.html
+ http://www.python.org/dev/peps/pep-0238
.. [#pep328] PEP 328 (Imports: Multi-Line and Absolute/Relative)
- http://www.python.org/peps/pep-0328.html
+ http://www.python.org/dev/peps/pep-0328
.. [#pep343] PEP 343 (The "with" Statement)
- http://www.python.org/peps/pep-0343.html
+ http://www.python.org/dev/peps/pep-0343
.. [#pep352] PEP 352 (Required Superclass for Exceptions)
- http://www.python.org/peps/pep-0352.html
+ http://www.python.org/dev/peps/pep-0352
+
+.. [#pep3001] PEP 3001 (Process for reviewing and improving standard library modules)
+ http://www.python.org/dev/peps/pep-3001
+
+.. [#pep3099] PEP 3099 (Things that will Not Change in Python 3000)
+ http://www.python.org/dev/peps/pep-3099
+
Copyright
=========
More information about the Python-checkins
mailing list