NEWS 31.2 KB
Newer Older
1 2
+++++++++++
Python News
3 4
+++++++++++

Anthony Baxter's avatar
Anthony Baxter committed
5 6
(editors: check NEWS.help for information about editing NEWS using ReST.)

Benjamin Peterson's avatar
Benjamin Peterson committed
7 8 9 10 11 12 13 14
What's New in Python 3.1 beta 1?
================================

*Release date: XXXX-XX-XX*

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

15 16 17 18 19
- The string.maketrans() function is deprecated; there is a new static method
  maketrans() on the bytes and bytearray classes.  This removes confusion about
  the types string.maketrans() is supposed to work with, and mirrors the
  methods available on the str class.

20 21 22
- Issue #2170: refactored xml.dom.minidom.normalize, increasing both
  its clarity and its speed.

23 24 25
- Issue #1113244: Py_XINCREF, Py_DECREF, Py_XDECREF: Add `do { ... } while (0)'
  to avoid compiler warnings.

Benjamin Peterson's avatar
Benjamin Peterson committed
26 27 28
Library
-------

29 30 31 32 33 34
- Issue #1161031: fix readwrite select flag handling: POLLPRI now
  results in a handle_expt_event call, not handle_read_event, and POLLERR
  and POLLNVAL now call handle_close, not handle_expt_event.  Also,
  dispatcher now has an 'ignore_log_types' attribute for suppressing
  log messages, which is set to 'warning' by default.

35 36 37
- Issue #2703: SimpleXMLRPCDispatcher.__init__: Provide default values for
  new arguments introduced in 2.5.

38 39 40 41 42 43
Extension Modules
-----------------

- Issue #5359: Readd the Berkley-DB detection code to allow _dbm be built
  using Berkley-DB.

Benjamin Peterson's avatar
Benjamin Peterson committed
44

45 46 47
What's New in Python 3.1 alpha 2?
=================================

Benjamin Peterson's avatar
Benjamin Peterson committed
48
*Release date: 2009-4-4*
49 50 51

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

53 54
- Implement PEP 378, Format Specifier for Thousands Separator, for
  integers.
55

Benjamin Peterson's avatar
Benjamin Peterson committed
56 57
- Issue #5666: Py_BuildValue's 'c' code should create byte strings.

58 59 60
- Issue #5499: The 'c' code for argument parsing functions now only accepts a
  byte, and the 'C' code only accepts a unicode character.

61 62 63
- Fix a problem in PyErr_NormalizeException that leads to "undetected errors"
  when hitting the recursion limit under certain circumstances.

64 65
- Issue #1665206: Remove the last eager import in _warnings.c and make it lazy.

66 67 68
- Fix a segfault when running test_exceptions with coverage, caused by
  insufficient checks in accessors of Exception.__context__.

69 70 71 72
- Issue #5604: non-ASCII characters in module name passed to
  imp.find_module() were converted to UTF-8 while the path is
  converted to the default filesystem encoding, causing nonsense.

73 74
- Issue #5126: str.isprintable() returned False for space characters.

75 76 77
- Issue #4865: On MacOSX /Library/Python/2.7/site-packages is added to
  the end sys.path, for compatibility with the system install of Python.

78 79 80 81 82
- Issue #4688: Add a heuristic so that tuples and dicts containing only
  untrackable objects are not tracked by the garbage collector. This can
  reduce the size of collections and therefore the garbage collection overhead
  on long-running programs, depending on their particular use of datatypes.

83 84 85 86
- Issue #5512: Rewrite PyLong long division algorithm (x_divrem) to
  improve its performance.  Long divisions and remainder operations
  are now between 50% and 150% faster.

87 88 89 90 91 92 93
- Issue #4258: Make it possible to use base 2**30 instead of base
  2**15 for the internal representation of integers, for performance
  reasons.  Base 2**30 is enabled by default on 64-bit machines.  Add
  --enable-big-digits option to configure, which overrides the
  default.  Add sys.int_info structseq to provide information about
  the internal format.

94 95 96 97
- Issue #4474: PyUnicode_FromWideChar now converts characters outside
  the BMP to surrogate pairs, on systems with sizeof(wchar_t) == 4
  and sizeof(Py_UNICODE) == 2.

98 99 100
- Issue #5237: Allow auto-numbered fields in str.format(). For
  example: '{} {}'.format(1, 2) == '1 2'.

101 102 103
- Issue #5392: when a very low recursion limit was set, the interpreter would
  abort with a fatal error after the recursion limit was hit twice.

