Author: guido.van.rossum Date: Fri Aug 18 23:34:25 2006 New Revision: 51389 Modified: peps/trunk/pep-3100.txt Log: Various status updates. Added some "?"s to items I'm not sure about. Modified: peps/trunk/pep-3100.txt ============================================================================== --- peps/trunk/pep-3100.txt (original) +++ peps/trunk/pep-3100.txt Fri Aug 18 23:34:25 2006 @@ -63,29 +63,26 @@ Core language ============= -* True division becomes default behavior [#pep238]_ +* True division becomes default behavior [#pep238]_ [done] * ``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]_ +* (Maybe) add optional declarations for static typing [11]_ +* Support only new-style classes; classic classes will be gone [1]_ [done] * Replace ``print`` by a function [16]_ -* Do something so you can catch multiple exceptions using ``except E1, - E2:``. Probably 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``?) +* Use ``except E1, E2, E3 as err:`` if you want the error variable. [3]_ +* ``None`` becomes a keyword [4]_ (What about ``True``, ``False``?) * ``...`` to become a general expression element [24]_ -* ``as`` becomes a keyword [5]_ (probably in 2.6 already) +* ``as`` becomes a keyword [5]_ (probably in 2.6 already) [done] * 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]_ +* Exceptions might 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 [#pep328]_ -* __init__.py will be optional in sub-packages. __init__.py will still +* Imports will be absolute by default. [done] + Relative imports must be explicitly specified [#pep328]_ [done] +* __init__.py might become 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. @@ -110,17 +107,18 @@ NB. {range(x)} means set([range(x)]), NOT set(range(x)). There's no literal for an empty set; use set() (or {1}&{2} :-). There's no frozenset literal; they are too rarely needed. -* Reconsider PEP 299 [30]_: special __main__() function in modules. +* Might reconsider PEP 299 [30]_: special __main__() function in modules. To be removed: -* String exceptions: use instances of an Exception class [2]_ +* String exceptions: use instances of an Exception class [2]_ [done] * ``raise Exception, "message"``: use ``raise Exception("message")`` [14]_ * ```x```: use ``repr(x)`` [2]_ * The ``<>`` operator: use ``!=`` instead [3]_ * The __mod__ and __divmod__ special methods on float. [29]_ -* Unbound methods [7]_ -* METH_OLDARGS, WITH_CYCLE_GC +* Might drop unbound methods? [7]_ +* METH_OLDARGS +* WITH_CYCLE_GC [done] * __getslice__, __setslice__, __delslice__ [17]_ * Remove slice opcodes and use slice objects * C APIs (see code): @@ -140,17 +138,17 @@ The new string type will be called 'str'. * 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??? + methods will be removed. + Better: make keys(), etc. return views ala Java collections??? * Make ``string.join()`` stringify its arguments? [26]_ To be removed: * ``basestring.find()`` and ``basestring.rfind()``; use ``basestring.index()`` - or ``basestring.rindex()`` in a try/except block [15]_ -* ``file.xreadlines()`` method [#file-object]_ -* ``dict.setdefault()`` [22]_ -* ``dict.has_key()`` method + or ``basestring.rindex()`` in a try/except block??? [15]_ +* ``file.xreadlines()`` method [#file-object]_ [done] +* ``dict.setdefault()``? [22]_ +* ``dict.has_key()`` method [done] Built-in Namespace @@ -159,23 +157,23 @@ * Make built-ins return an iterator where appropriate (e.g. ``range()``, ``zip()``, etc.) * Relevant functions should consume iterators (e.g. ``min()``, - ``max()``) + ``max()``) [They already do, since 2.2.] * 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 [#pep352]_ + has data loss, but an integral representation is still desired? [8]_ +* Exception hierarchy changes [#pep352]_ [done] To be removed: -* ``apply()``: use ``f(*args, **kw)`` instead [2]_ -* ``buffer()``: must die (use a bytes() type instead) [2]_ +* ``apply()``: use ``f(*args, **kw)`` instead [2]_ [done] +* ``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]_ +* ``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]_ @@ -184,9 +182,10 @@ Standard library ================ -* Reorganize the standard library to not be as shallow +* 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 +* Convert all tests to use either doctest or unittest. * For the procedures of standard library improvement, see PEP 3001 [#pep3001]_ To be removed: @@ -222,7 +221,8 @@ ================== * Require C99, so we can use // comments, named initializers, declare variables - without introducing a new scope, among other benefits. + without introducing a new scope, among other benefits. (Also better support + for IEEE floating point issues like NaN and infinities?) * Remove support for old systems, including: BeOS, RISCOS, (SGI) Irix, Tru64
participants (1)
-
guido.van.rossum