summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
blob: e442df896e5091ba386aa2d72b249887ecee6751 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
+++++++++++
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.

- Test merging certain changes from the 2.5 HEAD code.

- Weed really old/weird stuff from the library.

- Unify range() and xrange().

- Revamp the dict API: keys(), values(), items() return iterators, etc.

- Add the bytes type.

- Rework the standard I/O library to use bytes for binary files.

- Make strings all Unicode.

- Get rid of classic class implementation.

- Get rid of various compatibility-related flags (e.g. division flags).


Core and Builtins
-----------------

- Added function annotations per PEP 3107.

- 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(), input(), raw_input()

- 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
-------

Build
-----

C API
-----

Tests
-----

Documentation
-------------

Mac
---

New platforms
-------------

Tools/Demos
-----------

**(For information about older versions, consult the HISTORY file.)**