104 105 106
- Issue #3845: In PyRun_SimpleFileExFlags avoid invalid memory access with
  short file names.

107 108 109
Library
-------

110
- Issue #2625: added missing items() call to the for loop in
111 112
  mailbox.MH.get_message().

113 114 115 116
- Issue #5640: Fix _multibytecodec so that CJK codecs don't repeat
  error substitutions from non-strict codec error callbacks in
  incrementalencoder and StreamWriter.

117 118 119
- Issue #5656: Fix the coverage reporting when running the test suite with
  the -T argument.

120 121
- Issue #5647: MutableSet.__iand__() no longer mutates self during iteration.

122 123
- Issue #5624: Fix the _winreg module name still used in several modules.

124 125
- Issue #5628: Fix io.TextIOWrapper.read() with a unreadable buffer.

126 127 128
- Issue #5619: Multiprocessing children disobey the debug flag and causes
  popups on windows buildbots. Patch applied to work around this issue.

129 130
- Issue #5400: Added patch for multiprocessing on netbsd compilation/support

131 132
- Issue #5387: Fixed mmap.move crash by integer overflow.

Jesse Noller's avatar
Jesse Noller committed
133 134 135
- Issue #5261: Patch multiprocessing's semaphore.c to support context
  manager use: "with multiprocessing.Lock()" works now.

136 137 138
- Issue #5236: Change time.strptime() to only take strings. Didn't work with
  bytes already but the failure was non-obvious.

Jesse Noller's avatar
Jesse Noller committed
139 140 141 142
- Issue #5177: Multiprocessing's SocketListener class now uses
  socket.SO_REUSEADDR on all connections so that the user no longer needs
  to wait 120 seconds for the socket to expire.

Benjamin Peterson's avatar
Benjamin Peterson committed
143 144
- Issue #5595: Fix UnboundedLocalError in ntpath.ismount().

145 146 147
- Issue #1174606: Calling read() without arguments of an unbounded file
  (typically /dev/zero under Unix) could crash the interpreter.

148 149 150
- The max_buffer_size arguments of io.BufferedWriter, io.BufferedRWPair, and
  io.BufferedRandom have been deprecated for removal in Python 3.2.

151 152 153 154 155
- Issue #5068: Fixed the tarfile._BZ2Proxy.read() method that would loop
  forever on incomplete input. That caused tarfile.open() to hang when used
  with mode 'r' or 'r:bz2' and a fileobj argument that contained no data or
  partial bzip2 compressed data.

156 157 158
- Issue #2110: Add support for thousands separator and 'n' type
  specifier to Decimal.__format__

159 160 161
- Fix Decimal.__format__ bug that swapped the meanings of the '<' and
  '>' alignment characters.

162 163 164
- The error detection code in FileIO.close() could fail to reflect the `errno`
  value, and report it as -1 instead.

165 166 167
- Issue #5016: FileIO.seekable() could return False if the file position
  was negative when truncated to a C int. Patch by Victor Stinner.

168 169 170
Extension Modules
-----------------

171 172
- Issue #5391: mmap now deals exclusively with bytes.

173 174
- Issue #5463: In struct module, remove deprecated overflow wrapping
  when packing an integer: struct.pack('=L', -1) now raises
175 176 177
  struct.error instead of returning b'\xff\xff\xff\xff'.  The
  _PY_STRUCT_RANGE_CHECKING and _PY_STRUCT_OVERFLOW_MASKING constants
  have been removed from the struct module.
178

179

Benjamin Peterson's avatar
Benjamin Peterson committed
180
What's New in Python 3.1 alpha 1
Barry Warsaw's avatar
Barry Warsaw committed
181
================================
Barry Warsaw's avatar
Barry Warsaw committed
182

Benjamin Peterson's avatar
Benjamin Peterson committed
183
*Release date: 2009-03-07*
Barry Warsaw's avatar
Barry Warsaw committed
184 185 186 187

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

188 189
- The io module has been reimplemented in C for speed.

190 191
- Give dict views an informative __repr__.

192 193 194
- Issue #5247: Improve error message when unknown format codes are
  used when using str.format() with str, int, and float arguments.

195 196 197
- Issue #5249: time.strftime returned malformed string when format string
  contained non ascii character on windows.

198 199 200
- Issue #4626: compile(), exec(), and eval() ignore the coding cookie if the
  source has already been decoded into str.

201 202 203
- Issue #5186: Reduce hash collisions for objects with no __hash__ method by
  rotating the object pointer by 4 bits to the right.

