| +++++++++++ |
| Python News |
| +++++++++++ |
| |
| (editors: check NEWS.help for information about editing NEWS using ReST.) |
| |
| What's New in Python 3000? |
| ========================== |
| |
| *Release date: XX-XXX-200X* |
| |
| TO DO |
| ----- |
| |
| - See PEP 3000, 3100. |
| |
| - Weed really old/weird stuff from the library. |
| |
| - Unify range() and xrange(). |
| |
| - Rework the standard I/O library to use bytes for binary files. |
| |
| - Make strings all Unicode. |
| |
| - Get rid of various compatibility-related flags (e.g. division flags). |
| |
| |
| Core and Builtins |
| ----------------- |
| |
| - Removing indexing/slicing on BaseException. |
| |
| - Remove the exceptions module, all the exceptions are already builtin. |
| |
| - input() becomes raw_input(): the name input() now implements the |
| functionality formerly known as raw_input(); the name raw_input() |
| is no longer defined. |
| |
| - Classes listed in an 'except' clause must inherit from BaseException. |
| |
| - PEP 3106: dict.iterkeys(), .iteritems(), .itervalues() are now gone; |
| and .keys(), .items(), .values() return dict views. |
| |
| - PEP 3105: print is now a function. Also (not in the PEP) the |
| 'softspace' attribute of files is now gone (since print() doesn't use |
| it). A side effect of this change is that you can get incomplete |
| output lines in interactive sessions: |
| |
| >>> print(42, end="") |
| 42>>> |
| |
| We may be able to fix this after the I/O library rewrite. |
| |
| - PEP 3102: keyword-only arguments. |
| |
| - Int/Long unification is complete. The 'long' built-in type |
| and literals with trailing 'L' or 'l' have been removed. |
| Performance may be sub-optimal (haven't really benchmarked). |
| |
| - 'except E, V' must now be spelled as 'except E as V' and deletes V |
| at the end of the except clause; V must be a simple name. |
| |
| - Added function annotations per PEP 3107. |
| |
| - Added nonlocal declaration from PEP 3104 |
| |
| >>> def f(x): |
| ... def inc(): |
| ... nonlocal x |
| ... x += 1 |
| ... return x |
| ... return inc |
| ... |
| >>> inc = f(0) |
| >>> inc() |
| 1 |
| >>> inc() |
| 2 |
| |
| - Moved intern() to sys.intern(). |
| |
| - exec is now a function. |
| |
| - Renamed nb_nonzero to nb_bool and __nonzero__ to __bool__. |
| |
| - Classic classes are a thing of the past. All classes are new style. |
| |
| - Exceptions *must* derive from BaseException. |
| |
| - Integer division always returns a float. The -Q option is no more. |
| All the following are gone: |
| * PyNumber_Divide and PyNumber_InPlaceDivide |
| * __div__, __rdiv__, and __idiv__ |
| * nb_divide, nb_inplace_divide |
| * operator.div, operator.idiv, operator.__div__, operator.__idiv__ |
| (Only __truediv__ and __floordiv__ remain, not sure how to handle them |
| if we want to re-use __div__ and friends. If we do, it will make |
| it harder to write code for both 2.x and 3.x.) |
| |
| - 'as' and 'with' are keywords. |
| |
| - Absolute import is the default behavior for 'import foo' etc. |
| |
| - Removed support for syntax: |
| backticks (`x`), <> |
| |
| - Removed these Python builtins: |
| apply(), coerce() |
| |
| - Removed these Python methods: |
| {}.has_key |
| |
| - Removed these Python slots: |
| __coerce__, __div__, __idiv__, __rdiv__ |
| |
| - Removed these attributes from Python modules: |
| * operator module: div, idiv, __div__, __idiv__ |
| |
| - Removed these C APIs: |
| PyNumber_Coerce(), PyNumber_CoerceEx() |
| |
| - Removed these C slots/fields: |
| nb_divide, nb_inplace_divide |
| |
| - Removed these macros: |
| staticforward, statichere, PyArg_GetInt, PyArg_NoArgs |
| |
| - Removed these typedefs: |
| intargfunc, intintargfunc, intobjargproc, intintobjargproc, |
| getreadbufferproc, getwritebufferproc, getsegcountproc, getcharbufferproc |
| |
| - Removed these opcodes: |
| BINARY_DIVIDE, INPLACE_DIVIDE, UNARY_CONVERT |
| |
| - zip returns an iterator |
| |
| - Additions: |
| set literals, ellipsis literal |
| |
| |
| Extension Modules |
| ----------------- |
| |
| Library |
| ------- |
| |
| - Removed all traces of the sets module. |
| |
| Build |
| ----- |
| |
| C API |
| ----- |
| |
| Tests |
| ----- |
| |
| Documentation |
| ------------- |
| |
| Mac |
| --- |
| |
| New platforms |
| ------------- |
| |
| Tools/Demos |
| ----------- |
| |
| **(For information about older versions, consult the HISTORY file.)** |