/Misc/HISTORY

http://unladen-swallow.googlecode.com/ · #! · 17442 lines · 12462 code · 4980 blank · 0 comment · 0 complexity · 9c1bc4d2e0906898e8397430f132aece MD5 · raw file

Large files are truncated click here to view the full file

  1. Python History
  2. --------------
  3. This file contains the release messages for previous Python releases.
  4. As you read on you go back to the dark ages of Python's history.
  5. (Note: news about 2.5c2 and later 2.5 releases is in the Misc/NEWS
  6. file of the release25-maint branch.)
  7. ======================================================================
  8. What's New in Python 2.5 release candidate 1?
  9. =============================================
  10. *Release date: 17-AUG-2006*
  11. Core and builtins
  12. -----------------
  13. - Unicode objects will no longer raise an exception when being
  14. compared equal or unequal to a string and a UnicodeDecodeError
  15. exception occurs, e.g. as result of a decoding failure.
  16. Instead, the equal (==) and unequal (!=) comparison operators will
  17. now issue a UnicodeWarning and interpret the two objects as
  18. unequal. The UnicodeWarning can be filtered as desired using
  19. the warning framework, e.g. silenced completely, turned into an
  20. exception, logged, etc.
  21. Note that compare operators other than equal and unequal will still
  22. raise UnicodeDecodeError exceptions as they've always done.
  23. - Fix segfault when doing string formatting on subclasses of long.
  24. - Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
  25. with new-style classes.
  26. - Fix bug related to __len__ functions returning negative values with
  27. classic classes.
  28. - Patch #1538606, Fix __index__() clipping. There were some problems
  29. discovered with the API and how integers that didn't fit into Py_ssize_t
  30. were handled. This patch attempts to provide enough alternatives
  31. to effectively use __index__.
  32. - Bug #1536021: __hash__ may now return long int; the final hash
  33. value is obtained by invoking hash on the long int.
  34. - Bug #1536786: buffer comparison could emit a RuntimeWarning.
  35. - Bug #1535165: fixed a segfault in input() and raw_input() when
  36. sys.stdin is closed.
  37. - On Windows, the PyErr_Warn function is now exported from
  38. the Python dll again.
  39. - Bug #1191458: tracing over for loops now produces a line event
  40. on each iteration. Fixing this problem required changing the .pyc
  41. magic number. This means that .pyc files generated before 2.5c1
  42. will be regenerated.
  43. - Bug #1333982: string/number constants were inappropriately stored
  44. in the byte code and co_consts even if they were not used, ie
  45. immediately popped off the stack.
  46. - Fixed a reference-counting problem in property().
  47. Library
  48. -------
  49. - Fix a bug in the ``compiler`` package that caused invalid code to be
  50. generated for generator expressions.
  51. - The distutils version has been changed to 2.5.0. The change to
  52. keep it programmatically in sync with the Python version running
  53. the code (introduced in 2.5b3) has been reverted. It will continue
  54. to be maintained manually as static string literal.
  55. - If the Python part of a ctypes callback function returns None,
  56. and this cannot be converted to the required C type, an exception is
  57. printed with PyErr_WriteUnraisable. Before this change, the C
  58. callback returned arbitrary values to the calling code.
  59. - The __repr__ method of a NULL ctypes.py_object() no longer raises
  60. an exception.
  61. - uuid.UUID now has a bytes_le attribute. This returns the UUID in
  62. little-endian byte order for Windows. In addition, uuid.py gained some
  63. workarounds for clocks with low resolution, to stop the code yielding
  64. duplicate UUIDs.
  65. - Patch #1540892: site.py Quitter() class attempts to close sys.stdin
  66. before raising SystemExit, allowing IDLE to honor quit() and exit().
  67. - Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
  68. - Patch #1536071: trace.py should now find the full module name of a
  69. file correctly even on Windows.
  70. - logging's atexit hook now runs even if the rest of the module has
  71. already been cleaned up.
  72. - Bug #1112549, fix DoS attack on cgi.FieldStorage.
  73. - Bug #1531405, format_exception no longer raises an exception if
  74. str(exception) raised an exception.
  75. - Fix a bug in the ``compiler`` package that caused invalid code to be
  76. generated for nested functions.
  77. Extension Modules
  78. -----------------
  79. - Patch #1511317: don't crash on invalid hostname (alias) info.
  80. - Patch #1535500: fix segfault in BZ2File.writelines and make sure it
  81. raises the correct exceptions.
  82. - Patch # 1536908: enable building ctypes on OpenBSD/AMD64. The
  83. '-no-stack-protector' compiler flag for OpenBSD has been removed.
  84. - Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
  85. uses the _as_parameter_ attribute when objects are passed to foreign
  86. function calls. The ctypes version number was changed to 1.0.1.
  87. - Bug #1530559, struct.pack raises TypeError where it used to convert.
  88. Passing float arguments to struct.pack when integers are expected
  89. now triggers a DeprecationWarning.
  90. Tests
  91. -----
  92. - test_socketserver should now work on cygwin and not fail sporadically
  93. on other platforms.
  94. - test_mailbox should now work on cygwin versions 2006-08-10 and later.
  95. - Bug #1535182: really test the xreadlines() method of bz2 objects.
  96. - test_threading now skips testing alternate thread stack sizes on
  97. platforms that don't support changing thread stack size.
  98. Documentation
  99. -------------
  100. - Patch #1534922: unittest docs were corrected and enhanced.
  101. Build
  102. -----
  103. - Bug #1535502, build _hashlib on Windows, and use masm assembler
  104. code in OpenSSL.
  105. - Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
  106. - Bug #1530448, ctypes build failure on Solaris 10 was fixed.
  107. C API
  108. -----
  109. - New API for Unicode rich comparisons: PyUnicode_RichCompare()
  110. - Bug #1069160. Internal correctness changes were made to
  111. ``PyThreadState_SetAsyncExc()``. A test case was added, and
  112. the documentation was changed to state that the return value
  113. is always 1 (normal) or 0 (if the specified thread wasn't found).
  114. What's New in Python 2.5 beta 3?
  115. ================================
  116. *Release date: 03-AUG-2006*
  117. Core and builtins
  118. -----------------
  119. - _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
  120. returned a long (see PEP 353).
  121. - Bug #1515471: string.replace() accepts character buffers again.
  122. - Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
  123. This provides the proper warning for struct.pack().
  124. PyErr_Warn() is now deprecated in favor of PyErr_WarnEx().
  125. - Patch #1531113: Fix augmented assignment with yield expressions.
  126. Also fix a SystemError when trying to assign to yield expressions.
  127. - Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
  128. with PEP 302. This was fixed by adding an ``imp.NullImporter`` type that is
  129. used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
  130. excessive filesystem operations during imports.
  131. - Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
  132. operations on signed longs that are formally undefined by C.
  133. Unfortunately, at least one compiler now cares about that, so complicated
  134. the code to make that compiler happy again.
  135. - Bug #1524310: Properly report errors from FindNextFile in os.listdir.
  136. - Patch #1232023: Stop including current directory in search
  137. path on Windows.
  138. - Fix some potential crashes found with failmalloc.
  139. - Fix warnings reported by Klocwork's static analysis tool.
  140. - Bug #1512814, Fix incorrect lineno's when code within a function
  141. had more than 255 blank lines.
  142. - Patch #1521179: Python now accepts the standard options ``--help`` and
  143. ``--version`` as well as ``/?`` on Windows.
  144. - Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
  145. again. Fixing this problem required changing the .pyc magic number.
  146. This means that .pyc files generated before 2.5b3 will be regenerated.
  147. - Bug #1524317: Compiling Python ``--without-threads`` failed.
  148. The Python core compiles again, and, in a build without threads, the
  149. new ``sys._current_frames()`` returns a dictionary with one entry,
  150. mapping the faux "thread id" 0 to the current frame.
  151. - Bug #1525447: build on MacOS X on a case-sensitive filesystem.
  152. Library
  153. -------
  154. - Fix #1693149. Now you can pass several modules separated by
  155. comma to trace.py in the same --ignore-module option.
  156. - Correction of patch #1455898: In the mbcs decoder, set final=False
  157. for stream decoder, but final=True for the decode function.
  158. - os.urandom no longer masks unrelated exceptions like SystemExit or
  159. KeyboardInterrupt.
  160. - Bug #1525866: Don't copy directory stat times in
  161. shutil.copytree on Windows
  162. - Bug #1002398: The documentation for os.path.sameopenfile now correctly
  163. refers to file descriptors, not file objects.
  164. - The renaming of the xml package to xmlcore, and the import hackery done
  165. to make it appear at both names, has been removed. Bug #1511497,
  166. #1513611, and probably others.
  167. - Bug #1441397: The compiler module now recognizes module and function
  168. docstrings correctly as it did in Python 2.4.
  169. - Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
  170. lost that tests are sorted by name before being run. This rarely
  171. matters for well-written tests, but can create baffling symptoms if
  172. side effects from one test to the next affect outcomes. ``DocTestFinder``
  173. has been changed to sort the list of tests it returns.
  174. - The distutils version has been changed to 2.5.0, and is now kept
  175. in sync with sys.version_info[:3].
  176. - Bug #978833: Really close underlying socket in _socketobject.close.
  177. - Bug #1459963: urllib and urllib2 now normalize HTTP header names with
  178. title().
  179. - Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
  180. to recursive calls and call it with the failing package name.
  181. - Bug #1525817: Don't truncate short lines in IDLE's tool tips.
  182. - Patch #1515343: Fix printing of deprecated string exceptions with a
  183. value in the traceback module.
  184. - Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
  185. - Patch #1524429: Use repr() instead of backticks in Tkinter again.
  186. - Bug #1520914: Change time.strftime() to accept a zero for any position in its
  187. argument tuple. For arguments where zero is illegal, the value is forced to
  188. the minimum value that is correct. This is to support an undocumented but
  189. common way people used to fill in inconsequential information in the time
  190. tuple pre-2.4.
  191. - Patch #1220874: Update the binhex module for Mach-O.
  192. - The email package has improved RFC 2231 support, specifically for
  193. recognizing the difference between encoded (name*0*=<blah>) and non-encoded
  194. (name*0=<blah>) parameter continuations. This may change the types of
  195. values returned from email.message.Message.get_param() and friends.
  196. Specifically in some cases where non-encoded continuations were used,
  197. get_param() used to return a 3-tuple of (None, None, string) whereas now it
  198. will just return the string (since non-encoded continuations don't have
  199. charset and language parts).
  200. Also, whereas % values were decoded in all parameter continuations, they are
  201. now only decoded in encoded parameter parts.
  202. - Bug #1517990: IDLE keybindings on MacOS X now work correctly
  203. - Bug #1517996: IDLE now longer shows the default Tk menu when a
  204. path browser, class browser or debugger is the frontmost window on MacOS X
  205. - Patch #1520294: Support for getset and member descriptors in types.py,
  206. inspect.py, and pydoc.py. Specifically, this allows for querying the type
  207. of an object against these built-in types and more importantly, for getting
  208. their docstrings printed in the interactive interpreter's help() function.
  209. Extension Modules
  210. -----------------
  211. - Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
  212. a socket operation on a socket with a timeout, the exception will be
  213. caught correctly. Previously, the exception was not caught.
  214. - Patch #1529514: The _ctypes extension is now compiled on more
  215. openbsd target platforms.
  216. - The ``__reduce__()`` method of the new ``collections.defaultdict`` had
  217. a memory leak, affecting pickles and deep copies.
  218. - Bug #1471938: Fix curses module build problem on Solaris 8; patch by
  219. Paul Eggert.
  220. - Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
  221. - Patch #1521817: Index range checking on ctypes arrays containing
  222. exactly one element enabled again. This allows iterating over these
  223. arrays, without the need to check the array size before.
  224. - Bug #1521375: When the code in ctypes.util.find_library was
  225. run with root privileges, it could overwrite or delete
  226. /dev/null in certain cases; this is now fixed.
  227. - Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
  228. default mode for loading shared libraries in ctypes.
  229. - Because of a misspelled preprocessor symbol, ctypes was always
  230. compiled without thread support; this is now fixed.
  231. - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
  232. methods now allow their database parameter to be None as the
  233. sleepycat API allows.
  234. - Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
  235. bluetooth API compared with Linux and FreeBSD.
  236. Tests
  237. -----
  238. - Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
  239. how long the test file should take to play. Now accepts taking 2.93 secs
  240. (exact time) +/- 10% instead of the hard-coded 3.1 sec.
  241. - Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
  242. ``test_uuid`` and ``test_email_codecs`` didn't actually run any tests when
  243. run via ``regrtest.py``. Now they do.
  244. Build
  245. -----
  246. - Bug #1439538: Drop usage of test -e in configure as it is not portable.
  247. Mac
  248. ---
  249. - PythonLauncher now works correctly when the path to the script contains
  250. characters that are treated specially by the shell (such as quotes).
  251. - Bug #1527397: PythonLauncher now launches scripts with the working directory
  252. set to the directory that contains the script instead of the user home
  253. directory. That latter was an implementation accident and not what users
  254. expect.
  255. What's New in Python 2.5 beta 2?
  256. ================================
  257. *Release date: 11-JUL-2006*
  258. Core and builtins
  259. -----------------
  260. - Bug #1441486: The literal representation of -(sys.maxint - 1)
  261. again evaluates to a int object, not a long.
  262. - Bug #1501934: The scope of global variables that are locally assigned
  263. using augmented assignment is now correctly determined.
  264. - Bug #927248: Recursive method-wrapper objects can now safely
  265. be released.
  266. - Bug #1417699: Reject locale-specific decimal point in float()
  267. and atof().
  268. - Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
  269. omit a default "error" argument for NULL pointer. This allows
  270. the parser to take a codec from cjkcodecs again.
  271. - Bug #1519018: 'as' is now validated properly in import statements.
  272. - On 64 bit systems, int literals that use less than 64 bits are
  273. now ints rather than longs.
  274. - Bug #1512814, Fix incorrect lineno's when code at module scope
  275. started after line 256.
  276. - New function ``sys._current_frames()`` returns a dict mapping thread
  277. id to topmost thread stack frame. This is for expert use, and is
  278. especially useful for debugging application deadlocks. The functionality
  279. was previously available in Fazal Majid's ``threadframe`` extension
  280. module, but it wasn't possible to do this in a wholly threadsafe way from
  281. an extension.
  282. Library
  283. -------
  284. - Bug #1257728: Mention Cygwin in distutils error message about a missing
  285. VS 2003.
  286. - Patch #1519566: Update turtle demo, make begin_fill idempotent.
  287. - Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
  288. environment variable to be set in order to the SDK environment
  289. for finding the compiler, include files, etc.
  290. - Bug #1515998: Properly generate logical ids for files in bdist_msi.
  291. - warnings.py now ignores ImportWarning by default
  292. - string.Template() now correctly handles tuple-values. Previously,
  293. multi-value tuples would raise an exception and single-value tuples would
  294. be treated as the value they contain, instead.
  295. - Bug #822974: Honor timeout in telnetlib.{expect,read_until}
  296. even if some data are received.
  297. - Bug #1267547: Put proper recursive setup.py call into the
  298. spec file generated by bdist_rpm.
  299. - Bug #1514693: Update turtle's heading when switching between
  300. degrees and radians.
  301. - Reimplement turtle.circle using a polyline, to allow correct
  302. filling of arcs.
  303. - Bug #1514703: Only setup canvas window in turtle when the canvas
  304. is created.
  305. - Bug #1513223: .close() of a _socketobj now releases the underlying
  306. socket again, which then gets closed as it becomes unreferenced.
  307. - Bug #1504333: Make sgmllib support angle brackets in quoted
  308. attribute values.
  309. - Bug #853506: Fix IPv6 address parsing in unquoted attributes in
  310. sgmllib ('[' and ']' were not accepted).
  311. - Fix a bug in the turtle module's end_fill function.
  312. - Bug #1510580: The 'warnings' module improperly required that a Warning
  313. category be either a types.ClassType and a subclass of Warning. The proper
  314. check is just that it is a subclass with Warning as the documentation states.
  315. - The compiler module now correctly compiles the new try-except-finally
  316. statement (bug #1509132).
  317. - The wsgiref package is now installed properly on Unix.
  318. - A bug was fixed in logging.config.fileConfig() which caused a crash on
  319. shutdown when fileConfig() was called multiple times.
  320. - The sqlite3 module did cut off data from the SQLite database at the first
  321. null character before sending it to a custom converter. This has been fixed
  322. now.
  323. Extension Modules
  324. -----------------
  325. - #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
  326. means that select() on sockets > FD_SETSIZE (typically 1024) work again.
  327. The patch makes sockets use poll() internally where available.
  328. - Assigning None to pointer type fields in ctypes structures possible
  329. overwrote the wrong fields, this is fixed now.
  330. - Fixed a segfault in _ctypes when ctypes.wintypes were imported
  331. on non-Windows platforms.
  332. - Bug #1518190: The ctypes.c_void_p constructor now accepts any
  333. integer or long, without range checking.
  334. - Patch #1517790: It is now possible to use custom objects in the ctypes
  335. foreign function argtypes sequence as long as they provide a from_param
  336. method, no longer is it required that the object is a ctypes type.
  337. - The '_ctypes' extension module now works when Python is configured
  338. with the --without-threads option.
  339. - Bug #1513646: os.access on Windows now correctly determines write
  340. access, again.
  341. - Bug #1512695: cPickle.loads could crash if it was interrupted with
  342. a KeyboardInterrupt.
  343. - Bug #1296433: parsing XML with a non-default encoding and
  344. a CharacterDataHandler could crash the interpreter in pyexpat.
  345. - Patch #1516912: improve Modules support for OpenVMS.
  346. Build
  347. -----
  348. - Automate Windows build process for the Win64 SSL module.
  349. - 'configure' now detects the zlib library the same way as distutils.
  350. Previously, the slight difference could cause compilation errors of the
  351. 'zlib' module on systems with more than one version of zlib.
  352. - The MSI compileall step was fixed to also support a TARGETDIR
  353. with spaces in it.
  354. - Bug #1517388: sqlite3.dll is now installed on Windows independent
  355. of Tcl/Tk.
  356. - Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
  357. trying to be installed even though it's empty.
  358. Tests
  359. -----
  360. - Call os.waitpid() at the end of tests that spawn child processes in order
  361. to minimize resources (zombies).
  362. Documentation
  363. -------------
  364. - Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
  365. documentation for the warnings module.
  366. - Patch #1509163: MS Toolkit Compiler no longer available.
  367. - Patch #1504046: Add documentation for xml.etree.
  368. What's New in Python 2.5 beta 1?
  369. ================================
  370. *Release date: 20-JUN-2006*
  371. Core and builtins
  372. -----------------
  373. - Patch #1507676: Error messages returned by invalid abstract object operations
  374. (such as iterating over an integer) have been improved and now include the
  375. type of the offending object to help with debugging.
  376. - Bug #992017: A classic class that defined a __coerce__() method that returned
  377. its arguments swapped would infinitely recurse and segfault the interpreter.
  378. - Fix the socket tests so they can be run concurrently.
  379. - Removed 5 integers from C frame objects (PyFrameObject).
  380. f_nlocals, f_ncells, f_nfreevars, f_stack_size, f_restricted.
  381. - Bug #532646: object.__call__() will continue looking for the __call__
  382. attribute on objects until one without one is found. This leads to recursion
  383. when you take a class and set its __call__ attribute to an instance of the
  384. class. Originally fixed for classic classes, but this fix is for new-style.
  385. Removes the infinite_rec_3 crasher.
  386. - The string and unicode methods startswith() and endswith() now accept
  387. a tuple of prefixes/suffixes to look for. Implements RFE #1491485.
  388. - Buffer objects, at the C level, never used the char buffer
  389. implementation even when the char buffer for the wrapped object was
  390. explicitly requested (originally returned the read or write buffer).
  391. Now a TypeError is raised if the char buffer is not present but is
  392. requested.
  393. - Patch #1346214: Statements like "if 0: suite" are now again optimized
  394. away like they were in Python 2.4.
  395. - Builtin exceptions are now full-blown new-style classes instead of
  396. instances pretending to be classes, which speeds up exception handling
  397. by about 80% in comparison to 2.5a2.
  398. - Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
  399. Unicode 4.1.
  400. - Patch #921466: sys.path_importer_cache is now used to cache valid and
  401. invalid file paths for the built-in import machinery which leads to
  402. fewer open calls on startup.
  403. - Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
  404. of-2 bases. The largest speedup is for inputs with about 1000 decimal
  405. digits. Conversion from non-power-of-2 bases remains quadratic-time in
  406. the number of input digits (it was and remains linear-time for bases
  407. 2, 4, 8, 16 and 32).
  408. - Bug #1334662: ``int(string, base)`` could deliver a wrong answer
  409. when ``base`` was not 2, 4, 8, 10, 16 or 32, and ``string`` represented
  410. an integer close to ``sys.maxint``. This was repaired by patch
  411. #1335972, which also gives a nice speedup.
  412. - Patch #1337051: reduced size of frame objects.
  413. - PyErr_NewException now accepts a tuple of base classes as its
  414. "base" parameter.
  415. - Patch #876206: function call speedup by retaining allocated frame
  416. objects.
  417. - Bug #1462152: file() now checks more thoroughly for invalid mode
  418. strings and removes a possible "U" before passing the mode to the
  419. C library function.
  420. - Patch #1488312, Fix memory alignment problem on SPARC in unicode
  421. - Bug #1487966: Fix SystemError with conditional expression in assignment
  422. - WindowsError now has two error code attributes: errno, which carries
  423. the error values from errno.h, and winerror, which carries the error
  424. values from winerror.h. Previous versions put the winerror.h values
  425. (from GetLastError()) into the errno attribute.
  426. - Patch #1475845: Raise IndentationError for unexpected indent.
  427. - Patch #1479181: split open() and file() from being aliases for each other.
  428. - Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
  429. methods were always silently ignored by dictionaries when comparing keys.
  430. They are now passed through (except when using the C API function
  431. ``PyDict_GetItem()``, whose semantics did not change).
  432. - Bug #1456209: In some obscure cases it was possible for a class with a
  433. custom ``__eq__()`` method to confuse dict internals when class instances
  434. were used as a dict's keys and the ``__eq__()`` method mutated the dict.
  435. No, you don't have any code that did this ;-)
  436. Extension Modules
  437. -----------------
  438. - Bug #1295808: expat symbols should be namespaced in pyexpat
  439. - Patch #1462338: Upgrade pyexpat to expat 2.0.0
  440. - Change binascii.hexlify to accept a read-only buffer instead of only a char
  441. buffer and actually follow its documentation.
  442. - Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
  443. - Patch #1478788 (modified version): The functional extension module has
  444. been renamed to _functools and a functools Python wrapper module added.
  445. This provides a home for additional function related utilities that are
  446. not specifically about functional programming. See PEP 309.
  447. - Patch #1493701: performance enhancements for struct module.
  448. - Patch #1490224: time.altzone is now set correctly on Cygwin.
  449. - Patch #1435422: zlib's compress and decompress objects now have a
  450. copy() method.
  451. - Patch #1454481: thread stack size is now tunable at runtime for thread
  452. enabled builds on Windows and systems with Posix threads support.
  453. - On Win32, os.listdir now supports arbitrarily-long Unicode path names
  454. (up to the system limit of 32K characters).
  455. - Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
  456. As a result, these functions now raise WindowsError instead of OSError.
  457. - ``time.clock()`` on Win64 should use the high-performance Windows
  458. ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
  459. Windows platforms).
  460. - Calling Tk_Init twice is refused if the first call failed as that
  461. may deadlock.
  462. - bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
  463. accept it without potentially using an uninitialized pointer.
  464. - bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
  465. assuming BerkeleyDB >= 4.0 and 4.4 respectively. [pybsddb project SF
  466. patch numbers 1494885 and 1494902]
  467. - bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
  468. [pybsddb project SF patch number 1466734]
  469. - bsddb: fix DBCursor.pget() bug with keyword argument names when no data
  470. parameter is supplied. [SF pybsddb bug #1477863]
  471. - bsddb: the __len__ method of a DB object has been fixed to return correct
  472. results. It could previously incorrectly return 0 in some cases.
  473. Fixes SF bug 1493322 (pybsddb bug 1184012).
  474. - bsddb: the bsddb.dbtables Modify method now raises the proper error and
  475. aborts the db transaction safely when a modifier callback fails.
  476. Fixes SF python patch/bug #1408584.
  477. - bsddb: multithreaded DB access using the simple bsddb module interface
  478. now works reliably. It has been updated to use automatic BerkeleyDB
  479. deadlock detection and the bsddb.dbutils.DeadlockWrap wrapper to retry
  480. database calls that would previously deadlock. [SF python bug #775414]
  481. - Patch #1446489: add support for the ZIP64 extensions to zipfile.
  482. - Patch #1506645: add Python wrappers for the curses functions
  483. is_term_resized, resize_term and resizeterm.
  484. Library
  485. -------
  486. - Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
  487. functions.
  488. - Patch #812986: Update turtle output even if not tracing.
  489. - Patch #1494750: Destroy master after deleting children in
  490. Tkinter.BaseWidget.
  491. - Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
  492. - Patch #763580: Add name and value arguments to Tkinter variable
  493. classes.
  494. - Bug #1117556: SimpleHTTPServer now tries to find and use the system's
  495. mime.types file for determining MIME types.
  496. - Bug #1339007: Shelf objects now don't raise an exception in their
  497. __del__ method when initialization failed.
  498. - Patch #1455898: The MBCS codec now supports the incremental mode for
  499. double-byte encodings.
  500. - ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
  501. guarantee that adjacent triples in the return list always describe
  502. non-adjacent blocks. Previously, a pair of matching blocks could end
  503. up being described by multiple adjacent triples that formed a partition
  504. of the matching pair.
  505. - Bug #1498146: fix optparse to handle Unicode strings in option help,
  506. description, and epilog.
  507. - Bug #1366250: minor optparse documentation error.
  508. - Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
  509. clarify docs.
  510. - The wsgiref package has been added to the standard library.
  511. - The functions update_wrapper() and wraps() have been added to the functools
  512. module. These make it easier to copy relevant metadata from the original
  513. function when writing wrapper functions.
  514. - The optional ``isprivate`` argument to ``doctest.testmod()``, and the
  515. ``doctest.is_private()`` function, both deprecated in 2.4, were removed.
  516. - Patch #1359618: Speed up charmap encoder by using a trie structure
  517. for lookup.
  518. - The functions in the ``pprint`` module now sort dictionaries by key
  519. before computing the display. Before 2.5, ``pprint`` sorted a dictionary
  520. if and only if its display required more than one line, although that
  521. wasn't documented. The new behavior increases predictability; e.g.,
  522. using ``pprint.pprint(a_dict)`` in a doctest is now reliable.
  523. - Patch #1497027: try HTTP digest auth before basic auth in urllib2
  524. (thanks for J. J. Lee).
  525. - Patch #1496206: improve urllib2 handling of passwords with respect to
  526. default HTTP and HTTPS ports.
  527. - Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
  528. - Patch #1281707: speed up gzip.readline.
  529. - Patch #1180296: Two new functions were added to the locale module:
  530. format_string() to get the effect of "format % items" but locale-aware,
  531. and currency() to format a monetary number with currency sign.
  532. - Patch #1486962: Several bugs in the turtle Tk demo module were fixed
  533. and several features added, such as speed and geometry control.
  534. - Patch #1488881: add support for external file objects in bz2 compressed
  535. tarfiles.
  536. - Patch #721464: pdb.Pdb instances can now be given explicit stdin and
  537. stdout arguments, making it possible to redirect input and output
  538. for remote debugging.
  539. - Patch #1484695: Update the tarfile module to version 0.8. This fixes
  540. a couple of issues, notably handling of long file names using the
  541. GNU LONGNAME extension.
  542. - Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
  543. new flag when ``name`` is already the name of an option flag.
  544. - Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
  545. package.
  546. - Patch #1472854: make the rlcompleter.Completer class usable on non-
  547. UNIX platforms.
  548. - Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
  549. - Bug #1472827: correctly escape newlines and tabs in attribute values in
  550. the saxutils.XMLGenerator class.
  551. Build
  552. -----
  553. - Bug #1502728: Correctly link against librt library on HP-UX.
  554. - OpenBSD 3.9 is supported now.
  555. - Patch #1492356: Port to Windows CE.
  556. - Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
  557. - Patch #1471883: Add --enable-universalsdk.
  558. C API
  559. -----
  560. Tests
  561. -----
  562. Tools
  563. -----
  564. Documentation
  565. -------------
  566. What's New in Python 2.5 alpha 2?
  567. =================================
  568. *Release date: 27-APR-2006*
  569. Core and builtins
  570. -----------------
  571. - Bug #1465834: 'bdist_wininst preinstall script support' was fixed
  572. by converting these apis from macros into exported functions again:
  573. PyParser_SimpleParseFile PyParser_SimpleParseString PyRun_AnyFile
  574. PyRun_AnyFileEx PyRun_AnyFileFlags PyRun_File PyRun_FileEx
  575. PyRun_FileFlags PyRun_InteractiveLoop PyRun_InteractiveOne
  576. PyRun_SimpleFile PyRun_SimpleFileEx PyRun_SimpleString
  577. PyRun_String Py_CompileString
  578. - Under COUNT_ALLOCS, types are not necessarily immortal anymore.
  579. - All uses of PyStructSequence_InitType have been changed to initialize
  580. the type objects only once, even if the interpreter is initialized
  581. multiple times.
  582. - Bug #1454485, array.array('u') could crash the interpreter. This was
  583. due to PyArgs_ParseTuple(args, 'u#', ...) trying to convert buffers (strings)
  584. to unicode when it didn't make sense. 'u#' now requires a unicode string.
  585. - Py_UNICODE is unsigned. It was always documented as unsigned, but
  586. due to a bug had a signed value in previous versions.
  587. - Patch #837242: ``id()`` of any Python object always gives a positive
  588. number now, which might be a long integer. ``PyLong_FromVoidPtr`` and
  589. ``PyLong_AsVoidPtr`` have been changed accordingly. Note that it has
  590. never been correct to implement a ``__hash()__`` method that returns the
  591. ``id()`` of an object:
  592. def __hash__(self):
  593. return id(self) # WRONG
  594. because a hash result must be a (short) Python int but it was always
  595. possible for ``id()`` to return a Python long. However, because ``id()``
  596. could return negative values before, on a 32-bit box an ``id()`` result
  597. was always usable as a hash value before this patch. That's no longer
  598. necessarily so.
  599. - Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
  600. to load extension modules and now provides the dl module. As a result,
  601. sys.setdlopenflags() now works correctly on these systems. (SF patch
  602. #1454844)
  603. - Patch #1463867: enhanced garbage collection to allow cleanup of cycles
  604. involving generators that have paused outside of any ``try`` or ``with``
  605. blocks. (In 2.5a1, a paused generator that was part of a reference
  606. cycle could not be garbage collected, regardless of whether it was
  607. paused in a ``try`` or ``with`` block.)
  608. Extension Modules
  609. -----------------
  610. - Patch #1191065: Fix preprocessor problems on systems where recvfrom
  611. is a macro.
  612. - Bug #1467952: os.listdir() now correctly raises an error if readdir()
  613. fails with an error condition.
  614. - Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
  615. - Bug #1117761: bsddb.*open() no longer raises an exception when using
  616. the cachesize parameter.
  617. - Bug #1149413: bsddb.*open() no longer raises an exception when using
  618. a temporary db (file=None) with the 'n' flag to truncate on open.
  619. - Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
  620. as older versions cause excessive test failures.
  621. - Patch #1062014: AF_UNIX sockets under Linux have a special
  622. abstract namespace that is now fully supported.
  623. Library
  624. -------
  625. - Bug #1223937: subprocess.CalledProcessError reports the exit status
  626. of the process using the returncode attribute, instead of
  627. abusing errno.
  628. - Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
  629. a doctest to be skipped (the code is not run, and the expected output
  630. or exception is ignored).
  631. - Fixed contextlib.nested to cope with exceptions being raised and
  632. caught inside exit handlers.
  633. - Updated optparse module to Optik 1.5.1 (allow numeric constants in
  634. hex, octal, or binary; add ``append_const`` action; keep going if
  635. gettext cannot be imported; added ``OptionParser.destroy()`` method;
  636. added ``epilog`` for better help generation).
  637. - Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
  638. called from a thread spawned as a side effect of importing a module.
  639. - The pydoc module now supports documenting packages contained in
  640. .zip or .egg files.
  641. - The pkgutil module now has several new utility functions, such
  642. as ``walk_packages()`` to support working with packages that are either
  643. in the filesystem or zip files.
  644. - The mailbox module can now modify and delete messages from
  645. mailboxes, in addition to simply reading them. Thanks to Gregory
  646. K. Johnson for writing the code, and to the 2005 Google Summer of
  647. Code for funding his work.
  648. - The ``__del__`` method of class ``local`` in module ``_threading_local``
  649. returned before accomplishing any of its intended cleanup.
  650. - Patch #790710: Add breakpoint command lists in pdb.
  651. - Patch #1063914: Add Tkinter.Misc.clipboard_get().
  652. - Patch #1191700: Adjust column alignment in bdb breakpoint lists.
  653. - SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
  654. Windows. Bug #1469163.
  655. - The warnings, linecache, inspect, traceback, site, and doctest modules
  656. were updated to work correctly with modules imported from zipfiles or
  657. via other PEP 302 __loader__ objects.
  658. - Patch #1467770: Reduce usage of subprocess._active to processes which
  659. the application hasn't waited on.
  660. - Patch #1462222: Fix Tix.Grid.
  661. - Fix exception when doing glob.glob('anything*/')
  662. - The pstats.Stats class accepts an optional stream keyword argument to
  663. direct output to an alternate file-like object.
  664. Build
  665. -----
  666. - The Makefile now has a reindent target, which runs reindent.py on
  667. the library.
  668. - Patch #1470875: Building Python with MS Free Compiler
  669. - Patch #1161914: Add a python-config script.
  670. - Patch #1324762:Remove ccpython.cc; replace --with-cxx with
  671. --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
  672. specified. (Can be overridden by explicitly setting LINKCC.) Decouple
  673. CXX from --with-cxx-main, see description in README.
  674. - Patch #1429775: Link extension modules with the shared libpython.
  675. - Fixed a libffi build problem on MIPS systems.
  676. - ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
  677. now accept formats "%u" for unsigned ints, "%lu" for unsigned longs,
  678. and "%zu" for unsigned integers of type ``size_t``.
  679. Tests
  680. -----
  681. - test_contextlib now checks contextlib.nested can cope with exceptions
  682. being raised and caught inside exit handlers.
  683. - test_cmd_line now checks operation of the -m and -c command switches
  684. - The test_contextlib test in 2.5a1 wasn't actually run unless you ran
  685. it separately and by hand. It also wasn't cleaning up its changes to
  686. the current Decimal context.
  687. - regrtest.py now has a -M option to run tests that test the new limits of
  688. containers, on 64-bit architectures. Running these tests is only sensible
  689. on 64-bit machines with more than two gigabytes of memory. The argument
  690. passed is the maximum amount of memory for the tests to use.
  691. Tools
  692. -----
  693. - Added the Python benchmark suite pybench to the Tools/ directory;
  694. contributed by Marc-Andre Lemburg.
  695. Documentation
  696. -------------
  697. - Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
  698. - PEP 343: Added Context Types section to the library reference
  699. and attempted to bring other PEP 343 related documentation into
  700. line with the implementation and/or python-dev discussions.
  701. - Bug #1337990: clarified that ``doctest`` does not support examples
  702. requiring both expected output and an exception.
  703. What's New in Python 2.5 alpha 1?
  704. =================================
  705. *Release date: 05-APR-2006*
  706. Core and builtins
  707. -----------------
  708. - PEP 338: -m command line switch now delegates to runpy.run_module
  709. allowing it to support modules in packages and zipfiles
  710. - On Windows, .DLL is not an accepted file name extension for
  711. extension modules anymore; extensions are only found if they
  712. end in .PYD.
  713. - Bug #1421664: sys.stderr.encoding is now set to the same value as
  714. sys.stdout.encoding.
  715. - __import__ accepts keyword arguments.
  716. - Patch #1460496: round() now accepts keyword arguments.
  717. - Fixed bug #1459029 - unicode reprs were double-escaped.
  718. - Patch #1396919: The system scope threads are reenabled on FreeBSD
  719. 5.4 and later versions.
  720. - Bug #1115379: Compiling a Unicode string with an encoding declaration
  721. now gives a SyntaxError.
  722. - Previously, Python code had no easy way to access the contents of a
  723. cell object. Now, a ``cell_contents`` attribute has been added
  724. (closes patch #1170323).
  725. - Patch #1123430: Python's small-object allocator now returns an arena to
  726. the system ``free()`` when all memory within an arena becomes unused
  727. again. Prior to Python 2.5, arenas (256KB chunks of memory) were never
  728. freed. Some applications will see a drop in virtual memory size now,
  729. especially long-running applications that, from time to time, temporarily
  730. use a large number of small objects. Note that when Python returns an
  731. arena to the platform C's ``free()``, there's no guarantee that the
  732. platform C library will in turn return that memory to the operating system.
  733. The effect of the patch is to stop making that impossible, and in tests it
  734. appears to be effective at least on Microsoft C and gcc-based systems.
  735. Thanks to Evan Jones for hard work and patience.
  736. - Patch #1434038: property() now uses the getter's docstring if there is
  737. no "doc" argument given. This makes it possible to legitimately use
  738. property() as a decorator to produce a read-only property.
  739. - PEP 357, patch 1436368: add an __index__ method to int/long and a matching
  740. nb_index slot to the PyNumberMethods struct. The slot is consulted instead
  741. of requiring an int or long in slicing and a few other contexts, enabling
  742. other objects (e.g. Numeric Python's integers) to be used as slice indices.
  743. - Fixed various bugs reported by Coverity's Prevent tool.
  744. - PEP 352, patch #1104669: Make exceptions new-style objects. Introduced the
  745. new exception base class, BaseException, which has a new message attribute.
  746. KeyboardInterrupt and SystemExit to directly inherit from BaseException now.
  747. Raising a string exception now raises a DeprecationWarning.
  748. - Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
  749. explicitly relative, using 'from .module import name' to mean 'from the same
  750. package as this module is in. Imports without dots still default to the
  751. old relative-then-absolute, unless 'from __future__ import
  752. absolute_import' is used.
  753. - Properly check if 'warnings' raises an exception (usually when a filter set
  754. to "error" is triggered) when raising a warning for raising string
  755. exceptions.
  756. - CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
  757. The name was removed from Include/code.h.
  758. - PEP 308: conditional expressions were added: (x if cond else y).
  759. - Patch 1433928:
  760. - The copy module now "copies" function objects (as atomic objects).
  761. - dict.__getitem__ now looks for a __missing__ hook before raising
  762. KeyError.
  763. - PEP 343: with statement implemented. Needs ``from __future__ import
  764. with_statement``. Use of 'with' as a variable will generate a warning.
  765. Use of 'as' as a variable will also generate a warning (unless it's
  766. part of an import statement).
  767. The following objects have __context__ methods:
  768. - The built-in file type.
  769. - The thread.LockType type.
  770. - The following types defined by the threading module:
  771. Lock, RLock, Condition, Semaphore, BoundedSemaphore.
  772. - The decimal.Context class.
  773. - Fix the encodings package codec search function to only search
  774. inside its own package. Fixes problem reported in patch #1433198.
  775. Note: Codec packages should implement and register their own
  776. codec search function. PEP 100 has the details.
  777. - PEP 353: Using ``Py_ssize_t`` as the index type.
  778. - ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
  779. info to each allocated block, since the ``Py_ssize_t`` changes (PEP 353)
  780. now allow Python to make use of memory blocks exceeding 2**32 bytes for
  781. some purposes on 64-bit boxes. A ``PYMALLOC_DEBUG`` build was limited
  782. to 4-byte allocations before.
  783. - Patch #1400181, fix unicode string formatting to not use the locale.
  784. This is how string objects work. u'%f' could use , instead of .
  785. for the decimal point. Now both strings and unicode always use periods.
  786. - Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
  787. configure would break checking curses.h.
  788. - Bug #959576: The pwd module is now builtin. This allows Python to be
  789. built on UNIX platforms without $HOME set.
  790. - Bug #1072182, fix some potential problems if characters are signed.
  791. - Bug #889500, fix line number on SyntaxWarning for global declarations.
  792. - Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
  793. - Support for converting hex strings to floats no longer works.
  794. This was not portable. float('0x3') now raises a ValueError.
  795. - Patch #1382163: Expose Subversion revision number to Python. New C API
  796. function Py_GetBuildNumber(). New attribute sys.subversion. Build number
  797. is now displayed in interactive prompt banner.
  798. - Implementation of PEP 341 - Unification of try/except and try/finally.
  799. "except" clauses can now be written together with a "finally" clause in
  800. one try statement instead of two nested ones. Patch #1355913.
  801. - Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
  802. now encodes backslash correctly.
  803. - Patch #1350409: Work around signal handling bug in Visual Studio 2005.
  804. - Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
  805. and long longs.
  806. - SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
  807. It was possible for dlerror() to return a NULL pointer, so
  808. it will now use a default error message in this case.
  809. - Replaced most Unicode charmap codecs with new ones using the
  810. new Unicode translate string feature in the builtin charmap
  811. codec; the codecs were created from the mapping tables available
  812. at ftp.unicode.org and contain a few updates (e.g. the Mac OS
  813. encodings now include a mapping for the Apple logo)
  814. - Added a few more codecs for Mac OS encodings
  815. - Sped up some Unicode operations.
  816. - A new AST parser implementation was completed. The abstract
  817. syntax tree is available for read-only (non-compile) access
  818. to Python code; an _ast module was added.
  819. - SF bug #1167751: fix incorrect code being produced for generator expressions.
  820. The following code now raises a SyntaxError: foo(a = i for i in range(10))
  821. - SF Bug #976608: fix SystemError when mtime of an imported file is -1.
  822. - SF Bug #887946: fix segfault when redirecting stdin from a directory.
  823. Provide a warning when a directory is passed on the command line.
  824. - Fix segfault with invalid coding.
  825. - SF bug #772896: unknown encoding results in MemoryError.
  826. - All iterators now have a Boolean value of True. Formerly, some iterators
  827. supported a __len__() method which evaluated to False when the iterator
  828. was empty.
  829. - On 64-bit platforms, when __len__() returns a value that cannot be
  830. represented as a C int, raise OverflowError.
  831. - test__locale is skipped on OS X < 10.4 (only partial locale support is
  832. present).
  833. - SF bug #893549: parsing keyword arguments was broken with a few format
  834. codes.
  835. - Changes donated by Elemental Security to make it work on AIX 5.3
  836. with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
  837. bug #105470: test_pwd fails on 64bit system (Opteron).
  838. - Changes donated by Elemental Security to make it work on HP-UX 11 on
  839. Itanium2 with HP's 64-bit compiler (SF patch #1225212).
  840. - Disallow keyword arguments for type constructors that don't use them
  841. (fixes bug #1119418).
  842. - Forward UnicodeDecodeError into SyntaxError for source encoding errors.
  843. - SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
  844. exceptions that cause a function to exit.
  845. - The implementation of set() and frozenset() was revised to use its
  846. own internal data structure. Memory consumption is reduced by 1/3
  847. and there are modest speed-ups as well. The API is unchanged.
  848. - SF bug #1238681: freed pointer is used in longobject.c:long_pow().
  849. - SF bug #1229429: PyObject_CallMethod failed to decrement some
  850. reference counts in some error exit cases.
  851. - SF bug #1185883: Python's small-object memory allocator took over
  852. a block managed by the platform C library whenever a realloc specified
  853. a small new size. However, there's no portable way to know then how
  854. much of the address space following the pointer is valid, so there's no
  855. portable way to copy data from the C-managed block into Python's
  856. small-object space without risking a memory fault. Python's small-object
  857. realloc now leaves such blocks under the control of the platform C
  858. realloc.
  859. - SF bug #1232517: An overflow error was not detected properly when
  860. attempting to convert a large float to an int in os.utime().
  861. - SF bug #1224347: hex longs now print with lowercase letters just
  862. like their int counterparts.
  863. - SF bug #1163563: the original fix for bug #1010677 ("thread Module
  864. Breaks PyGILState_Ensure()") broke badly in the case of multiple
  865. interpreter states; back out that fix and do a better job (see
  866. http://mail.python.org/pipermail/python-dev/2005-June/054258.html
  867. for a longer write-up of the problem).
  868. - SF patch #1180995: marshal now uses a binary format by default when
  869. serializing floats.
  870. - SF patch #1181301: on platforms that appear to use IEEE 754 floats,
  871. the routines that promise to produce IEEE 754 binary representations
  872. of floats now simply copy bytes around.
  873. - bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
  874. 278.
  875. - patch #1109424: int, long, float, complex, and unicode now check for the
  876. proper magic slot for type conversions when subclassed. Previously the
  877. magic slot was ignored during conversion. Semantics now match the way
  878. subclasses of str always behaved. int/long/float, conversion of an instance
  879. to the base class has been moved to the proper nb_* magic slot and out of
  880. PyNumber_*().
  881. Thanks Walter Drwald.
  882. - Descriptors defined in C with a PyGetSetDef structure, where the setter is
  883. NULL, now raise an AttributeError when attempting to set or delete the
  884. attribute. Previously a TypeError was raised, but this was inconsistent
  885. with the equivalent pure-Python implementation.
  886. - It is now safe to call PyGILState_Release() before
  887. PyEval_InitThreads() (note that if there is reason to believe there
  888. are multiple threads around you still must call PyEval_InitThreads()
  889. before using the Python API; this fix is for extension modules that
  890. have no way of knowing if Python is multi-threaded yet).
  891. - Typing Ctrl-C whilst raw_input() was waiting in a build with threads
  892. disabled caused a crash.
  893. - Bug #1165306: instancemethod_new allowed the creation of a method
  894. with im_class == im_self == NULL, which caused a crash when called.
  895. - Move exception finalisation later in the shutdown process - this
  896. fixes the crash seen in bug #1165761
  897. - Added two new builtins, any() and all().
  898. - Defining a class with empty parentheses is now allowed
  899. (e.g., ``class C(): pass`` is no longer a syntax error).
  900. Patch #1176012 added support to the 'parser' module and 'compiler' package
  901. (thanks to logistix for that added support).
  902. - Patch #1115086: Support PY_LONGLONG in structmember.
  903. - Bug #115