204 205 206
- Issue #4575: Fix Py_IS_INFINITY macro to work correctly on x87 FPUs:
  it now forces its argument to double before testing for infinity.

207 208 209
- Issue #5137: Make len() correctly raise a TypeError when a __len__ method
  returns a non-number type.

210 211
- Issue #5182: Removed memoryview.__str__.

212 213
- Issue #1717: Removed builtin cmp() function, dropped tp_compare
  slot, the C API functions PyObject_Compare and PyUnicode_Compare and
214 215
  the type definition cmpfunc.  The tp_compare slot has been renamed
  to tp_reserved, and is reserved for future usage.
216

217
- Issue #1242657: the __len__() and __length_hint__() calls in several tools
218 219
  were suppressing all exceptions.  These include list() and bytearray().

220 221 222
- Issue #4707: round(x, n) now returns an integer if x is an integer.
  Previously it returned a float.

223 224 225 226 227
- Issue #4753: By enabling a configure option named '--with-computed-gotos'
  on compilers that support it (notably: gcc, SunPro, icc), the bytecode
  evaluation loop is compiled with a new dispatch mechanism which gives
  speedups of up to 20%, depending on the system, on various benchmarks.

228 229
- Issue #4874: Most builtin decoders now reject unicode input.

230 231 232
- Issue #4842: Don't allow trailing 'L' when constructing an integer
  from a string.

233 234
- Issue #4991: os.fdopen now raises an OSError for invalid file descriptors.

235 236 237
- Issue #4838: When a module is deallocated, free the memory backing the
  optional module state data.

238 239 240
- Issue #4910: Rename nb_long slot to nb_reserved, and change its
  type to (void *).

241 242 243 244
- Issue #4935: The overflow checking code in the expandtabs() method common
  to str, bytes and bytearray could be optimized away by the compiler, letting
  the interpreter segfault instead of raising an error.

245 246 247
- Issue #3720: Fix a crash when an iterator modifies its class and removes its
  __next__ method.

248 249 250 251
- Issue #4910: Builtin int() function and PyNumber_Long/PyNumber_Int API
  function no longer attempt to call the __long__ slot to convert an object
  to an integer.  Only the __int__ and __trunc__ slots are examined.

252 253
- Issue #4893: Use NT threading on CE.

254 255
- Issue #4915: Port sysmodule to Windows CE.

256 257 258 259
- Issue #4868: utf-8, utf-16 and latin1 decoding are now 2x to 4x faster. The
  common cases are optimized thanks to a dedicated fast path and a moderate
  amount of loop unrolling.

260 261 262 263 264 265
- Issue #4074: Change the criteria for doing a full garbage collection (i.e.
  collecting the oldest generation) so that allocating lots of objects without
  destroying them does not show quadratic performance. Based on a proposal by
  Martin von Löwis at
  http://mail.python.org/pipermail/python-dev/2008-June/080579.html.

266
- Issue #4604: Some objects of the I/O library could still be used after
267 268 269
  having been closed (for instance, a read() call could return some
  previously buffered data). Patch by Dmitry Vasiliev.

270 271 272 273 274
- Issue #4705: Fix the -u ("unbuffered binary stdout and stderr") command-line
  flag to work properly. Furthermore, when specifying -u, the text stdout
  and stderr streams have line-by-line buffering enabled (the default being
  to buffer arbitrary chunks of data).

275 276 277 278
- The internal table, _PyLong_DigitValue, is now an array of unsigned chars
  instead of ints (reducing its size from 4 to 8 times thereby reducing
  Python's overall memory).

279 280 281 282 283 284
- Issue #1180193: When importing a module from a .pyc (or .pyo) file with
  an existing .py counterpart, override the co_filename attributes of all
  code objects if the original filename is obsolete (which can happen if the
  file has been renamed, moved, or if it is accessed through different paths).
  Patch by Ziga Seilnacht and Jean-Paul Calderone.

285 286 287 288
- Issue #4580: Fix slicing of memoryviews when the item size is greater than
  one byte. Also fixes the meaning of len() so that it returns the number of
  items, rather than the size in bytes.

289 290
- Issue #4075: Use OutputDebugStringW in Py_FatalError.

291 292 293
- Issue #4747: When the terminal does not use utf-8, executing a script with
  non-ascii characters in its name could fail with a "SyntaxError: None" error.

294
- Issue #4797: IOError.filename was not set when _fileio.FileIO failed to open
295
  file with `bytes' filename on Windows.
296

297 298 299
- Issue #3680: Reference cycles created through a dict, set or deque iterator
  did not get collected.

300 301 302
- Issue #4701: PyObject_Hash now implicitly calls PyType_Ready on types
  where the tp_hash and tp_dict slots are both NULL.

303 304 305
- Issue #4759: None is now allowed as the first argument of
  bytearray.translate().  It was always allowed for bytes.translate().

306 307 308
- Added test case to ensure attempts to read from a file opened for writing
  fail.

309 310
- Issue #3106: Speedup some comparisons (str/str and int/int).

311 312 313
- Issue #2183: Simplify and optimize bytecode for list, dict and set
  comprehensions. Original patch for list comprehensions by Neal Norwitz.

314 315 316 317
- Issue #2467: gc.DEBUG_STATS reported invalid elapsed times. Also, always
  print elapsed times, not only when some objects are uncollectable /
  unreachable. Original patch by Neil Schemenauer.

318 319
- Issue #3439: Add a bit_length method to int.

320 321 322 323
- Issue #2173: When getting device encoding, check that return value of
  nl_langinfo is not the empty string.  This was causing silent build
  failures on OS X.

324 325 326 327
- Issue #4597: Fixed several opcodes that weren't always propagating
  exceptions.

- Issue #4589: Fixed exception handling when the __exit__ function of a
328 329
  context manager returns a value that cannot be converted to a bool.

330 331 332 333 334
- Issue #4445: Replace "sizeof(PyBytesObject)" with
  "offsetof(PyBytesObject, ob_sval) + 1" when allocating memory for
  bytes instances.  On a typical machine this saves 3 bytes of memory
  (on average) per allocation of a bytes instance.

335 336 337 338
- Issue #4533: File read operation was dreadfully slow due to a slowly
  growing read buffer. Fixed by using the same growth rate algorithm as
  Python 2.x.

339 340 341
- Issue #4509: Various issues surrounding resize of bytearray objects to
  which there are buffer exports (e.g. memoryview instances).

342 343 344 345
- Issue #4233: Changed semantic of ``_fileio.FileIO``'s ``close()``
  method on file objects with closefd=False. The file descriptor is still
  kept open but the file object behaves like a closed file. The ``FileIO``
  object also got a new readonly attribute ``closefd``.
346

347 348 349
- Issue #4569: Interpreter crash when mutating a memoryview with an item size
  larger than 1.

350 351
- Issue #4748: Lambda generators no longer return a value.

352 353
- The re.sub(), re.subn() and re.split() functions now accept a flags parameter.

Barry Warsaw's avatar
Barry Warsaw committed
354 355
Library
-------
356

357 358
- Issue #5607: fixed Distutils test_get_platform for Mac OS X fat binaries.

359 360
- Issue #5732: added a new command in Distutils: check.

361 362 363
- Issue #5731: Distutils bdist_wininst no longer worked on non-Windows 
  platforms. Initial patch by Paul Moore.

364 365 366
- Issue #5095: Added bdist_msi to the list of bdist supported formats.
  Initial fix by Steven Bethard.

367 368 369
- Issue #1491431: Fixed distutils.filelist.glob_to_re for edge cases.
  Initial fix by Wayne Davison.

370
- Issue #5694: removed spurious test output in Distutils (test_clean).
371

372
- Issue #1326077: fix the formatting of SyntaxErrors by the traceback module.
373

374 375 376 377
- Issue #1665206 (partially): Move imports in cgitb to the top of the module
  instead of performing them in functions. Helps prevent import deadlocking in
  threads.

378 379 380 381
- Issue #2522: locale.format now checks its first argument to ensure it has
  been passed only one pattern, avoiding mysterious errors where it appeared
  that it was failing to do localization.

382 383 384
- Issue #5583: Added optional Extensions in Distutils. Initial patch by Georg
  Brandl.

385 386 387
- Issue #1222: locale.format() bug when the thousands separator is a space
  character.

388 389 390
- Issue #5472: Fixed distutils.test_util tear down. Original patch by
  Tim Golden.

391 392
- collections.deque() objects now have a read-only attribute called maxlen.

393 394 395 396
- Issue #2638: Show a window constructed with tkSimpleDialog.Dialog only after
  it is has been populated and properly configured in order to prevent
  window flashing.

397 398 399 400 401 402
- Issue #4792: Prevent a segfault in _tkinter by using the
  guaranteed to be safe interp argument given to the PythonCmd in place of
  the Tcl interpreter taken from a PythonCmd_ClientData.

- Issue #5193: Guarantee that tkinter.Text.search returns a string.

403 404 405
- Issue #5394: removed > 2.3 syntax from distutils.msvc9compiler.
  Original patch by Akira Kitada.

406 407
- Issue #5334: array.fromfile() failed to insert values when EOFError was raised.

408 409
- Issue #5385: Fixed mmap crash after resize failure on windows.

410 411
- Issue #5179: Fixed subprocess handle leak on failure on windows.

Raymond Hettinger's avatar
Raymond Hettinger committed
412 413
- PEP 372:  Added collections.OrderedDict().

414 415
- The _asdict() for method for namedtuples now returns an OrderedDict().

416 417
- configparser now defaults to using an ordered dictionary.

Benjamin Peterson's avatar
Benjamin Peterson committed
418 419 420
- Issue #5401: Fixed a performance problem in mimetypes when ``from mimetypes
  import guess_extension`` was used.

421 422 423
- Issue #1733986: Fixed mmap crash in accessing elements of second map object
  with same tagname but larger size than first map. (Windows)

424 425 426
- Issue #5386: mmap.write_byte didn't check map size, so it could cause buffer
  overrun.

427 428 429 430 431
- Issue #1533164: Installed but not listed *.pyo was breaking Distutils
  bdist_rpm command.

- Issue #5378: added --quiet option to Distutils bdist_rpm command.

432 433
- Issue #5052: make Distutils compatible with 2.3 again.

434 435
- Issue #5316: Fixed buildbot failures introduced by multiple inheritance
  in Distutils tests.
Barry Warsaw's avatar
Barry Warsaw committed
436

437 438 439
- Issue #5287: Add exception handling around findCaller() call to help out
  IronPython.

440 441 442 443 444
- Issue #5282: Fixed mmap resize on 32bit windows and unix. When offset > 0,
  The file was resized to wrong size.

- Issue #5292: Fixed mmap crash on its boundary access m[len(m)].

445
- Issue #2279: distutils.sdist.add_defaults now add files
446 447
  from the package_data and the data_files metadata.

448
- Issue #5257: refactored all tests in distutils, so they use
449 450
  support.TempdirManager, to avoid writing in the tests directory.

451 452 453
- Issue #4524: distutils build_script command failed with --with-suffix=3.
  Initial patch by Amaury Forgeot d'Arc.

454 455
- Issue #2461: added tests for distutils.util

456 457 458 459
- Issue #4998: The memory saving effect of __slots__ had been lost on Fractions
  which inherited from numbers.py which did not have __slots__ defined.  The
  numbers hierarchy now has its own __slots__ declarations.

460 461 462
- Issue #4631: Fix urlopen() result when an HTTP response uses chunked
  encoding.

463 464 465
- Issue #5203: Fixed ctypes segfaults when passing a unicode string to a
  function without argtypes (only occurs if HAVE_USABLE_WCHAR_T is false).

466 467 468
- Issue #3386: distutils.sysconfig.get_python_lib prefix argument was ignored
  under NT and OS2. Patch by Philip Jenvey.

469 470 471 472
- Issue #5128: Make compileall properly inspect bytecode to determine if needs
  to be recreated. This avoids a timing hole thanks to the old reliance on the
  ctime of the files involved.

473 474 475
- Issue #5122: Synchronize tk load failure check to prevent a potential
  deadlock.

476 477 478 479
- Issue #1818: collections.namedtuple() now supports a keyword argument
  'rename' which lets invalid fieldnames be automatically converted to
  positional names in the form, _1, _2, ...

480 481
- Issue #4890: Handle empty text search pattern in Tkinter.Text.search.

482 483 484
- Issue #4512 (part 2): Promote ``ZipImporter._get_filename()`` to be a
  public documented method ``ZipImporter.get_filename()``.

485 486 487 488 489
- Issue #4195: The ``runpy`` module (and the ``-m`` switch) now support
  the execution of packages by looking for and executing a ``__main__``
  submodule when a package name is supplied. Initial patch by Andi
  Vajda.

490 491 492 493 494
- Issue #1731706: Call Tcl_ConditionFinalize for Tcl_Conditions that will
  not be used again (this requires Tcl/Tk 8.3.1), also fix a memory leak in
  Tkapp_Call when calling from a thread different than the one that created
  the Tcl interpreter. Patch by Robert Hancock.

495 496 497
- Issue #4285: Change sys.version_info to be a named tuple. Patch by
  Ross Light.

498
- Issue #1520877: Now distutils.sysconfig reads $AR from the
499 500
  environment/Makefile. Patch by Douglas Greiman.

501 502 503
- Issue #1276768: The verbose option was not used in the code of
  distutils.file_util and distutils.dir_util.

504
- Issue #5132: Fixed trouble building extensions under Solaris with
505 506
  --enabled-shared activated. Initial patch by Dave Peterson.

507 508
- Issue #1581476: Always use the Tcl global namespace when calling into Tcl.

509 510
- The shelve module now defaults to pickle protocol 3.

511 512 513
- Fix a bug in the trace module where a bytes object from co_lnotab had its
  items being passed through ord().

514 515 516 517
- Issue #2047: shutil.move() could believe that its destination path was
  inside its source path if it began with the same letters (e.g. "src" vs.
  "src.new").

518 519
- Added the ttk module. See issue #2983: Ttk support for Tkinter.

520 521 522 523
- Removed isSequenceType(), isMappingType, and isNumberType() from the
  operator module; use the abstract base classes instead.  Also removed
  the repeat() function; use mul() instead.

524
- Issue #5021:  doctest.testfile() did not create __name__ and
525 526 527 528 529
  collections.namedtuple() relied on __name__ being defined.

- Backport importlib from Python 3.1. Only the import_module() function has
  been backported to help facilitate transitions from 2.7 to 3.1.

530 531 532
- Issue #1885: distutils. When running sdist with --formats=tar,gztar
  the tar file was overriden by the gztar one.

533 534
- Issue #4863: distutils.mwerkscompiler has been removed.

535 536
- Added a new itertools functions:  combinations_with_replacement()
  and compress().
537

538
- Issue #5032:  added a step argument to itertools.count() and
539 540
  allowed non-integer arguments.

Jesse Noller's avatar
Jesse Noller committed
541 542 543 544
- Fix and properly document the multiprocessing module's logging
  support, expose the internal levels and provide proper usage
  examples.

545 546 547
- Issue #1672332: fix unpickling of subnormal floats, which was
  producing a ValueError on some platforms.

548 549 550
- Issue #3881: Help Tcl to load even when started through the
  unreadable local symlink to "Program Files" on Vista.

551 552 553
- Issue #4710: Extract directories properly in the zipfile module;
  allow adding directories to a zipfile.

554
- Issue #3807: _multiprocessing build fails when configure is passed
Jesse Noller's avatar
Jesse Noller committed
555 556 557
  --without-threads argument. When this occurs, _multiprocessing will
  be disabled, and not compiled.

558 559 560 561 562
- Issue #5008: When a file is opened in append mode with the new IO library,
  do an explicit seek to the end of file (so that e.g. tell() returns the
  file size rather than 0). This is consistent with the behaviour of the
  traditional 2.x file object.

563 564 565
- Issue #5013: Fixed a bug in FileHandler which occurred when the delay
  parameter was set.

566 567 568
- Issue #4842: Always append a trailing 'L' when pickling longs using
  pickle protocol 0.  When reading, the 'L' is optional.

569 570
- Add the importlib package.

Jesse Noller's avatar
Jesse Noller committed
571 572 573
- Issue #4301: Patch the logging module to add processName support, remove
  _check_logger_class from multiprocessing.

574
- Issue #3325: Remove python2.x try: except: imports for old cPickle from
575
  multiprocessing.
576

577 578 579
- Issue #4959: inspect.formatargspec now works for keyword only arguments
  without defaults.

Jesse Noller's avatar
Jesse Noller committed
580 581 582 583
- Issue #3321: _multiprocessing.Connection() doesn't check handle; added checks
  for *nix machines for negative handles and large int handles. Without this check
  it is possible to segfault the interpreter.

584 585 586 587 588 589
- Issue #4449: AssertionError in mp_benchmarks.py, caused by an underlying issue
  in sharedctypes.py.

- Issue #1225107: inspect.isclass() returned True for instances with a custom
  __getattr__.

590 591 592 593
- Issue #3826 and #4791: The socket module now closes the underlying socket
  appropriately when it is being used via socket.makefile() objects
  rather than delaying the close by waiting for garbage collection to do it.

594 595 596
- Issue #1696199:  Add collections.Counter() for rapid and convenient
  counting.

597 598
- Issue #3860: GzipFile and BZ2File now support the context manager protocol.

599 600 601
- Issue #4867: Fixed a crash in ctypes when passing a string to a
  function without defining argtypes.

602 603 604 605 606
- Issue #4272: Add an optional argument to the GzipFile constructor to override
  the timestamp in the gzip stream. The default value remains the current time.
  The information can be used by e.g. gunzip when decompressing. Patch by
  Jacques Frechet.

607 608
- Restore Python 2.3 compatibility for decimal.py.

609 610 611
- Issue #3638: Remove functions from _tkinter module level that depend on
  TkappObject to work with multiple threads.

612 613
- Issue #4718: Adapt the wsgiref package so that it actually works with
  Python 3.x, in accordance with the `official amendments of the spec
614 615
  <http://www.wsgi.org/wsgi/Amendments_1.0>`_.

616 617 618
- Issue #4796: Added Decimal.from_float() and Context.create_decimal_from_float()
  to the decimal module.

619 620 621
- Fractions.from_float() no longer loses precision for integers too big to
  cast as floats.

622 623 624
- Issue #4812: add missing underscore prefix to some internal-use-only
  constants in the decimal module.  (Dec_0 becomes _Dec_0, etc.)

625
- Issue #4790: The nsmallest() and nlargest() functions in the heapq module
626 627
  did unnecessary work in the common case where no key function was specified.

628 629 630
- Issue #4795: inspect.isgeneratorfunction() returns False instead of None when
  the function is not a generator.

631 632
- Issue #4702: Throwing a DistutilsPlatformError instead of IOError in case
  no MSVC compiler is found under Windows. Original patch by Philip Jenvey.
633

634
- Issue #4646: distutils was choking on empty options arg in the setup
635 636
  function. Original patch by Thomas Heller.

637 638
- Issue #3767: Convert Tk object to string in tkColorChooser.

639 640
- Issue #3248: Allow placing ScrolledText in a PanedWindow.

641 642 643
- Issue #4444: Allow assertRaises() to be used as a context handler, so that
  the code under test can be written inline if more practical.

644 645 646
- Issue #4739: Add pydoc help topics for symbols, so that e.g. help('@')
  works as expected in the interactive environment.

647 648 649
- Issue #4756: zipfile.is_zipfile() now supports file-like objects. Patch by
  Gabriel Genellina.

650 651 652
- Issue #4574: reading an UTF16-encoded text file crashes if \r on 64-char
  boundary.

653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671
- Issue #4223: inspect.getsource() will now correctly display source code
  for packages loaded via zipimport (or any other conformant PEP 302
  loader). Original patch by Alexander Belopolsky.

- Issue #4201: pdb can now access and display source code loaded via
  zipimport (or any other conformant PEP 302 loader). Original patch by
  Alexander Belopolsky.

- Issue #4197: doctests in modules loaded via zipimport (or any other PEP
  302 conformant loader) will now work correctly in most cases (they
  are still subject to the constraints that exist for all code running
  from inside a module loaded via a PEP 302 loader and attempting to
  perform IO operations based on __file__). Original patch by
  Alexander Belopolsky.

- Issues #4082 and #4512: Add runpy support to zipimport in a manner that
  allows backporting to maintenance branches. Original patch by
  Alexander Belopolsky.

672 673 674
- Issue #4163: textwrap module: allow word splitting on a hyphen preceded by
  a non-ASCII letter.

675 676
- Issue #4616: TarFile.utime(): Restore directory times on Windows.

677 678 679
- Issue #4021: tokenize.detect_encoding() now raises a SyntaxError when the
  codec cannot be found.  This is for compatibility with the builtin behavior.

680 681 682 683
- Issue #4084: Fix max, min, max_mag and min_mag Decimal methods to
  give correct results in the case where one argument is a quiet NaN
  and the other is a finite number that requires rounding.

684 685 686
- Issue #4483: _dbm module now builds on systems with gdbm & gdbm_compat
  libs.

687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702
- Added the subprocess.check_call_output() convenience function to get output
  from a subprocess on success or raise an exception on error.

- Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
  support unusual filenames (such as those containing semi-colons) in
  Content-Disposition headers.

- Issue #4384: Added logging integration with warnings module using
  captureWarnings(). This change includes a NullHandler which does nothing;
  it will be of use to library developers who want to avoid the "No handlers
  could be found for logger XXX" message which can appear if the library user
  doesn't configure logging.

- Issue #3741: DISTUTILS_USE_SDK set causes msvc9compiler.py to raise an
  exception.

703 704 705 706 707 708 709 710 711
- Issue #4529: fix the parser module's validation of try-except-finally
  statements.

- Issue #4458: getopt.gnu_getopt() now recognizes a single "-" as an argument,
  not a malformed option.

- Added the subprocess.check_output() convenience function to get output
  from a subprocess on success or raise an exception on error.

712 713 714
- Issue #4542: On Windows, binascii.crc32 still accepted str as binary input;
  the corresponding tests now pass.

715 716 717
- Issue #4537: webbrowser.UnixBrowser would fail to open the browser because
  it was calling the wrong open() function.

718 719 720 721
- Issue #1055234: cgi.parse_header(): Fixed parsing of header parameters to
  support unusual filenames (such as those containing semi-colons) in
  Content-Disposition headers.

722 723 724
- Issue #4861: ctypes.util.find_library(): Robustify. Fix library detection on
  biarch systems. Try to rely on ldconfig only, without using objdump and gcc.

Benjamin Peterson's avatar
Benjamin Peterson committed
725 726 727 728
- Issue #5104: The socket module now raises OverflowError when 16-bit port and
  protocol numbers are supplied outside the allowed 0-65536 range on bind()
  and getservbyport().

729 730 731
Tools/Demos
-----------

732 733 734
- Issue #4704: remove use of cmp() in pybench, bump its version number to 2.1,
  and make it 2.6-compatible.

735 736
- Ttk demos added in Demo/tkinter/ttk/

737 738
- Issue #4677: add two list comprehension tests to pybench.

739 740 741 742

Build
-----

743 744
- Link the shared python library with $(MODLIBS).

745 746
- Issue #5134: Silence compiler warnings when compiling sqlite with VC++.

747 748
- Issue #4494: Fix build with Py_NO_ENABLE_SHARED on Windows.

749 750
- Issue #4895: Use _strdup on Windows CE.

751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774
- Issue #4472: "configure --enable-shared" now works on OSX

- Issues #4728 and #4060: WORDS_BIGEDIAN is now correct in Universal builds.

- Issue #4389: Add icon to the uninstall entry in "add-and-remove-programs".

- Issue #4289: Remove Cancel button from AdvancedDlg.

- Issue #1656675: Register a drop handler for .py* files on Windows.

- Issue #4120: Exclude manifest from extension modules in VS2008.

- Issue #4091: Install pythonxy.dll in system32 again.

- Issue #4018: Disable "for me" installations on Vista.

- Issue #3758: Add ``patchcheck`` build target to .PHONY.

- Issue #4204: Fixed module build errors on FreeBSD 4.


C-API
-----

775 776 777
- Issue #5175: PyLong_AsUnsignedLongLong now raises OverflowError
  for negative arguments.  Previously, it raised TypeError.

778 779 780 781 782 783 784 785 786
- Issue #4720: The format for PyArg_ParseTupleAndKeywords can begin with '|'.

- Issue #3632: from the gdb debugger, the 'pyo' macro can now be called when
  the GIL is released, or owned by another thread.

- Issue #4122: On Windows, fix a compilation error when using the
  Py_UNICODE_ISSPACE macro in an extension module.


787 788 789
Extension Modules
-----------------

790 791 792 793
- Issue #3745: Fix hashlib to always reject unicode and non buffer-api
  supporting objects as input no matter how it was compiled (built in
  implementations or external openssl library).

794 795
- Issue #4397: Fix occasional test_socket failure on OS X.

796 797
- Issue #4279: Fix build of parsermodule under Cygwin.

798 799 800 801
- Issue #4751: hashlib now releases the GIL when hashing large buffers
  (with a hardwired threshold of 2048 bytes), allowing better parallelization
  on multi-CPU systems. Contributed by Lukas Lueg (ebfe) and Victor Stinner.

802 803
- Issue #4051: Prevent conflict of UNICODE macros in cPickle.

804 805 806 807
- Issue #4738: Each zlib object now has a separate lock, allowing to compress
  or decompress several streams at once on multi-CPU systems. Also, the GIL
  is now released when computing the CRC of a large buffer. Patch by ebfe.

808 809
- Issue #4228: Pack negative values the same way as 2.4 in struct's L format.

810 811
- Issue #1040026: Fix os.times result on systems where HZ is incorrect.

812 813
- Issues #3167, #3682: Fix test_math failures for log, log10 on Solaris,
  OpenBSD.
814

815 816 817 818
- Issue #4583: array.array would not always prohibit resizing when a buffer
  has been exported, resulting in an interpreter crash when accessing the
  buffer.

819

820 821
- Issue #5228: Make functools.partial objects can now be pickled.

822 823 824
Tests
-----

825 826 827 828
- regrtest no longer treats ImportError as equivalent to SkipTest.  Imports
  that should cause a test to be skipped are now done using import_module 
  from test support, which does the conversion.

829 830 831
- Issue #5083: New 'gui' resource for regrtest.


832 833 834
Docs
----

835

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