From: Matthias Klose Date: Sun, 21 Oct 2012 21:12:35 +0000 (+0200) Subject: - Issue #16262: fix out-of-src-tree builds, if mercurial is not installed. X-Git-Tag: v3.3.1rc1~760 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=aee3c76acf068b5f7b3f709c42b8bbefbce0d84b;p=python - Issue #16262: fix out-of-src-tree builds, if mercurial is not installed. --- aee3c76acf068b5f7b3f709c42b8bbefbce0d84b diff --cc Misc/NEWS index fe62aabb6d,5438245ba4..7af66af1a2 --- a/Misc/NEWS +++ b/Misc/NEWS @@@ -71,121 -183,3278 +71,123 @@@ Librar - Issue #16112: platform.architecture does not correctly escape argument to /usr/bin/file. Patch by David Benjamin. -- Issue #12776,#11839: call argparse type function (specified by add_argument) - only once. Before, the type function was called twice in the case where the - default was specified and the argument was given as well. This was - especially problematic for the FileType type, as a default file would always - be opened, even if a file argument was specified on the command line. - -- Issue #15906: Fix a regression in argparse caused by the preceding change, - when action='append', type='str' and default=[]. - -- Issue #13370: Ensure that ctypes works on Mac OS X when Python is - compiled using the clang compiler - -- Issue #15544: Fix Decimal.__float__ to work with payload-carrying NaNs. +- Issue #15756: `subprocess.poll()` now properly handles `errno.ECHILD` to + return a returncode of 0 when the child has already exited or cannot be waited + on. -- Issue #15249: BytesGenerator now correctly mangles From lines (when - requested) even if the body contains undecodable bytes. +- Issue #15323: Improve failure message of `Mock.assert_called_once_with()`. -- Issue #15777: Fix a refleak in _posixsubprocess. +- Issue #16064: ``unittest -m`` claims executable is "python", not "python3". -- Issue #15199: Fix JavaScript's default MIME type to application/javascript. - Patch by Bohuslav Kabrda. +- Issue #12376: Pass on parameters in `TextTestResult.__init__()` super call. -- Issue #13579: string.Formatter now understands the 'a' conversion specifier. +- Issue #15222: Insert blank line after each message in mbox mailboxes. -- Issue #15793: Stack corruption in ssl.RAND_egd(). +- Issue #16013: Fix `csv.Reader` parsing issue with ending quote characters. Patch by Serhiy Storchaka. -- Issue #15595: Fix subprocess.Popen(universal_newlines=True) - for certain locales (utf-16 and utf-32 family). Patch by Chris Jerdonek. - -- Issue #15477: In cmath and math modules, add workaround for platforms whose - system-supplied log1p function doesn't respect signs of zeros. - -- Issue #11062: Fix adding a message from file to Babyl mailbox. - -- Issue #15646: Prevent equivalent of a fork bomb when using - multiprocessing on Windows without the "if __name__ == '__main__'" - idiom. - -- Issue #15424: Add a __sizeof__ implementation for array objects. - Patch by Ludwig Hähne. +- Issue #15421: Fix an OverflowError in `Calendar.itermonthdates()` after + `datetime.MAXYEAR`. Patch by Cédric Krier. -- Issue #13052: Fix IDLE crashing when replace string in Search/Replace dialog - ended with '\'. Patch by Roger Serwy. - -- Issue #15538: Fix compilation of the getnameinfo() / getaddrinfo() - emulation code. Patch by Philipp Hagemeister. - -- Issue #9803: Don't close IDLE on saving if breakpoint is open. - Patch by Roger Serwy. +- Issue #15970: `xml.etree.ElementTree` now serializes correctly the empty HTML + elements 'meta' and 'param'. -- Issue #12288: Consider '0' and '0.0' as valid initialvalue - for tkinter SimpleDialog. +- Issue #15842: The `SocketIO.{readable,writable,seekable}` methods now raise + ValueError when the file-like object is closed. Patch by Alessandro Moura. -- Issue #15512: Add a __sizeof__ implementation for parser. - Patch by Serhiy Storchaka. +- Issue #15876: Fix a refleak in the `curses` module: window.encoding. -- Issue #15469: Add a __sizeof__ implementation for deque objects. - Patch by Serhiy Storchaka. +- Issue #15881: Fix `atexit` hook in `multiprocessing`. Original patch by Chris + McDonough. -- Issue #15489: Add a __sizeof__ implementation for BytesIO objects. - Patch by Serhiy Storchaka. +- Issue #15841: The readable(), writable() and seekable() methods of + `io.BytesIO` and `io.StringIO` objects now raise ValueError when the object + has been closed. Patch by Alessandro Moura. -- Issue #15487: Add a __sizeof__ implementation for buffered I/O objects. +- Issue #16126: PyErr_Format format mismatch in _testcapimodule.c. Patch by Serhiy Storchaka. -- Issue #6056: Make multiprocessing use setblocking(True) on the - sockets it uses. Original patch by J Derek Wilson. - -- Issue #15041: update "see also" list in tkinter documentation. - -- Issue #15402: An issue in the struct module that caused sys.getsizeof to - return incorrect results for struct.Struct instances has been fixed. - Initial patch by Serhiy Storchaka. - -- Issue #15232: when mangle_from is True, email.Generator now correctly mangles - lines that start with 'From ' that occur in a MIME preamble or epilogue. - -- Issue #13922: argparse no longer incorrectly strips '--'s that appear - after the first one. - -- Issue #12353: argparse now correctly handles null argument values. - -- Issues #10017 and #14998: Fix TypeError using pprint on dictionaries with - user-defined types as keys or other unorderable keys. - -- Issue #14635: telnetlib will use poll() rather than select() when possible - to avoid failing due to the select() file descriptor limit. - -- Issue #15180: Clarify posixpath.join() error message when mixing str & bytes - -- Issue #15230: runpy.run_path now correctly sets __package__ as described - in the documentation - -- Issue #14990: Correctly fail with SyntaxError on invalid encoding - declaration. - -- Issue #15247: FileIO now raises an error when given a file descriptor - pointing to a directory. - -- Issue #5346: Preserve permissions of mbox, MMDF and Babyl mailbox - files on flush(). - -- Issue #10571: Fix the "--sign" option of distutils' upload command. - Patch by Jakub Wilk. - -- Issue #9559: If messages were only added, a new file is no longer - created and renamed over the old file when flush() is called on an - mbox, MMDF or Babyl mailbox. - -- Issue #14653: email.utils.mktime_tz() no longer relies on system - mktime() when timezone offest is supplied. - -- Fix GzipFile's handling of filenames given as bytes objects. - -- Issue #15101: Make pool finalizer avoid joining current thread. - -- Issue #15036: Mailbox no longer throws an error if a flush is done - between operations when removing or changing multiple items in mbox, - MMDF, or Babyl mailboxes. - -- Issue #10133: Make multiprocessing deallocate buffer if socket read - fails. Patch by Hallvard B Furuseth. - -- Issue #13854: Make multiprocessing properly handle non-integer - non-string argument to SystemExit. - -- Issue #12157: Make pool.map() empty iterables correctly. Initial - patch by mouad. - -- Issue #14992: os.makedirs(path, exist_ok=True) would raise an OSError - when the path existed and had the S_ISGID mode bit set when it was - not explicitly asked for. This is no longer an exception as mkdir - cannot control if the OS sets that bit for it or not. - -- Issue #14962: Update text coloring in IDLE shell window after changing - options. Patch by Roger Serwy. - -- Issue #10997: Prevent a duplicate entry in IDLE's "Recent Files" menu. - -- Issue #14443: Tell rpmbuild to use the correct version of Python in - bdist_rpm. Initial patch by Ross Lagerwall. - -- Issue #14929: Stop Idle 3.x from closing on Unicode decode errors when - grepping. Patch by Roger Serwy. - -- Issue #12510: Attempting to get invalid tooltip no longer closes Idle. - Other tooltipss have been corrected or improved and the number of tests - has been tripled. Original patch by Roger Serwy. - -- Issue #10365: File open dialog now works instead of crashing even when - the parent window is closed before the dialog. Patch by Roger Serwy. - -- Issue #14876: Use user-selected font for highlight configuration. - -- Issue #14920: Fix the help(urllib.parse) failure on locale C on terminals. - Have ascii characters in help. - -- Issue #14863: Update the documentation of os.fdopen() to reflect the - fact that it's only a thin wrapper around open() anymore. - -- Issue #14036: Add an additional check to validate that port in urlparse does - not go in illegal range and returns None. - -- Issue #14875: Use float('inf') instead of float('1e66666') in the json module. - -- Issue #14426: Correct the Date format in Expires attribute of Set-Cookie - Header in Cookie.py. - -- Issue #14721: Send the correct 'Content-length: 0' header when the body is an - empty string ''. Initial Patch contributed by Arve Knudsen. - -- Issue #14072: Fix parsing of 'tel' URIs in urlparse by making the check for - ports stricter. - -- Issue #9374: Generic parsing of query and fragment portions of url for any - scheme. Supported both by RFC3986 and RFC2396. - -- Issue #14798: Fix the functions in pyclbr to raise an ImportError - when the first part of a dotted name is not a package. Patch by - Xavier de Gaye. - -- Issue #14829: Fix bisect and range() indexing with large indices - (>= 2 ** 32) under 64-bit Windows. - -- Issue #14777: tkinter may return undecoded UTF-8 bytes as a string when - accessing the Tk clipboard. Modify clipboad_get() to first request type - UTF8_STRING when no specific type is requested in an X11 windowing - environment, falling back to the current default type STRING if that fails. - Original patch by Thomas Kluyver. - -- Issue #12541: Be lenient with quotes around Realm field of HTTP Basic - Authentation in urllib2. - -- Issue #14662: Prevent shutil failures on OS X when destination does not - support chflag operations. Patch by Hynek Schlawack. - -- Issue #14157: Fix time.strptime failing without a year on February 29th. - Patch by Hynek Schlawack. +- Issue #15447: Use `subprocess.DEVNULL` in webbrowser, instead of opening + `os.devnull` explicitly and leaving it open. -- Issue #14768: os.path.expanduser('~/a') doesn't works correctly when HOME is '/'. +- Issue #15509: `webbrowser.UnixBrowser` no longer passes empty arguments to + Popen when ``%action`` substitutions produce empty strings. -- Issue #14741: Fix missing support for Ellipsis ('...') in parser module. +- Issue #12776, issue #11839: Call `argparse` type function (specified by + add_argument) only once. Before, the type function was called twice in the + case where the default was specified and the argument was given as well. This + was especially problematic for the FileType type, as a default file would + always be opened, even if a file argument was specified on the command line. -- Issue #14697: Fix missing support for set displays and set comprehensions in - parser module. +- Issue #15906: Fix a regression in `argparse` caused by the preceding change, + when ``action='append'``, ``type='str'`` and ``default=[]``. -- Issue #14701: Fix missing support for 'raise ... from' in parser module. +Tests +----- -- Issue #13183: Fix pdb skipping frames after hitting a breakpoint and running - step. Patch by Xavier de Gaye. +- Issue #16115: Add some tests for the executable argument to + subprocess.Popen(). Initial patch by Kushal Das. -- Issue #14696: Fix parser module to understand 'nonlocal' declarations. +- Issue #15304: Fix warning message when `os.chdir()` fails inside + `test.support.temp_cwd()`. Patch by Chris Jerdonek. -- Issue #10941: Fix imaplib.Internaldate2tuple to produce correct result near - the DST transition. Patch by Joe Peterson. +- Issue #15802: Fix test logic in `TestMaildir.test_create_tmp()`. Patch by + Serhiy Storchaka. -- Issue #9154: Fix parser module to understand function annotations. +- Issue #15557: Add a test suite for the `webbrowser` module, thanks to Anton + Barkovsky. -- Issue #14664: It is now possible to use @unittest.skip{If,Unless} on a - test class that doesn't inherit from TestCase (i.e. a mixin). +Build +----- -- Issue #14160: TarFile.extractfile() failed to resolve symbolic links when - the links were not located in an archive subdirectory. ++- Issue #16262: fix out-of-src-tree builds, if mercurial is not installed. + -- Issue #14638: pydoc now treats non-string __name__ values as if they - were missing, instead of raising an error. - -- Issue #13684: Fix httplib tunnel issue of infinite loops for certain sites - which send EOF without trailing \r\n. - -- Issue #14629: Raise SyntaxError in tokenizer.detect_encoding if the - first two lines have non-UTF-8 characters without an encoding declaration. - -- Issue #14308: Fix an exception when a "dummy" thread is in the threading - module's active list after a fork(). - -- Issue #14538: HTMLParser can now parse correctly start tags that contain - a bare '/'. - -- Issue #14452: SysLogHandler no longer inserts a UTF-8 BOM into the message. - -- Issue #13496: Fix potential overflow in bisect.bisect algorithm when applied - to a collection of size > sys.maxsize / 2. - -- Issue #14399: zipfile now recognizes that the archive has been modified even - if only the comment is changed. In addition, the TypeError that results from - trying to set a non-binary value as a comment is now now raised at the time - the comment is set rather than at the time the zipfile is written. - -- Issue #7978: socketserver now restarts the select() call when EINTR is - returned. This avoids crashing the server loop when a signal is received. - Patch by Jerzy Kozera. - -- Issue #14496: Fix wrong name in idlelib/tabbedpages.py. - Patch by Popa Claudiu. - -- Issue #14482: Raise a ValueError, not a NameError, when trying to create - a multiprocessing Client or Listener with an AF_UNIX type address under - Windows. Patch by Popa Claudiu. - -- Issue #14151: Raise a ValueError, not a NameError, when trying to create - a multiprocessing Client or Listener with an AF_PIPE type address under - non-Windows platforms. Patch by Popa Claudiu. - -- Issue #13872: socket.detach() now marks the socket closed (as mirrored - in the socket repr()). Patch by Matt Joiner. - -- Issue #14406: Fix a race condition when using ``concurrent.futures.wait( - return_when=ALL_COMPLETED)``. Patch by Matt Joiner. - -- Issue #14409: IDLE now properly executes commands in the Shell window - when it cannot read the normal config files on startup and - has to use the built-in default key bindings. - There was previously a bug in one of the defaults. - -- Issue #10340: asyncore - properly handle EINVAL in dispatcher constructor on - OSX; avoid to call handle_connect in case of a disconnected socket which - was not meant to connect. - -- Issue #12757: Fix the skipping of doctests when python is run with -OO so - that it works in unittest's verbose mode as well as non-verbose mode. - -- Issue #3573: IDLE hangs when passing invalid command line args - (directory(ies) instead of file(s)) (Patch by Guilherme Polo) - -- Issue #13694: asynchronous connect in asyncore.dispatcher does not set addr - attribute. - -- Issue #11686: Added missing entries to email package __all__ lists - (mostly the new Bytes classes). - -- Issue #10484: Fix the CGIHTTPServer's PATH_INFO handling problem. - -- Issue #11199: Fix the with urllib which hangs on particular ftp urls. - -- Issue #14062: Header objects now correctly respect the 'linesep' setting - when processed by BytesParser (which smtplib.SMTP.send_message uses). - -- Issue #14291: Email now defaults to utf-8 for non-ASCII unicode headers - instead of raising an error. This fixes a regression relative to 2.7. - -- Issue #5219: Prevent event handler cascade in IDLE. - -- Issue #14184: Increase the default stack size for secondary threads on - Mac OS X to avoid interpreter crashes when using threads on 10.7. - -- Issue #10543: Fix unittest test discovery with Jython bytecode files. - -- Issue #14252: Fix subprocess.Popen.terminate() to not raise an error under - Windows when the child process has already exited. - -- Issue #14195: An issue that caused weakref.WeakSet instances to incorrectly - return True for a WeakSet instance 'a' in both 'a < a' and 'a > a' has been - fixed. - -- Issue #14177: marshal.loads() now raises TypeError when given an unicode - string. Patch by Guilherme Gonçalves. - -- Issue #14159: Fix the len() of weak containers (WeakSet, WeakKeyDictionary, - WeakValueDictionary) to return a better approximation when some objects - are dead or dying. Moreover, the implementation is now O(1) rather than - O(n). - -- Issue #13125: Silence spurious test_lib2to3 output when in non-verbose mode. - Patch by Mikhail Novikov. - -- Issue #13447: Add a test file to host regression tests for bugs in the - scripts found in the Tools directory. - -- Issue #8033: sqlite3: Fix 64-bit integer handling in user functions - on 32-bit architectures. Initial patch by Philippe Devalkeneer. - -Extension Modules ------------------ - -- Issue #16012: Fix a regression in pyexpat. The parser's UseForeignDTD() - method doesn't require an argument again. - -- Issue #15676: Now "mmap" check for empty files before doing the - offset check. Patch by Steven Willis. - -- Issue #6493: An issue in ctypes on Windows that caused structure bitfields - of type ctypes.c_uint32 and width 32 to incorrectly be set has been fixed. - -- Issue #15000: Support the "unique" x32 architecture in _posixsubprocess.c. - -- Issue #9041: An issue in ctypes.c_longdouble, ctypes.c_double, and - ctypes.c_float that caused an incorrect exception to be returned in the - case of overflow has been fixed. - -- Issue #14212: The re module didn't retain a reference to buffers it was - scanning, resulting in segfaults. - -Tests ------ - -- Issue #15304: Fix warning message when os.chdir() fails inside - test.support.temp_cwd(). Patch by Chris Jerdonek. - -- Issue #15802: Fix test logic in TestMaildir.test_create_tmp. Patch - by Serhiy Storchaka. - -- Issue #15747: ZFS always returns EOPNOTSUPP when attempting to set the - UF_IMMUTABLE flag (via either chflags or lchflags); refactor affected - tests in test_posix.py to account for this. - -- Issue #15285: Refactor the approach for testing connect timeouts using - two external hosts that have been configured specifically for this type - of test. - -- Issue #15615: Add some tests for the json module's handling of invalid - input data. Patch by Kushal Das. - -- Issue #15496: Add directory removal helpers for tests on Windows. - Patch by Jeremy Kloth. - -- Issue #15467: Move helpers for __sizeof__ tests into test_support. - Patch by Serhiy Storchaka. - -- Issue #15320: Make iterating the list of tests thread-safe when running - tests in multiprocess mode. Patch by Chris Jerdonek. - -- Issue #15230: Adopted a more systematic approach in the runpy tests - -- Issue #15300: Ensure the temporary test working directories are in the same - parent folder when running tests in multiprocess mode from a Python build. - Patch by Chris Jerdonek. - -- test_nntplib now tolerates being run from behind NNTP gateways that add - "X-Antivirus" headers to articles - -- Issue #15043: test_gdb is now skipped entirely if gdb security settings - block loading of the gdb hooks - -- Issue #14026: In test_cmd_line_script, check that sys.argv is populated - correctly for the various invocation approaches (Patch by Jason Yeo) - -- Issue #14032: Fix incorrect variable name in test_cmd_line_script debugging - message (Patch by Jason Yeo) - -- Issue #14589: Update certificate chain for sha256.tbs-internet.com, fixing - a test failure in test_ssl. - -Build ------ - -- Issue #16262: fix out-of-src-tree builds, if mercurial is not installed. - -- Issue #15923: fix a mistake in asdl_c.py that resulted in a TypeError after - 2801bf875a24 (see #15801). - -- Issue #11715: Fix multiarch detection without having Debian development - tools (dpkg-dev) installed. - -- Issue #15819: Make sure we can build Python out-of-tree from a readonly - source directory. (Somewhat related to Issue #9860.) - -- Issue #15822: Ensure 2to3 grammar pickles are properly installed. - -- Issue #15560: Fix building _sqlite3 extension on OS X with an SDK. - -- Issue #8847: Disable COMDAT folding in Windows PGO builds. - -- Issue #14197: For OS X framework builds, ensure links to the shared - library are created with the proper ABI suffix. - -- Issue #14472: Update .gitignore. Patch by Matej Cepl. - -- The Windows build now uses OpenSSL 1.0.0j and bzip2 1.0.6. - -- Issue #14557: Fix extensions build on HP-UX. Patch by Adi Roiban. - -- Issue #14437: Fix building the _io module under Cygwin. - -- Issue #14387: Do not include accu.h from Python.h. - -- Issue #14359: Only use O_CLOEXEC in _posixmodule.c if it is defined. - Based on patch from Hervé Coatanhay. - -- Issue #14018: Fix OS X Tcl/Tk framework checking when using OS X SDKs. - -Documentation -------------- - -- Issue #16115: Improve subprocess.Popen() documentation around args, shell, - and executable arguments. - -- Issue #13498: Clarify docs of os.makedirs()'s exist_ok argument. Done with - great native-speaker help from R. David Murray. - -- Issue #15533: Clarify docs and add tests for subprocess.Popen()'s cwd - argument. - -- Issue #15979: Improve timeit documentation. - -- Issue #16036: Improve documentation of built-in int()'s signature and - arguments. - -- Issue #15935: Clarification of argparse docs, re: add_argument() type and - default arguments. Patch contributed by Chris Jerdonek. - -- Issue #11964: Document a change in v3.2 to the behavior of the indent - parameter of json encoding operations. - -- Issue #14674: Add a discussion of the json module's standard compliance. - Patch by Chris Rebert. - -- Issue #15630: Add an example for "continue" stmt in the tutorial. Patch by - Daniel Ellis. - -- Issue #15444: Use proper spelling for non-ASCII contributor names. Patch - by Serhiy Storchaka. - -- Issue 15482: Properly document the default 'level' value for __import__() - while warning about using negative values. - -- Issue #15230: Clearly document some of the limitations of the runpy - module and nudge readers towards importlib when appropriate. - -- Issue #13557: Clarify effect of giving two different namespaces to exec or - execfile(). - -- Issue #8799: Fix and improve the threading.Condition documentation. - -- Issue #14943: Correct a default argument value for winreg.OpenKey - and correctly list the argument names in the function's explanation. - -- Issue #14034: added the argparse tutorial. - -- Issue #15250: Document that filecmp.dircmp compares files shallowly. Patch - contributed by Chris Jerdonek. - -Tools/Demos ------------ - -- Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka. - -- Issue #14695: Fix missing support for starred assignments in - Tools/parser/unparse.py. - - -What's New in Python 3.2.3? -=========================== - -*Release date: 10-Apr-2012* - -Build ------ - -- Issue #14387: Work around a problem building extension modules under Windows - by undefining ``small`` before use in the Python headers. - - -What's New in Python 3.2.3 release candidate 2? -=============================================== - -*Release date: 18-Mar-2012* - -Library -------- - -- Issue #6884: Fix long-standing bugs with MANIFEST.in parsing in distutils - on Windows. - -Extension Modules ------------------ - -- Issue #14234: CVE-2012-0876: Randomize hashes of xml attributes in the hash - table internal to the pyexpat module's copy of the expat library to avoid a - denial of service due to hash collisions. Patch by David Malcolm with some - modifications by the expat project. - - -What's New in Python 3.2.3 release candidate 1? -=============================================== - -*Release date: 24-Feb-2012* - -Core and Builtins ------------------ - -- Issue #13703: oCERT-2011-003: add -R command-line option and PYTHONHASHSEED - environment variable, to provide an opt-in way to protect against denial of - service attacks due to hash collisions within the dict and set types. Patch - by David Malcolm, based on work by Victor Stinner. - -- Issue #14084: Fix a file descriptor leak when importing a module with a - bad encoding. - -- Issue #13020: Fix a reference leak when allocating a structsequence object - fails. Patch by Suman Saha. - -- Issue #13908: Ready types returned from PyType_FromSpec. - -- Issue #11235: Fix OverflowError when trying to import a source file whose - modification time doesn't fit in a 32-bit timestamp. - -- Fix the builtin module initialization code to store the init function for - future reinitialization. - -- Issue #8052: The posix subprocess module would take a long time closing - all possible file descriptors in the child process rather than just open - file descriptors. It now closes only the open fds if possible for the - default close_fds=True behavior. - -- Issue #13629: Renumber the tokens in token.h so that they match the indexes - into _PyParser_TokenNames. - -- Fix the fix for issue #12149: it was incorrect, although it had the side - effect of appearing to resolve the issue. Thanks to Mark Shannon for - noticing. - -- Issue #13505: Pickle bytes objects in a way that is compatible with - Python 2 when using protocols <= 2. - -- Issue #11147: Fix an unused argument in _Py_ANNOTATE_MEMORY_ORDER. (Fix - given by Campbell Barton). - -- Issue #7111: Python can now be run without a stdin, stdout or stderr - stream. It was already the case with Python 2. However, the corresponding - sys module entries are now set to None (instead of an unusable file object). - -- Issue #13436: Fix a bogus error message when an AST object was passed - an invalid integer value. - -- Issue #13338: Handle all enumerations in _Py_ANNOTATE_MEMORY_ORDER - to allow compiling extension modules with -Wswitch-enum on gcc. - Initial patch by Floris Bruynooghe. - -- Issue #13333: The UTF-7 decoder now accepts lone surrogates (the encoder - already accepts them). - -- Issue #13342: input() used to ignore sys.stdin's and sys.stdout's unicode - error handler in interactive mode (when calling into PyOS_Readline()). - -- Issue #13343: Fix a SystemError when a lambda expression uses a global - variable in the default value of a keyword-only argument: - (lambda *, arg=GLOBAL_NAME: None) - -- Issue #10519: Avoid unnecessary recursive function calls in - setobject.c. - -- Issue #10363: Deallocate global locks in Py_Finalize(). - -- Issue #13018: Fix reference leaks in error paths in dictobject.c. - Patch by Suman Saha. - -- Issue #1294232: In a few cases involving metaclass inheritance, the - interpreter would sometimes invoke the wrong metaclass when building a new - class object. These cases now behave correctly. Patch by Daniel Urban. - -- Issue #12604: VTRACE macro expanded to no-op in _sre.c to avoid compiler - warnings. Patch by Josh Triplett and Petri Lehtinen. - -- Issue #13188: When called without an explicit traceback argument, - generator.throw() now gets the traceback from the passed exception's - ``__traceback__`` attribute. Patch by Petri Lehtinen. - -- Issue #7833: Extension modules built using distutils on Windows will no - longer include a "manifest" to prevent them failing at import time in some - embedded situations. - -- Issue #13063: the Windows error ERROR_NO_DATA (numbered 232 and described - as "The pipe is being closed") is now mapped to POSIX errno EPIPE - (previously EINVAL). - -- Issue #12911: Fix memory consumption when calculating the repr() of huge - tuples or lists. - -- Issue #7732: Don't open a directory as a file anymore while importing a - module. Ignore the direcotry if its name matchs the module name (e.g. - "__init__.py") and raise a ImportError instead. - -- Issue #13021: Missing decref on an error path. Thanks to Suman Saha for - finding the bug and providing a patch. - -- Issue #12973: Fix overflow checks that relied on undefined behaviour in - list_repeat (listobject.c) and islice_next (itertoolsmodule.c). These bugs - caused test failures with recent versions of Clang. - -- Issue #12802: the Windows error ERROR_DIRECTORY (numbered 267) is now - mapped to POSIX errno ENOTDIR (previously EINVAL). - -- Issue #9200: The str.is* methods now work with strings that contain non-BMP - characters even in narrow Unicode builds. - -- Issue #12791: Break reference cycles early when a generator exits with - an exception. - -- Issue #12266: Fix str.capitalize() to correctly uppercase/lowercase - titlecased and cased non-letter characters. - -Library -------- - -- HTMLParser is now able to handle slashes in the start tag. - -- Issue #14001: CVE-2012-0845: xmlrpc: Fix an endless loop in - SimpleXMLRPCServer upon malformed POST request. - -- Issue #2489: pty.spawn could consume 100% cpu when it encountered an EOF. - -- Issue #13014: Fix a possible reference leak in SSLSocket.getpeercert(). - -- Issue #13015: Fix a possible reference leak in defaultdict.__repr__. - Patch by Suman Saha. - -- Issue #1326113: distutils' build_ext command --libraries option now - correctly parses multiple values separated by whitespace or commas. - -- Issue #10287: nntplib now queries the server's CAPABILITIES first before - sending MODE READER, and only sends it if not already in READER mode. - Patch by Hynek Schlawack. - -- Issue #13979: A bug in ctypes.util.find_library that caused - the wrong library name to be returned has been fixed. - -- Issue #13993: HTMLParser is now able to handle broken end tags when - strict=False. - -- Issue #9750: Fix sqlite3.Connection.iterdump on tables and fields - with a name that is a keyword or contains quotes. Patch by Marko - Kohtala. - -- Issue #10287: nntplib now queries the server's CAPABILITIES again after - authenticating (since the result may change, according to RFC 4643). - Patch by Hynek Schlawack. - -- Issue #13989: Document that GzipFile does not support text mode, and give a - more helpful error message when opened with an invalid mode string. - -- Issue #13590: On OS X 10.7 and 10.6 with Xcode 4.2, building - Distutils-based packages with C extension modules may fail because - Apple has removed gcc-4.2, the version used to build python.org - 64-bit/32-bit Pythons. If the user does not explicitly override - the default C compiler by setting the CC environment variable, - Distutils will now attempt to compile extension modules with clang - if gcc-4.2 is required but not found. Also as a convenience, if - the user does explicitly set CC, substitute its value as the default - compiler in the Distutils LDSHARED configuration variable for OS X. - (Note, the python.org 32-bit-only Pythons use gcc-4.0 and the 10.4u - SDK, neither of which are available in Xcode 4. This change does not - attempt to override settings to support their use with Xcode 4.) - -- Issue #13960: HTMLParser is now able to handle broken comments when - strict=False. - -- Issue #9021: Add an introduction to the copy module documentation. - -- Issue #6005: Examples in the socket library documentation use sendall, where - relevant, instead send method. - -- Issue #10811: Fix recursive usage of cursors. Instead of crashing, - raise a ProgrammingError now. - -- Issue #10881: Fix test_site failure with OS X framework builds. - -- Issue #964437: Make IDLE help window non-modal. - Patch by Guilherme Polo and Roger Serwy. - -- Issue #2945: Make the distutils upload command aware of bdist_rpm products. - -- Issue #13933: IDLE auto-complete did not work with some imported - module, like hashlib. (Patch by Roger Serwy) - -- Issue #13901: Prevent test_distutils failures on OS X with --enable-shared. - -- Issue #13676: Handle strings with embedded zeros correctly in sqlite3. - -- Issue #13506: Add '' to path for IDLE Shell when started and restarted with Restart Shell. - Original patches by Marco Scataglini and Roger Serwy. - -- Issue #13848: open() and the FileIO constructor now check for NUL - characters in the file name. Patch by Hynek Schlawack. - -- Issue #13806: The size check in audioop decompression functions was too - strict and could reject valid compressed data. Patch by Oleg Plakhotnyuk. - -- Issue #13812: When a multiprocessing Process child raises an exception, - flush stderr after printing the exception traceback. - -- Issue #13885: CVE-2011-3389: the _ssl module would always disable the CBC - IV attack countermeasure. - -- Issue #13772: In os.symlink() under Windows, do not try to guess the link - target's type (file or directory). The detection was buggy and made the - call non-atomic (therefore prone to race conditions). - -- Issue #6631: Disallow relative file paths in urllib urlopen methods. - -- Issue #13722: Avoid silencing ImportErrors when initializing the codecs - registry. - -- Issue #13781: Fix GzipFile bug that caused an exception to be raised when - opening for writing using a fileobj returned by os.fdopen(). - -- Issue #13803: Under Solaris, distutils doesn't include bitness - in the directory name. - -- Issue #13589: Fix some serialization primitives in the aifc module. - Patch by Oleg Plakhotnyuk. - -- Issue #13642: Unquote before b64encoding user:password during Basic - Authentication. Patch contributed by Joonas Kuorilehto. - -- Issue #13726: Fix the ambiguous -S flag in regrtest. It is -o/--slow for slow - tests. - -- Issue #12364: Fix a hang in concurrent.futures.ProcessPoolExecutor. - The hang would occur when retrieving the result of a scheduled future after - the executor had been shut down. - -- Issue #13502: threading: Fix a race condition in Event.wait() that made it - return False when the event was set and cleared right after. - -- Issue #12926: Fix a bug in tarfile's link extraction. - -- Issue #13696: Fix the 302 Relative URL Redirection problem. - -- Issue #13636: Weak ciphers are now disabled by default in the ssl module - (except when SSLv2 is explicitly asked for). - -- Issue #12798: Updated the mimetypes documentation. - -- Issue #11006: Don't issue low level warning in subprocess when pipe2() fails. - -- Issue #11829: Fix code execution holes in inspect.getattr_static for - metaclasses with metaclasses. Patch by Andreas Stührk. - -- Issue #1785: Fix inspect and pydoc with misbehaving descriptors. - -- Issue #11813: Fix inspect.getattr_static for modules. Patch by Andreas - Stührk. - -- Issue #7502: Fix equality comparison for DocTestCase instances. Patch by - Cédric Krier. - -- Issue #11870: threading: Properly reinitialize threads internal locks and - condition variables to avoid deadlocks in child processes. - -- Issue #8035: urllib: Fix a bug where the client could remain stuck after a - redirection or an error. - -- Issue #10350: Read and save errno before calling a function which might - overwrite it. Original patch by Hallvard B Furuseth. - -- Issue #13591: A bug in importlib has been fixed that caused import_module - to load a module twice. - -- Issue #4625: If IDLE cannot write to its recent file or breakpoint - files, display a message popup and continue rather than crash. - (original patch by Roger Serwy) - -- Issue #5905: time.strftime() is now using the locale encoding, instead of - UTF-8, if the wcsftime() function is not available. - -- Issue #8641: Update IDLE 3 syntax coloring to recognize b".." and not u"..". - Patch by Tal Einat. - -- tarfile.py: Correctly detect bzip2 compressed streams with blocksizes - other than 900k. - -- Issue #13439: Fix many errors in turtle docstrings. - -- Issue #13487: Make inspect.getmodule robust against changes done to - sys.modules while it is iterating over it. - -- Issue #12618: Fix a bug that prevented py_compile from creating byte - compiled files in the current directory. Initial patch by Sjoerd de Vries. - -- Issue #13444: When stdout has been closed explicitly, we should not attempt - to flush it at shutdown and print an error. - -- Issue #12856: Ensure child processes do not inherit the parent's random - seed for filename generation in the tempfile module. Patch by Brian - Harring. - -- Issue #13458: Fix a memory leak in the ssl module when decoding a - certificate with a subjectAltName. Patch by Robert Xiao. - -- Issue #13415: os.unsetenv() doesn't ignore errors anymore. - -- Issue #13322: Fix BufferedWriter.write() to ensure that BlockingIOError is - raised when the wrapped raw file is non-blocking and the write would block. - Previous code assumed that the raw write() would raise BlockingIOError, but - RawIOBase.write() is defined to returned None when the call would block. - Patch by sbt. - -- Issue #13358: HTMLParser now calls handle_data only once for each CDATA. - -- Issue #4147: minidom's toprettyxml no longer adds whitespace around a text - node when it is the only child of an element. Initial patch by Dan - Kenigsberg. - -- Issues #1745761, #755670, #13357, #12629, #1200313: HTMLParser now correctly - handles non-valid attributes, including adjacent and unquoted attributes. - -- Issue #13193: Fix distutils.filelist.FileList under Windows. - -- Issue #13384: Remove unnecessary __future__ import in Lib/random.py - -- Issue #13373: multiprocessing.Queue.get() could sometimes block indefinitely - when called with a timeout. Patch by Arnaud Ysmal. - -- Issue #13254: Fix Maildir initialization so that maildir contents - are read correctly. - -- Issue #3067: locale.setlocale() now raises TypeError if the second - argument is an invalid iterable. Its documentation and docstring - were also updated. Initial patch by Jyrki Pulliainen. - -- Issue #13140: Fix the daemon_threads attribute of ThreadingMixIn. - -- Issue #13339: Fix compile error in posixmodule.c due to missing semicolon. - Thanks to Robert Xiao. - -- Issue #10570: curses.putp() and curses.tparm() are now expecting a byte - string, instead of a Unicode string. - -- Issue #2892: preserve iterparse events in case of SyntaxError. - -- Issue #670664: Fix HTMLParser to correctly handle the content of - ```` and ````. - -- Issue #10817: Fix urlretrieve function to raise ContentTooShortError even - when reporthook is None. Patch by Jyrki Pulliainen. - -- Issue #13296: Fix IDLE to clear compile __future__ flags on shell restart. - (Patch by Roger Serwy) - -- Issue #13293: Better error message when trying to marshal bytes using - xmlrpc.client. - -- Issue #13291: NameError in xmlrpc package. - -- Issue #13258: Use callable() built-in in the standard library. - -- Issue #13273: fix a bug that prevented HTMLParser to properly detect some - tags when strict=False. - -- Issue #10332: multiprocessing: fix a race condition when a Pool is closed - before all tasks have completed. - -- Issue #13255: wrong docstrings in array module. - -- Issue #9168: now smtpd is able to bind privileged port. - -- Issue #12529: fix cgi.parse_header issue on strings with double-quotes and - semicolons together. Patch by Ben Darnell and Petri Lehtinen. - -- Issue #12448: smtplib now flushes stdout while running ``python -m smtplib`` - in order to display the prompt correctly. - -- Issue #6090: zipfile raises a ValueError when a document with a timestamp - earlier than 1980 is provided. Patch contributed by Petri Lehtinen. - -- Issue #13194: zlib.compressobj().copy() and zlib.decompressobj().copy() are - now available on Windows. - -- Issue #13158: Fix decoding and encoding of GNU tar specific base-256 number - fields in tarfile. - -- Issue #13177: Functools lru_cache() no longer calls the original function - inside an exception handler. This makes tracebacks easier to read because - chained exceptions are avoided. - -- Issue #13025: mimetypes is now reading MIME types using the UTF-8 encoding, - instead of the locale encoding. - -- Issue #10653: On Windows, use strftime() instead of wcsftime() because - wcsftime() doesn't format time zone correctly. - -- Issue #11171: Fix distutils.sysconfig.get_makefile_filename when Python was - configured with different prefix and exec-prefix. - -- Issue #11254: Teach distutils to compile .pyc and .pyo files in - PEP 3147-compliant __pycache__ directories. - -- Issue #11250: Back port fix from 3.3 branch, so that 2to3 can handle files - with line feeds. This was ported from the sandbox to the 3.3 branch, but - didn't make it into 3.2. - -- Issue #7367: Fix pkgutil.walk_paths to skip directories whose - contents cannot be read. - -- Issue #13099: Fix sqlite3.Cursor.lastrowid under a Turkish locale. - Reported and diagnosed by Thomas Kluyver. - -- Issue #13087: BufferedReader.seek() now always raises UnsupportedOperation - if the underlying raw stream is unseekable, even if the seek could be - satisfied using the internal buffer. Patch by John O'Connor. - -- Issue #7689: Allow pickling of dynamically created classes when their - metaclass is registered with copyreg. Patch by Nicolas M. Thiéry and Craig - Citro. - -- Issue #4147: minidom's toprettyxml no longer adds whitespace to text nodes. - -- Issue #13034: When decoding some SSL certificates, the subjectAltName - extension could be unreported. - -- Issue #9871: Prevent IDLE 3 crash when given byte stings - with invalid hex escape sequences, like b'\x0'. - (Original patch by Claudiu Popa.) - -- Issue #8933: distutils' PKG-INFO files will now correctly report - Metadata-Version: 1.1 instead of 1.0 if a Classifier or Download-URL field is - present. - -- Issue #9561: distutils now reads and writes egg-info files using UTF-8, - instead of the locale encoding. - -- Issue #12888: Fix a bug in HTMLParser.unescape that prevented it to escape - more than 128 entities. Patch by Peter Otten. - -- Issue #12878: Expose a __dict__ attribute on io.IOBase and its subclasses. - -- Issue #12636: IDLE reads the coding cookie when executing a Python script. - -- Issue #12847: Fix a crash with negative PUT and LONG_BINPUT arguments in - the C pickle implementation. - -- Issue #11564: Avoid crashes when trying to pickle huge objects or containers - (more than 2**31 items). Instead, in most cases, an OverflowError is raised. - -- Issue #12287: Fix a stack corruption in ossaudiodev module when the FD is - greater than FD_SETSIZE. - -- Issue #11657: Fix sending file descriptors over 255 over a multiprocessing - Pipe. - -- Issue #13007: whichdb should recognize gdbm 1.9 magic numbers. - -- Issue #12213: Fix a buffering bug with interleaved reads and writes that - could appear on BufferedRandom streams. - -- Issue #12650: Fix a race condition where a subprocess.Popen could leak - resources (FD/zombie) when killed at the wrong time. - -- Issue #10860: http.client now correctly handles an empty port after port - delimiter in URLs. - -Build ------ - -- Issue #6807: Run msisupport.mak earlier. - -- Issue #10580: Minor grammar change in Windows installer. - -- Issue #13326: Clean __pycache__ directories correctly on OpenBSD. - -Tools/Demos ------------ - -- Issue #14053: patchcheck.py ("make patchcheck") now works with MQ patches. - Patch by Francisco Martín Brugué. - -- Issue #13930: 2to3 is now able to write its converted output files to another - directory tree as well as copying unchanged files and altering the file - suffix. See its new -o, -W and --add-suffix options. This makes it more - useful in many automated code translation workflows. - -- Issue #13628: python-gdb.py is now able to retrieve more frames in the Python - traceback if Python is optimized. - -Tests ------ - -- Issue #11689: Fix a variable scoping error in an sqlite3 test - -- Issue #13786: Remove unimplemented 'trace' long option from regrtest.py. - -- Issue #13725: Fix regrtest to recognize the documented -d flag. - Patch by Erno Tukia. - -- Issue #13304: Skip test case if user site-packages disabled (-s or - PYTHONNOUSERSITE). (Patch by Carl Meyer) - -- Issue #13218: Fix test_ssl failures on Debian/Ubuntu. - -- Issue #12821: Fix test_fcntl failures on OpenBSD 5. - -- Re-enable lib2to3's test_parser.py tests, though with an expected failure - (see issue 13125). - -Extension Modules ------------------ - -- Issue #13840: The error message produced by ctypes.create_string_buffer - when given a Unicode string has been fixed. - -- Issue #9975: socket: Fix incorrect use of flowinfo and scope_id. Patch by - Vilmos Nebehaj. - -- Issue #13159: FileIO and BZ2File now use a linear-time buffer growth - strategy instead of a quadratic-time one. - -- Issue #13070: Fix a crash when a TextIOWrapper caught in a reference cycle - would be finalized after the reference to its underlying BufferedRWPair's - writer got cleared by the GC. - -- Issue #12881: ctypes: Fix segfault with large structure field names. - -- Issue #13058: ossaudiodev: fix a file descriptor leak on error. Patch by - Thomas Jarosch. - -- Issue #13013: ctypes: Fix a reference leak in PyCArrayType_from_ctype. - Thanks to Suman Saha for finding the bug and providing a patch. - -- Issue #13022: Fix: _multiprocessing.recvfd() doesn't check that - file descriptor was actually received. - -- Issue #12483: ctypes: Fix a crash when the destruction of a callback - object triggers the garbage collector. - -- Issue #12950: Fix passing file descriptors in multiprocessing, under - OpenIndiana/Illumos. - -Documentation -------------- - -- Issues #13491 and #13995: Fix many errors in sqlite3 documentation. - Initial patch for #13491 by Johannes Vogel. - -- Issue #13402: Document absoluteness of sys.executable. - -- Issue #13883: PYTHONCASEOK also used on OS X and OS/2. - -- Issue #12949: Document the kwonlyargcount argument for the PyCode_New - C API function. - -- Issue #2134: The tokenize documentation has been clarified to explain why - all operator and delimiter tokens are treated as token.OP tokens. - -- Issue #13513: Fix io.IOBase documentation to correctly link to the - io.IOBase.readline method instead of the readline module. - -- Issue #13237: Reorganise subprocess documentation to emphasise convenience - functions and the most commonly needed arguments to Popen. - -- Issue #13141: Demonstrate recommended style for socketserver examples. - - -What's New in Python 3.2.2? -=========================== - -*Release date: 03-Sep-2011* - -Core and Builtins ------------------ - -- Issue #12326: sys.platform is now always 'linux2' on Linux, even if Python - is compiled on Linux 3. - -- Accept bytes for the AST string type. This is temporary until a proper fix in - 3.3. - -Library -------- - -- Issue #8286: The distutils command sdist will print a warning message instead - of crashing when an invalid path is given in the manifest template. - -- Issue #12841: tarfile unnecessarily checked the existence of numerical user - and group ids on extraction. If one of them did not exist the respective id - of the current user (i.e. root) was used for the file and ownership - information was lost. - -- Issue #10946: The distutils commands bdist_dumb, bdist_wininst and bdist_msi - now respect a --skip-build option given to bdist. - -- Issue #12839: Fix crash in zlib module due to version mismatch. - Fix by Richard M. Tew. - -Extension Modules ------------------ - -- Issue #9651: Fix a crash when ctypes.create_string_buffer(0) was passed to - some functions like file.write(). - - - -What's New in Python 3.2.2 release candidate 1? -=============================================== - -*Release date: 14-Aug-2011* - -Core and Builtins ------------------ - -- Issue #12732: In narrow unicode builds, allow Unicode identifiers which fall - outside the BMP. - -- Issue #11603: Fix a crash when __str__ is rebound as __repr__. Patch by - Andreas Stührk. - -- Issue #11321: Fix a crash with multiple imports of the _pickle module when - embedding Python. Patch by Andreas Stührk. - -- Verify the types of AST strings and identifiers provided by the user before - compiling them. - -- Issue #12579: str.format_map() now raises a ValueError if used on a - format string that contains positional fields. Initial patch by - Julian Berman. - -- Issue #11627: Fix segfault when __new__ on a exception returns a - non-exception class. - -- Issue #12149: Update the method cache after a type's dictionary gets - cleared by the garbage collector. This fixes a segfault when an instance - and its type get caught in a reference cycle, and the instance's - deallocator calls one of the methods on the type (e.g. when subclassing - IOBase). Diagnosis and patch by Davide Rizzo. - -- When a generator yields, do not retain the caller's exception state on the - generator. - -- Issue #12475: Prevent generators from leaking their exception state into the - caller's frame as they return for the last time. - -Library -------- - -- Issue #11513: Fix exception handling ``tarfile.TarFile.gzopen()`` when - the file cannot be opened. - -- Issue #12687: Fix a possible buffering bug when unpickling text mode - (protocol 0, mostly) pickles. - -- Issue #10087: Fix the html output format of the calendar module. - -- Issue #12540: Prevent zombie IDLE processes on Windows due to changes - in os.kill(). - -- Issue #12683: urlparse updated to include svn as schemes that uses relative - paths. (svn from 1.5 onwards support relative path). - -- Issues #11104, #8688: Fix the behavior of distutils' sdist command with - manually-maintained MANIFEST files. - -- Issue #12464: tempfile.TemporaryDirectory.cleanup() should not follow - symlinks: fix it. Patch by Petri Lehtinen. - -- Issue #8887: "pydoc somebuiltin.somemethod" (or help('somebuiltin.somemethod') - in Python code) now finds the doc of the method. - -- Issue #12603: Fix pydoc.synopsis() on files with non-negative st_mtime. - -- Issue #12514: Use try/finally to assure the timeit module restores garbage - collections when it is done. - -- Issue #12607: In subprocess, fix issue where if stdin, stdout or stderr is - given as a low fd, it gets overwritten. - -- Issue #12590: IDLE editor window now always displays the first line - when opening a long file. With Tk 8.5, the first line was hidden. - -- Issue #12576: Fix urlopen behavior on sites which do not send (or obfuscates) - Connection:close header. - -- Issue #1813: Fix codec lookup under Turkish locales. - -- Issue #12591: Improve support of "universal newlines" in the subprocess - module: the piped streams can now be properly read from or written to. - -- Issue #12591: Allow io.TextIOWrapper to work with raw IO objects (without - a read1() method), and add an undocumented *write_through* parameter to - mandate unbuffered writes. - -- Issue #9611, #9015: FileIO.read() clamps the length to INT_MAX on Windows. - -- Issue #10883: Fix socket leaks in urllib.request when using FTP. - -- Issue #12571: Add a plat-linux3 directory mirroring the plat-linux2 - directory, so that "import DLFCN" and other similar imports work on - Linux 3.0. - -- Issue #7484: smtplib no longer puts <> around addresses in VRFY and EXPN - commands; they aren't required and in fact postfix doesn't support that form. - -- Close the call queue in concurrent.futures.ProcessPoolExecutor when - shutdown() is called, without waiting for the garbage collector to kick in. - -- Issue #12502: asyncore: fix polling loop with AF_UNIX sockets. - -- Issue #4376: ctypes now supports nested structures with an endianness - different than that of the parent structure. Patch by Vlad Riscutia. - -- Raise ValueError when attempting to set the _CHUNK_SIZE attribute of a - TextIOWrapper to a huge value, not TypeError. - -- Issue #12493: subprocess: Popen.communicate() now also handles EINTR errors - if the process has only one pipe. - -- Issue #12451: pydoc: html_getfile() now uses tokenize.open() to support - Python modules using a encoding different than UTF-8 (reading the coding - cookie of the module). - -- Issue #12451: pydoc: importfile() now opens the Python module in binary mode, - instead of text mode using the locale encoding, to avoid encoding issues. - -- Issue #12451: runpy: run_path() now opens the Python module in binary mode, - instead of text mode using the locale encoding, to support other encodings - than UTF-8 (modules using the coding cookie). - -- Issue #12451: xml.dom.pulldom: parse() now opens files in binary mode instead - of the text mode (using the locale encoding) to avoid encoding issues. - -- Issue #14443: Ensure that .py files are byte-compiled with the correct Python - executable within bdist_rpm even on older versions of RPM - -Extension Modules ------------------ - -- Issue #12764: Fix a crash in ctypes when the name of a Structure field is not - a string. - -- Issue #11241: subclasses of ctypes.Array can now be subclassed. - -- Issue #10309: Define _GNU_SOURCE so that mremap() gets the proper - signature. Without this, architectures where sizeof void* != sizeof int are - broken. Patch given by Hallvard B Furuseth. - -C-API ------ - -Build ------ - -- Issue #12560: Build libpython.so on OpenBSD. Patch by Stefan Sperling. - -- Issue #12592: Make Python build on OpenBSD 5 (and future major releases). - -- Issue #12372: POSIX semaphores are broken on AIX: don't use them. - -Tools/Demos ------------ - -- Issue #10639: reindent.py no longer converts newlines and will raise - an error if attempting to convert a file with mixed newlines. - -Tests ------ - -- Issue #12331: The test suite for lib2to3 can now run from an installed - Python. - -- Issue #12626: In regrtest, allow to filter tests using a glob filter - with the ``-m`` (or ``--match``) option. This works with all test cases - using the unittest module. This is useful with long test suites - such as test_io or test_subprocess. - -- Issue #12624: It is now possible to fail after the first failure when - running in verbose mode (``-v`` or ``-W``), by using the ``--failfast`` - (or ``-G``) option to regrtest. This is useful with long test suites - such as test_io or test_subprocess. - -- Issue #12587: Correct faulty test file and reference in test_tokenize. - (Patch by Robert Xiao) - -- Try harder to reap dangling threads in test.support.reap_threads(). - -- Issue #12573: Add resource checks for dangling Thread and Process objects. - -- Issue #12549: Correct test_platform to not fail when OS X returns 'x86_64' - as the processor type on some Mac systems. - -- Avoid failing in test_robotparser when mueblesmoraleda.com is flaky and - an overzealous DNS service (e.g. OpenDNS) redirects to a placeholder - Web site. - -- Issue #12440: When testing whether some bits in SSLContext.options can be - reset, check the version of the OpenSSL headers Python was compiled against, - rather than the runtime version of the OpenSSL library. - -- Issue #12497: Install test/data to prevent failures of the various codecmaps - tests. - -- Issue #12496: Install test/capath directory to prevent test_connect_capath - testcase failure in test_ssl. - -- Issue #12469: Run "wakeup" signal tests in subprocess to run the test in a - fresh process with only one thread and to not change signal handling of the - parent process. - -- Issue #8716: Avoid crashes caused by Aqua Tk on OSX when attempting to run - test_tk or test_ttk_guionly under a username that is not currently logged - in to the console windowserver (as may be the case under buildbot or ssh). - - -What's New in Python 3.2.1? -=========================== - -*Release date: 10-Jul-2011* - -Library -------- - -- Issue #12467: warnings: fix a race condition if a warning is emitted at - shutdown, if globals()['__file__'] is None. - -Tests ------ - -- Skip network tests when getaddrinfo() returns EAI_AGAIN, meaning a temporary - failure in name resolution. - -- Issue #11812: Solve transient socket failure to connect to 'localhost' - in test_telnetlib.py. - -- Solved a potential deadlock in test_telnetlib.py. Related to issue #11812. - -- Avoid failing in test_urllibnet.test_bad_address when some overzealous - DNS service (e.g. OpenDNS) resolves a non-existent domain name. The test - is now skipped instead. - - -What's New in Python 3.2.1 release candidate 2? -=============================================== - -*Release date: 03-Jul-2011* - -Core and Builtins ------------------ - -- Issue #12291: You can now load multiple marshalled objects from a stream, with - other data interleaved between marshalled objects. - -- Issue #12084: os.stat on Windows now works properly with relative symbolic - links when called from any directory. - -- Issue #1195: my_fgets() now always clears errors before calling fgets(). Fix - the following case: sys.stdin.read() stopped with CTRL+d (end of file), - raw_input() interrupted by CTRL+c. - -- Issue #9670: Increase the default stack size for secondary threads on Mac OS X - and FreeBSD to reduce the chances of a crash instead of a "maximum recursion - depth" RuntimeError exception (patch by Ronald Oussoren). - -Library -------- - -- Issue #12147: Adjust the new-in-3.2 smtplib.send_message method for better - conformance to the RFCs: correctly handle Sender and Resent headers. - -- Issue #12352: Fix a deadlock in multiprocessing.Heap when a block is freed by - the garbage collector while the Heap lock is held. - -- Issue #12451: The XInclude default loader of xml.etree now decodes files from - UTF-8 instead of the locale encoding if the encoding is not specified. It now - also opens XML files for the parser in binary mode instead of the text mode to - avoid encoding issues. - -- Issue #12451: doctest.debug_script() doesn't create a temporary file anymore - to avoid encoding issues. - -- Issue #12451: pydoc.synopsis() now reads the encoding cookie if available, to - read the Python module from the right encoding. - -- Issue #12451: distutils now opens the setup script in binary mode to read the - encoding cookie, instead of opening it in UTF-8. - -- Issue #9516: On Mac OS X, change Distutils to no longer globally attempt to - check or set the MACOSX_DEPLOYMENT_TARGET environment variable for the - interpreter process. This could cause failures in non-Distutils subprocesses - and was unreliable since tests or user programs could modify the interpreter - environment after Distutils set it. Instead, have Distutils set the the - deployment target only in the environment of each build subprocess. It is - still possible to globally override the default by setting - MACOSX_DEPLOYMENT_TARGET before launching the interpreter; its value must be - greater or equal to the default value, the value with which the interpreter - was built. - -- Issue #12383: Fix subprocess module with env={}: don't copy the environment - variables, start with an empty environment. - -- Issue #11584: email.header.decode_header no longer fails if the header passed - to it is a Header object, and Header/make_header no longer fail if given - binary unknown-8bit input. - -- Issue #11700: mailbox proxy object close methods can now be called multiple - times without error. - -- Issue #11767: Correct file descriptor leak in mailbox's __getitem__ method. - -- Issue #12133: AbstractHTTPHandler.do_open() of urllib.request closes the HTTP - connection if its getresponse() method fails with a socket error. Patch - written by Ezio Melotti. - -- Issue #9284: Allow inspect.findsource() to find the source of doctest - functions. - -- Issue #12009: Fixed regression in netrc file comment handling. - -- Issue #10694: zipfile now ignores garbage at the end of a zipfile. - -- Issue #12283: Fixed regression in smtplib quoting of leading dots in DATA. - -- Issue #12168: SysLogHandler now allows NUL termination to be controlled using - a new 'append_nul' attribute on the handler. - -- Issue #11583: Speed up os.path.isdir on Windows by using GetFileAttributes - instead of os.stat. - -- Named tuples now work correctly with vars(). - -- Issue #12085: Fix an attribute error in subprocess.Popen destructor if the - constructor has failed, e.g. because of an undeclared keyword argument. Patch - written by Oleg Oshmyan. - -- Issue #985064: Make plistlib more resilient to faulty input plists. Patch by - Mher Movsisyan. - -- Issue #12175: RawIOBase.readall() now returns None if read() returns None. - -- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError - if the file is closed. - -- Issue #12070: Fix the Makefile parser of the sysconfig module to handle - correctly references to "bogus variable" (e.g. "prefix=$/opt/python"). - -- Issue #12100: Don't reset incremental encoders of CJK codecs at each call to - their encode() method anymore, but continue to call the reset() method if the - final argument is True. - -- Issue #5715: In socketserver, close the server socket in the child process. - -- Correct lookup of __dir__ on objects. Among other things, this causes errors - besides AttributeError found on lookup to be propagated. - -- Issue #12124: zipimport doesn't keep a reference to zlib.decompress() anymore - to be able to unload the module. - -- Issue #12065: connect_ex() on an SSL socket now returns the original errno - when the socket's timeout expires (it used to return None). - -Extension Modules ------------------ - -- Issue #12404: Remove C89 incompatible code from mmap module. Patch by Akira - Kitada. - -- Issue #12221: Replace pyexpat.__version__ with the Python version. - -Build ------ - -- Issue #8746: Correct faulty configure checks so that os.chflags() and - os.lchflags() are once again built on systems that support these functions - (*BSD and OS X). Also add new stat file flags for OS X (UF_HIDDEN and - UF_COMPRESSED). - -- Issue #11217: For 64-bit/32-bit Mac OS X universal framework builds, ensure - "make install" creates symlinks in --prefix bin for the "-32" files in the - framework bin directory like the installer does. - - -Tests ------ - -- Issue #12407: Explicitly skip test_capi.EmbeddingTest under Windows. - -- Issue #12400: regrtest -W doesn't rerun the tests twice anymore, but captures - the output and displays it on failure instead. regrtest -v doesn't print the - error twice anymore if there is only one error. - -- Issue #12141: Install a copy of template C module file so that test_build_ext - of test_distutils is no longer silently skipped when run outside of a build - directory. - -- Issue #8746: Add additional tests for os.chflags() and os.lchflags(). Patch - by Garrett Cooper. - -- Issue #10736: Fix test_ttk test_widgets failures with Cocoa Tk 8.5.9 on Mac - OS X. (Patch by Ronald Oussoren) - -- Issue #12057: Add tests for ISO 2022 codecs (iso2022_jp, iso2022_jp_2, - iso2022_kr). - - -What's New in Python 3.2.1 release candidate 1? -=============================================== - -*Release date: 15-May-2011* - -Core and Builtins ------------------ - -- Issue #12060: Use sig_atomic_t type and volatile keyword in the signal - module. Patch written by Charles-François Natali. - -- Issue #12044: Fixed subprocess.Popen when used as a context manager to - wait for the process to end when exiting the context to avoid unintentionally - leaving zombie processes around. - -- Issue #1195: Fix input() if it is interrupted by CTRL+d and then CTRL+c, - clear the end-of-file indicator after CTRL+d. - -Library -------- - -- Issue #11088: don't crash when using F5 to run a script in IDLE on MacOSX - with Tk 8.5. - -- Issue #9516: Issue #9516: avoid errors in sysconfig when MACOSX_DEPLOYMENT_TARGET - is set in shell. - -- Issue #12012: ssl.PROTOCOL_SSLv2 becomes optional. - -- Issue #8650: Make zlib module 64-bit clean. compress(), decompress() and - their incremental counterparts now raise OverflowError if given an input - larger than 4GB, instead of silently truncating the input and returning - an incorrect result. - -- Issue #12050: zlib.decompressobj().decompress() now clears the unconsumed_tail - attribute when called without a max_length argument. - -- Issue #12062: Fix a flushing bug when doing a certain type of I/O sequence - on a file opened in read+write mode (namely: reading, seeking a bit forward, - writing, then seeking before the previous write but still within buffered - data, and writing again). - -- Issue #1028: Tk returns invalid Unicode null in %A: UnicodeDecodeError. - With Tk < 8.5 _tkinter.c:PythonCmd() raised UnicodeDecodeError, caused - IDLE to exit. Converted to valid Unicode null in PythonCmd(). - -- Issue #11169: compileall module uses repr() to format filenames and paths to - escape surrogate characters and show spaces. - -- Issue #10419, #6011: build_scripts command of distutils handles correctly - non-ASCII path (path to the Python executable). Open and write the script in - binary mode, but ensure that the shebang is decodable from UTF-8 and from the - encoding of the script. - -- Issue #8498: In socket.accept(), allow to specify 0 as a backlog value in - order to accept exactly one connection. Patch by Daniel Evers. - -- Issue #11164: Stop trying to use _xmlplus in the xml module. - -Build ------ - -- Issue #11347: Use --no-as-needed when linking libpython3.so. - -Tools/Demos ------------ - -- Issue #11996: libpython (gdb), replace "py-bt" command by "py-bt-full" and - add a smarter "py-bt" command printing a classic Python traceback. - -Tests ------ - -- Issue #12096: Fix a race condition in test_threading.test_waitfor(). Patch - written by Charles-François Natali. - -- Issue #11614: import __hello__ prints "Hello World!". Patch written by - Andreas Stührk. - -- Issue #5723: Improve json tests to be executed with and without accelerations. - -- Issue #11910: Fix test_heapq to skip the C tests when _heapq is missing. - - -What's New in Python 3.2.1 beta 1? -================================== - -*Release date: 08-May-2011* - -Core and Builtins ------------------ - -- Issue #1856: Avoid crashes and lockups when daemon threads run while the - interpreter is shutting down; instead, these threads are now killed when they - try to take the GIL. - -- Issue #9756: When calling a method descriptor or a slot wrapper descriptor, - the check of the object type doesn't read the __class__ attribute anymore. - Fix a crash if a class override its __class__ attribute (e.g. a proxy of the - str type). Patch written by Andreas Stührk. - -- Issue #10914: Initialize correctly the filesystem codec when creating a new - subinterpreter to fix a bootstrap issue with codecs implemented in Python, as - the ISO-8859-15 codec. - -- Issue #10517: After fork(), reinitialize the TLS used by the PyGILState_* - APIs, to avoid a crash with the pthread implementation in RHEL 5. Patch by - Charles-François Natali. - -- Issue #6780: fix starts/endswith error message to mention that tuples are - accepted too. - -- Issue #5057: fix a bug in the peepholer that led to non-portable pyc files - between narrow and wide builds while optimizing BINARY_SUBSCR on non-BMP chars - (e.g. "\U00012345"[0]). - -- Issue #11845: Fix typo in rangeobject.c that caused a crash in - compute_slice_indices. Patch by Daniel Urban. - -- Issue #11650: PyOS_StdioReadline() retries fgets() if it was interrupted - (EINTR), for example if the program is stopped with CTRL+z on Mac OS X. Patch - written by Charles-Francois Natali. - -- Issue #11395: io.FileIO().write() clamps the data length to 32,767 bytes on - Windows if the file is a TTY to workaround a Windows bug. The Windows console - returns an error (12: not enough space error) on writing into stdout if stdout - mode is binary and the length is greater than 66,000 bytes (or less, depending - on heap usage). - -- Issue #11320: fix bogus memory management in Modules/getpath.c, leading to a - possible crash when calling Py_SetPath(). - -- Issue #11510: Fixed optimizer bug which turned "a,b={1,1}" into "a,b=(1,1)". - -- Issue #11432: A bug was introduced in subprocess.Popen on posix systems with - 3.2.0 where the stdout or stderr file descriptor being the same as the stdin - file descriptor would raise an exception. webbrowser.open would fail. fixed. - -- Issue #11450: Don't truncate hg version info in Py_GetBuildInfo() when there - are many tags (e.g. when using mq). Patch by Nadeem Vawda. - -- Issue #11246: Fix PyUnicode_FromFormat("%V") to decode the byte string from - UTF-8 (with replace error handler) instead of ISO-8859-1 (in strict mode). - Patch written by Ray Allen. - -- Issue #11286: Raise a ValueError from calling PyMemoryView_FromBuffer with a - buffer struct having a NULL data pointer. - -- Issue #11272: On Windows, input() strips '\r' (and not only '\n'), and - sys.stdin uses universal newline (replace '\r\n' by '\n'). - -- issue #11828: startswith and endswith don't accept None as slice index. Patch - by Torsten Becker. - -- Issue #10830: Fix PyUnicode_FromFormatV("%c") for non-BMP characters on - narrow build. - -- Check for NULL result in PyType_FromSpec. - -- Issue #11386: bytearray.pop() now throws IndexError when the bytearray is - empty, instead of OverflowError. - -Library -------- - -- Issue #11927: SMTP_SSL now uses port 465 by default as documented. Patch by - Kasun Herath. - -- Issue #12002: ftplib's abort() method raises TypeError. - -- Issue #11999: fixed sporadic sync failure mailbox.Maildir due to its trying to - detect mtime changes by comparing to the system clock instead of to the - previous value of the mtime. - -- ntpath.samefile failed to notice that "a.txt" and "A.TXT" refer to the same - file on Windows XP. As noticed in issue #10684. - -- Issue #12000: When a SSL certificate has a subjectAltName without any dNSName - entry, ssl.match_hostname() should use the subject's commonName. Patch by - Nicolas Bareil. - -- Issue #11647: objects created using contextlib.contextmanager now support more - than one call to the function when used as a decorator. Initial patch by Ysj - Ray. - -- logging: don't define QueueListener if Python has no thread support. - -- functools.cmp_to_key() now works with collections.Hashable(). - -- Issue #11277: mmap.mmap() calls fcntl(fd, F_FULLFSYNC) on Mac OS X to get - around a mmap bug with sparse files. Patch written by Steffen Daode Nurpmeso. - -- Issue #11858: configparser.ExtendedInterpolation expected lower-case section - names. - -- Issue #11324: ConfigParser(interpolation=None) now works correctly. - -- Issue #11763: don't use difflib in TestCase.assertMultiLineEqual if the - strings are too long. - -- Issue #11236: getpass.getpass responds to ctrl-c or ctrl-z on terminal. - -- Issue #11768: The signal handler of the signal module only calls - Py_AddPendingCall() for the first signal to fix a deadlock on reentrant or - parallel calls. PyErr_SetInterrupt() writes also into the wake up file. - -- Issue #11492: fix several issues with header folding in the email package. - -- Issue #11852: Add missing imports and update tests. - -- Issue #11875: collections.OrderedDict's __reduce__ was temporarily - mutating the object instead of just working on a copy. - -- Issue #11467: Fix urlparse behavior when handling urls which contains scheme - specific part only digits. Patch by Santoso Wijaya. - -- collections.Counter().copy() now works correctly for subclasses. - -- Issue #11474: Fix the bug with url2pathname() handling of '/C|/' on Windows. - Patch by Santoso Wijaya. - -- Issue #9233: Fix json.loads('{}') to return a dict (instead of a list), when - _json is not available. - -- Issue #11830: Remove unnecessary introspection code in the decimal module. - -- Issue #11703: urllib2.geturl() does not return correct url when the original - url contains #fragment. - -- Issue #10019: Fixed regression in json module where an indent of 0 stopped - adding newlines and acted instead like 'None'. - -- Issue #5162: Treat services like frozen executables to allow child spawning - from multiprocessing.forking on Windows. - -- Issue #11814: Fix likely typo in multiprocessing.Pool._terminate(). - -- Issue #11747: Fix range formatting in difflib.context_diff() and - difflib.unified_diff(). - -- Issue #8428: Fix a race condition in multiprocessing.Pool when terminating - worker processes: new processes would be spawned while the pool is being shut - down. Patch by Charles-François Natali. - -- Issue #7311: fix html.parser to accept non-ASCII attribute values. - -- Issue #11605: email.parser.BytesFeedParser was incorrectly converting - multipart subparts with an 8-bit CTE into unicode instead of preserving the - bytes. - -- Issue #10963: Ensure that subprocess.communicate() never raises EPIPE. - -- Issue #11746: Fix SSLContext.load_cert_chain() to accept elliptic curve - private keys. - -- sys.getfilesystemencoding() raises a RuntimeError if initfsencoding() was not - called yet: detect bootstrap (startup) issues earlier. - -- Issue #11618: Fix the timeout logic in threading.Lock.acquire() under Windows. - -- Issue #11256: Fix inspect.getcallargs on functions that take only keyword - arguments. - -- Issue #11696: Fix ID generation in msilib. - -- Issue #9696: Fix exception incorrectly raised by xdrlib.Packer.pack_int when - trying to pack a negative (in-range) integer. - -- Issue #11675: multiprocessing.[Raw]Array objects created from an integer size - are now zeroed on creation. This matches the behaviour specified by the - documentation. - -- Issue #7639: Fix short file name generation in bdist_msi - -- Issue #11659: Fix ResourceWarning in test_subprocess introduced by #11459. - Patch by Ben Hayden. - -- Issue #11635: Don't use polling in worker threads and processes launched by - concurrent.futures. - -- Issue #11628: cmp_to_key generated class should use __slots__ - -- Issue #11666: let help() display named tuple attributes and methods - that start with a leading underscore. - -- Issue #11662: Make urllib and urllib2 ignore redirections if the - scheme is not HTTP, HTTPS or FTP (CVE-2011-1521). - -- Issue #5537: Fix time2isoz() and time2netscape() functions of - httplib.cookiejar for expiration year greater than 2038 on 32-bit systems. - -- Issue #11563: Connection:close header is sent by requests using URLOpener - class which helps in closing of sockets after connection is over. Patch - contributions by Jeff McNeil and Nadeem Vawda. - -- Issue #11459: A ``bufsize`` value of 0 in subprocess.Popen() really creates - unbuffered pipes, such that select() works properly on them. - -- Issue #5421: Fix misleading error message when one of socket.sendto()'s - arguments has the wrong type. Patch by Nikita Vetoshkin. - -- Issue #10979: unittest stdout buffering now works with class and module - setup and teardown. - -- Issue #11577: fix ResourceWarning triggered by improved binhex test coverage - -- Issue #11243: fix the parameter querying methods of Message to work if - the headers contain un-encoded non-ASCII data. - -- Issue #11401: fix handling of headers with no value; this fixes a regression - relative to Python2 and the result is now the same as it was in Python2. - -- Issue #9298: base64 bodies weren't being folded to line lengths less than 78, - which was a regression relative to Python2. Unlike Python2, the last line of - the folded body now ends with a carriage return. - -- Issue #11560: shutil.unpack_archive now correctly handles the format - parameter. Patch by Evan Dandrea. - -- Issue #11133: fix two cases where inspect.getattr_static can trigger code - execution. Patch by Andreas Stührk. - -- Issue #11569: use absolute path to the sysctl command in multiprocessing to - ensure that it will be found regardless of the shell PATH. This ensures that - multiprocessing.cpu_count works on default installs of MacOSX. - -- Issue #11501: disutils.archive_utils.make_zipfile no longer fails if zlib is - not installed. Instead, the zipfile.ZIP_STORED compression is used to create - the ZipFile. Patch by Natalia B. Bidart. - -- Issue #11554: Fixed support for Japanese codecs; previously the body output - encoding was not done if euc-jp or shift-jis was specified as the charset. - -- Issue #11500: Fixed a bug in the os x proxy bypass code for fully qualified IP - addresses in the proxy exception list. - -- Issue #11491: dbm.error is no longer raised when dbm.open is called with the - "n" as the flag argument and the file exists. The behavior matches the - documentation and general logic. - -- Issue #11131: Fix sign of zero in decimal.Decimal plus and minus operations - when the rounding mode is ROUND_FLOOR. - -- Issue #5622: Fix curses.wrapper to raise correct exception if curses - initialization fails. - -- Issue #11391: Writing to a mmap object created with - ``mmap.PROT_READ|mmap.PROT_EXEC`` would segfault instead of raising a - TypeError. Patch by Charles-François Natali. - -- Issue #11306: mailbox in certain cases adapts to an inability to open certain - files in read-write mode. Previously it detected this by checking for EACCES, - now it also checks for EROFS. - -- Issue #11265: asyncore now correctly handles EPIPE, EBADF and EAGAIN errors on - accept(), send() and recv(). - -- Issue #11326: Add the missing connect_ex() implementation for SSL sockets, - and make it work for non-blocking connects. - -- Issue #7322: Trying to read from a socket's file-like object after a timeout - occurred now raises an error instead of silently losing data. - -- Issue #10956: Buffered I/O classes retry reading or writing after a signal - has arrived and the handler returned successfully. - -- Issue #11224: Fixed a regression in tarfile that affected the file-like - objects returned by TarFile.extractfile() regarding performance, memory - consumption and failures with the stream interface. - -- Issue #11074: Make 'tokenize' so it can be reloaded. - -- Issue #4681: Allow mmap() to work on file sizes and offsets larger than - 4GB, even on 32-bit builds. Initial patch by Ross Lagerwall, adapted for - 32-bit Windows. - -- Issue #11089: Fix performance issue limiting the use of ConfigParser() - with large config files. - -- Issue #10276: Fix the results of zlib.crc32() and zlib.adler32() on buffers - larger than 4GB. Patch by Nadeem Vawda. - -- Issue #9348: Raise an early error if argparse nargs and metavar don't match. - -- Issue #8982: Improve the documentation for the argparse Namespace object. - -- Issue #9343: Document that argparse parent parsers must be configured before - their children. - -- Issue #9026: Fix order of argparse sub-commands in help messages. - -- Issue #9347: Fix formatting for tuples in argparse type= error messages. - -Build ------ - -- Issue #11411: Fix 'make DESTDIR=' with a relative destination. - -- Issue #11268: Prevent Mac OS X Installer failure if Documentation package had - previously been installed. - -IDLE ----- - -- Issue #11718: IDLE's open module dialog couldn't find the __init__.py file in - a package. - -Tools/Demos ------------ - -- Issue #11179: Make ccbench work under Python 3.1 and 2.7 again. - -Extension Modules ------------------ - -- Issue #12051: Fix segfault in json.dumps() while encoding highly-nested - objects using the C accelerations. - -- Issue #12017: Fix segfault in json.loads() while decoding highly-nested - objects using the C accelerations. - -- Issue #1838: Prevent segfault in ctypes, when _as_parameter_ on a class is set - to an instance of the class. - -Tests ------ - -- Issue #11873: Change regex in test_compileall to fix occasional failures when - when the randomly generated temporary path happened to match the regex. - -- Issue #10914: Add a minimal embedding test to test_capi. - -- Issue #11790: Fix sporadic failures in - test_multiprocessing.WithProcessesTestCondition. - -- Fix possible "file already exists" error when running the tests in parallel. - -- Issue #11719: Fix message about unexpected test_msilib skip on non-Windows - platforms. Patch by Nadeem Vawda. - -- Issue #11653: fix -W with -j in regrtest. - -- Issue #11577: improve test coverage of binhex.py. Patch by Arkady Koplyarov. - -- Issue #11578: added test for the timeit module. Patch by Michael Henry. - -- Issue #11503: improve test coverage of posixpath.py. Patch by Evan Dandrea. - -- Issue #11505: improves test coverage of string.py. Patch by Alicia - Arlen. - -- Issue #11548: Improve test coverage of the shutil module. Patch by - Evan Dandrea. - -- Issue #11554: Reactivated test_email_codecs. - -- Issue #11490: test_subprocess:test_leaking_fds_on_error no longer gives a - false positive if the last directory in the path is inaccessible. - -- Issue #11223: Fix test_threadsignals to fail, not hang, when the - non-semaphore implementation of locks is used under POSIX. - -- Issue #10911: Add tests on CGI with non-ASCII characters. Patch written by - Pierre Quentel. - -- Issue #9931: Fix hangs in GUI tests under Windows in certain conditions. - Patch by Hirokazu Yamamoto. - -- Issue #10826: Prevent sporadic failure in test_subprocess on Solaris due - to open door files. - -Documentation -------------- - -- Issue #11818: Fix tempfile examples for Python 3. - - -What's New in Python 3.2? -========================= - -*Release date: 20-Feb-2011* - -Core and Builtins ------------------ - -- Issue #11249: Fix potential crashes when using the limited API. - -Build ------ - -- Issue #11222: Fix non-framework shared library build on Mac OS X. - -- Issue #11184: Fix large-file support on AIX. - -- Issue #941346: Fix broken shared library build on AIX. - -Documentation -------------- - -- Issue #10709: Add updated AIX notes in Misc/README.AIX. - - -What's New in Python 3.2 Release Candidate 3? -============================================= - -*Release date: 13-Feb-2011* - -Core and Builtins ------------------ - -- Issue #11134: Add missing fields to typeslots.h. - -- Issue #11135: Remove redundant doc field from PyType_Spec. - -- Issue #11067: Add PyType_GetFlags, to support PyUnicode_Check in the limited - ABI. - -- Issue #11118: Fix bogus export of None in python3.dll. - -Library -------- - -- Issue #11116: any error during addition of a message to a mailbox now causes a - rollback, instead of leaving the mailbox partially modified. - -- Issue #11132: Fix passing of "optimize" parameter when recursing in - compileall.compile_dir(). - -- Issue #11110: Fix a potential decref of a NULL in sqlite3. - -- Issue #8275: Fix passing of callback arguments with ctypes under Win64. Patch - by Stan Mihai. - -Build ------ - -- Issue #11079: The /Applications/Python x.x folder created by the Mac OS X - installers now includes a link to the installed documentation and no longer - includes an Extras directory. The Tools directory is now installed in the - framework under share/doc. - -- Issue #11121: Fix building with --enable-shared. - -Tests ------ - -- Issue #10971: test_zipimport_support is once again compatible with the refleak - hunter feature of test.regrtest. - - -What's New in Python 3.2 Release Candidate 2? -============================================= - -*Release date: 30-Jan-2011* - -Core and Builtins ------------------ - -- Issue #10451: memoryview objects could allow to mutate a readable buffer. - Initial patch by Ross Lagerwall. - -Library -------- - -- Issue #9124: mailbox now accepts binary input and reads and writes mailbox - files in binary mode, using the email package's binary support to parse - arbitrary email messages. StringIO and text file input is deprecated, - and string input fails early if non-ASCII characters are used, where - previously it would fail when the email was processed in a later step. - -- Issue #10845: Mitigate the incompatibility between the multiprocessing - module on Windows and the use of package, zipfile or directory execution - by special casing main modules that actually *are* called __main__.py. - -- Issue #11045: Protect logging call against None argument. - -- Issue #11052: Correct IDLE menu accelerators on Mac OS X for Save - commands. - -- Issue #11053: Fix IDLE "Syntax Error" windows to behave as in 2.x, - preventing a confusing hung appearance on OS X with the windows - obscured. - -- Issue #10940: Workaround an IDLE hang on Mac OS X 10.6 when using the - menu accelerators for Open Module, Go to Line, and New Indent Width. - The accelerators still work but no longer appear in the menu items. - -- Issue #10989: Fix a crash on SSLContext.load_verify_locations(None, True). - -- Issue #11020: Command-line pyclbr was broken because of missing 2-to-3 - conversion. - -- Issue #11019: Fixed BytesGenerator so that it correctly handles a Message - with a None body. - -- Issue #11014: Make 'filter' argument in tarfile.Tarfile.add() into a - keyword-only argument. The preceding positional argument was deprecated, - so it made no sense to add filter as a positional argument. - -- Issue #11004: Repaired edge case in deque.count(). - -- Issue #10974: IDLE no longer crashes if its recent files list includes files - with non-ASCII characters in their path names. - -- Have hashlib.algorithms_available and hashlib.algorithms_guaranteed both - return sets instead of one returning a tuple and the other a frozenset. - -- Issue #10987: Fix the recursion limit handling in the _pickle module. - -- Issue #10983: Fix several bugs making tunnel requests in http.client. - -- Issue #10955: zipimport uses ASCII encoding instead of cp437 to decode - filenames, at bootstrap, if the codec registry is not ready yet. It is still - possible to have non-ASCII filenames using the Unicode flag (UTF-8 encoding) - for all file entries in the ZIP file. - -- Issue #10949: Improved robustness of rotating file handlers. - -- Issue #10955: Fix a potential crash when trying to mmap() a file past its - length. Initial patch by Ross Lagerwall. - -- Issue #10898: Allow compiling the posix module when the C library defines - a symbol named FSTAT. - -- Issue #10980: the HTTP server now encodes headers with iso-8859-1 (latin1) - encoding. This is the preferred encoding of PEP 3333 and the base encoding - of HTTP 1.1. - -- To match the behaviour of HTTP server, the HTTP client library now also - encodes headers with iso-8859-1 (latin1) encoding. It was already doing - that for incoming headers which makes this behaviour now consistent in - both incoming and outgoing direction. - -- Issue #9509: argparse now properly handles IOErrors raised by - argparse.FileType. - -- Issue #10961: The new pydoc server now better handles exceptions raised - during request handling. - -- Issue #10680: Fix mutually exclusive arguments for argument groups in - argparse. - -Build ------ - -- Issue #11054: Allow Mac OS X installer builds to again work on 10.5 with - the system-provided Python. - - -What's New in Python 3.2 Release Candidate 1 -============================================ - -*Release date: 16-Jan-2011* - -Core and Builtins ------------------ - -- Issue #10889: range indexing and slicing now works correctly on ranges with - a length that exceeds sys.maxsize. - -- Issue #10892: Don't segfault when trying to delete __abstractmethods__ from a - class. - -- Issue #8020: Avoid a crash where the small objects allocator would read - non-Python managed memory while it is being modified by another thread. Patch - by Matt Bandy. - -- Issue #10841: On Windows, set the binary mode on stdin, stdout, stderr and all - io.FileIO objects (to not translate newlines, \r\n <=> \n). The Python parser - translates newlines (\r\n => \n). - -- Remove buffer API from stable ABI for now, see #10181. - -- Issue #8651: PyArg_Parse*() functions raise an OverflowError if the file - doesn't have PY_SSIZE_T_CLEAN define and the size doesn't fit in an int - (length bigger than 2^31-1 bytes). - -- Issue #9015, #9611: FileIO.readinto(), FileIO.write(), os.write() and - stdprinter.write() clamp the length to INT_MAX on Windows. - -- Issue #8278: On Windows and with a NTFS filesystem, os.stat() and os.utime() - can now handle dates after 2038. - -- Issue #10780: PyErr_SetFromWindowsErrWithFilename() and - PyErr_SetExcFromWindowsErrWithFilename() decode the filename from the - filesystem encoding instead of UTF-8. - -- Issue #10779: PyErr_WarnExplicit() decodes the filename from the filesystem - encoding instead of UTF-8. - -- Add sys.flags attribute for the new -q command-line option. - -- Issue #11506: Trying to assign to a bytes literal should result in a - SyntaxError. - -Library -------- - -- Issue #10916: mmap should not segfault when a file is mapped using 0 as length - and a non-zero offset, and an attempt to read past the end of file is made - (IndexError is raised instead). Patch by Ross Lagerwall. - -- Issue #10154, #10090: change the normalization of UTF-8 to "UTF-8" instead - of "UTF8" in the locale module as the latter is not supported MacOSX and OpenBSD. - -- Issue #10684: shutil.move used to delete a folder on case insensitive - filesystems when the source and destination name where the same except - for the case. - -- Issue #10907: Warn OS X 10.6 IDLE users to use ActiveState Tcl/Tk 8.5, rather - than the currently problematic Apple-supplied one, when running with the - 64-/32-bit installer variant. - -- Issue #4953: cgi.FieldStorage and cgi.parse() parse the request as bytes, not - as unicode, and accept binary files. Add encoding and errors attributes to - cgi.FieldStorage. Patch written by Pierre Quentel (with many inputs by Glenn - Linderman). - -- Add encoding and errors arguments to urllib.parse_qs() and urllib.parse_qsl(). - -- Issue #10899: No function type annotations in the standard library. Removed - function type annotations from _pyio.py. - -- Issue #10875: Update Regular Expression HOWTO; patch by 'SilentGhost'. - -- Issue #10872: The repr() of TextIOWrapper objects now includes the mode - if available. - -- Issue #10869: Fixed bug where ast.increment_lineno modified the root node - twice. - -- Issue #5871: email.header.Header.encode now raises an error if any - continuation line in the formatted value has no leading white space and looks - like a header. Since Generator uses Header to format all headers, this check - is made for all headers in any serialized message at serialization time. This - provides protection against header injection attacks. - -- Issue #10859: Make ``contextlib.GeneratorContextManager`` officially - private by renaming it to ``_GeneratorContextManager``. - -- Issue #10042: Fixed the total_ordering decorator to handle cross-type - comparisons that could lead to infinite recursion. - -- Issue #10686: the email package now :rfc:`2047`\ -encodes headers with - non-ASCII bytes (parsed by a BytesParser) when doing conversion to 7bit-clean - presentation, instead of replacing them with ?s. - -- email.header.Header was incorrectly encoding folding whitespace when - rfc2047-encoding header values with embedded newlines, leaving them without - folding whitespace. It now uses the continuation_ws, as it does for - continuation lines that it creates itself. - -- Issue #1777412, #10827: Changed the rules for 2-digit years. The - time.asctime(), time.ctime() and time.strftime() functions will now format - any year when ``time.accept2dyear`` is False and will accept years >= 1000 - otherwise. ``time.mktime`` and ``time.strftime`` now accept full range - supported by the OS. With Visual Studio or on Solaris, the year is limited to - the range [1; 9999]. Conversion of 2-digit years to 4-digit is deprecated. - -- Issue #7858: Raise an error properly when os.utime() fails under Windows - on an existing file. - -- Issue #3839: wsgiref should not override a Content-Length header set by - the application. Initial patch by Clovis Fabricio. - -- Issue #10492: bdb.Bdb.run() only traces the execution of the code, not the - compilation (if the input is a string). - -- Issue #7995: When calling accept() on a socket with a timeout, the returned - socket is now always blocking, regardless of the operating system. - -- Issue #10756: atexit normalizes the exception before displaying it. Patch by - Andreas Stührk. - -- Issue #10790: email.header.Header.append's charset logic now works correctly - for charsets whose output codec is different from its input codec. - -- Issue #10819: SocketIO.name property returns -1 when its closed, instead of - raising a ValueError, to fix repr(). - -- Issue #8650: zlib.compress() and zlib.decompress() raise an OverflowError if - the input buffer length doesn't fit into an unsigned int (length bigger than - 2^32-1 bytes). - -- Issue #6643: Reinitialize locks held within the threading module after fork to - avoid a potential rare deadlock or crash on some platforms. - -- Issue #10806, issue #9905: Fix subprocess pipes when some of the standard file - descriptors (0, 1, 2) are closed in the parent process. Initial patch by Ross - Lagerwall. - -- `unittest.TestCase` can be instantiated without a method name; for simpler - exploration from the interactive interpreter. - -- Issue #10798: Reject supporting concurrent.futures if the system has too - few POSIX semaphores. - -- Issue #10807: Remove base64, bz2, hex, quopri, rot13, uu and zlib codecs from - the codec aliases. They are still accessible via codecs.lookup(). - -- Issue #10801: In zipfile, support different encodings for the header and the - filenames. - -- Issue #6285: IDLE no longer crashes on missing help file; patch by Scott - David Daniels. - -- Fix collections.OrderedDict.setdefault() so that it works in subclasses that - define __missing__(). - -- Issue #10786: unittest.TextTestRunner default stream no longer bound at import - time. `sys.stderr` now looked up at instantiation time. Fix contributed by - Mark Roddy. - -- Issue #10753: Characters ';', '=' and ',' in the PATH_INFO environment variable - won't be quoted when the URI is constructed by the wsgiref.util's request_uri - method. According to RFC 3986, these characters can be a part of params in - PATH component of URI and need not be quoted. - -- Issue #10738: Fix webbrowser.Opera.raise_opts. - -- Issue #9824: SimpleCookie now encodes , and ; in values to cater to how - browsers actually parse cookies. - -- Issue #9333: os.symlink now available regardless of user privileges. The - function now raises OSError on Windows >=6.0 when the user is unable to create - symbolic links. XP and 2003 still raise NotImplementedError. - -- Issue #10783: struct.pack() no longer implicitly encodes unicode to UTF-8. - -- Issue #10730: Add SVG mime types to mimetypes module. - -- Issue #10768: Make the Tkinter ScrolledText widget work again. - -- Issue #10777: Fix "dictionary changed size during iteration" bug in - ElementTree register_namespace(). - -- Issue #10626: test_logging now preserves logger disabled states. - -- Issue #10774: test_logging now removes temp files created during tests. - -- Issue #5258/#10642: if site.py encounters a .pth file that generates an error, - it now prints the filename, line number, and traceback to stderr and skips - the rest of that individual file, instead of stopping processing entirely. - -- Issue #10763: subprocess.communicate() closes stdout and stderr if both are - pipes (bug specific to Windows). - -- Issue #1693546: fix email.message RFC 2231 parameter encoding to be in better - compliance (no "s around encoded values). - -- Improved the diff message in the unittest module's assertCountEqual(). - -- Issue #1155362: email.utils.parsedate_tz now handles a missing space before - the '-' of a timezone field as well as before a '+'. - -- Issue #4871: The zipfile module now gives a more useful error message if - an attempt is made to use a string to specify the archive password. - -- Issue #10750: The ``raw`` attribute of buffered IO objects is now read-only. - -- Deprecated assertDictContainsSubset() in the unittest module. - -C-API ------ - -- Issue #10913: Deprecate misleading functions PyEval_AcquireLock() and - PyEval_ReleaseLock(). The thread-state aware APIs should be used instead. - -- Issue #10333: Remove ancient GC API, which has been deprecated since Python - 2.2. - -Build ------ - -- Issue #10843: Update third-party library versions used in OS X 32-bit - installer builds: bzip2 1.0.6, readline 6.1.2, SQLite 3.7.4 (with FTS3/FTS4 - and RTREE enabled), and ncursesw 5.5 (wide-char support enabled). - -- Issue #10820: Fix OS X framework installs to support version-specific - scripts (#10679). - -- Issue #7716: Under Solaris, don't assume existence of /usr/xpg4/bin/grep in - the configure script but use $GREP instead. Patch by Fabian Groffen. - -- Issue #10475: Don't hardcode compilers for LDSHARED/LDCXXSHARED on NetBSD - and DragonFly BSD. Patch by Nicolas Joly. - -- Issue #10679: The "idle", "pydoc" and "2to3" scripts are now installed with - a version-specific suffix on "make altinstall". - -- Issue #10655: Fix the build on PowerPC on Linux with GCC when building with - timestamp profiling (--with-tsc): the preprocessor test for the PowerPC - support now looks for "__powerpc__" as well as "__ppc__": the latter seems to - only be present on OS X; the former is the correct one for Linux with GCC. - -- Issue #1099: Fix the build on MacOSX when building a framework with pydebug - using GCC 4.0. - -Tools/Demos ------------ - -- Issue #10843: Install the Tools directory on OS X in the applications Extras - (/Applications/Python 3.n/Extras/) where the Demo directory had previous been - installed. - -- Issue #7962: The Demo directory is gone. Most of the old and unmaintained - demos have been removed, others integrated in documentation or a new - Tools/demo subdirectory. - -- Issue #10502: Addition of the unittestgui tool. Originally by Steve Purcell. - Updated for test discovery by Mark Roddy and Python 3 compatibility by Brian - Curtin. - -Tests ------ - -- Fix test_startfile to wait for child process to terminate before finishing. - -- Issue #10822: Fix test_posix:test_getgroups failure under Solaris. Patch - by Ross Lagerwall. - -- Make the --coverage flag work for test.regrtest. - -- Issue #1677694: Refactor and improve test_timeout. Original patch by - Björn Lindqvist. - -- Issue #5485: Add tests for the UseForeignDTD method of expat parser objects. - Patch by Jean-Paul Calderone and Sandro Tosi. - -- Issue #6293: Have regrtest.py echo back sys.flags. This is done by default in - whole runs and enabled selectively using ``--header`` when running an explicit - list of tests. Original patch by Collin Winter. - - -What's New in Python 3.2 Beta 2? -================================ - -*Release date: 19-Dec-2010* - -Core and Builtins ------------------ - -- Issue #8844: Regular and recursive lock acquisitions can now be interrupted - by signals on platforms using pthreads. Patch by Reid Kleckner. - -- Issue #4236: PyModule_Create2 now checks the import machinery directly - rather than the Py_IsInitialized flag, avoiding a Fatal Python - error in certain circumstances when an import is done in __del__. - -- Issue #5587: add a repr to dict_proxy objects. Patch by David Stanek and - Daniel Urban. - -Library -------- - -- Issue #3243: Support iterable bodies in httplib. Patch Contributions by - Xuanji Li and Chris AtLee. - -- Issue #10611: SystemExit exception will no longer kill a unittest run. - -- Issue #9857: It is now possible to skip a test in a setUp, tearDown or clean - up function. - -- Issue #10573: use actual/expected consistently in unittest methods. - The order of the args of assertCountEqual is also changed. - -- Issue #9286: email.utils.parseaddr no longer concatenates blank-separated - words in the local part of email addresses, thereby preserving the input. - -- Issue #6791: Limit header line length (to 65535 bytes) in http.client - and http.server, to avoid denial of services from the other party. - -- Issue #10404: Use ctl-button-1 on OSX for the context menu in Idle. - -- Issue #9907: Fix tab handling on OSX when using editline by calling - rl_initialize first, then setting our custom defaults, then reading .editrc. - -- Issue #4188: Avoid creating dummy thread objects when logging operations - from the threading module (with the internal verbose flag activated). - -- Issue #10711: Remove HTTP 0.9 support from http.client. The ``strict`` - parameter to HTTPConnection and friends is deprecated. - -- Issue #9721: Fix the behavior of urljoin when the relative url starts with a - ';' character. Patch by Wes Chow. - -- Issue #10714: Limit length of incoming request in http.server to 65536 bytes - for security reasons. Initial patch by Ross Lagerwall. - -- Issue #9558: Fix distutils.command.build_ext with VS 8.0. - -- Issue #10667: Fast path for collections.Counter(). - -- Issue #10695: passing the port as a string value to telnetlib no longer - causes debug mode to fail. - -- Issue #1078919: add_header now automatically RFC2231 encodes parameters - that contain non-ascii values. - -- Issue #10188 (partial resolution): tempfile.TemporaryDirectory emits - a warning on sys.stderr rather than throwing a misleading exception - if cleanup fails due to nulling out of modules during shutdown. - Also avoids an AttributeError when mkdtemp call fails and issues - a ResourceWarning on implicit cleanup via __del__. - -- Issue #10107: Warn about unsaved files in IDLE on OSX. - -- Issue #7213: subprocess.Popen's default for close_fds has been changed. - It is now True in most cases other than on Windows when input, output or - error handles are provided. - -- Issue #6559: subprocess.Popen has a new pass_fds parameter (actually - added in 3.2beta1) to allow specifying a specific list of file descriptors - to keep open in the child process. - -- Issue #1731717: Fixed the problem where subprocess.wait() could cause an - OSError exception when The OS had been told to ignore SIGCLD in our process - or otherwise not wait for exiting child processes. - -Tests ------ - -- Issue #775964: test_grp now skips YP/NIS entries instead of failing when - encountering them. - -Tools/Demos ------------ - -- Issue #6075: IDLE on Mac OS X now works with both Carbon AquaTk and - Cocoa AquaTk. - -- Issue #10710: ``Misc/setuid-prog.c`` is removed from the source tree. - -- Issue #10706: Remove outdated script runtests.sh. Either ``make test`` - or ``python -m test`` should be used instead. - -Build ------ - -- The Windows build now uses Tcl/Tk 8.5.9 and sqlite3 3.7.4. - -- Issue #9234: argparse supports alias names for subparsers. - - -What's New in Python 3.2 Beta 1? -================================ - -*Release date: 05-Dec-2010* - -Core and Builtins ------------------ - -- Issue #10630: Return dict views from the dict proxy keys()/values()/items() - methods. - -- Issue #10596: Fix float.__mod__ to have the same behaviour as float.__divmod__ - with respect to signed zeros. -4.0 % 4.0 should be 0.0, not -0.0. - -- Issue #1772833: Add the -q command-line option to suppress copyright and - version output in interactive mode. - -- Provide an *optimize* parameter in the built-in compile() function. - -- Fixed several corner case issues on Windows in os.stat/os.lstat related to - reparse points. - -- PEP 384 (Defining a Stable ABI) is implemented. - -- Issue #2690: Range objects support negative indices and slicing. - -- Issue #9915: Speed up sorting with a key. - -- Issue #8685: Speed up set difference ``a - b`` when source set ``a`` is much - larger than operand ``b``. Patch by Andrew Bennetts. - -- Issue #10518: Bring back the callable() builtin. - -- Issue #7094: Added alternate formatting (specified by '#') to ``__format__`` - method of float, complex, and Decimal. This allows more precise control over - when decimal points are displayed. - -- Issue #10474: range.count() should return integers. - -- Issue #1574217: isinstance now catches only AttributeError, rather than - masking all errors. - -Library -------- - -- logging: added "handler of last resort". See http://bit.ly/last-resort-handler - -- test.support: Added TestHandler and Matcher classes for better support of - assertions about logging. - -- Issue #4391: Use proper plural forms in argparse. - -- Issue #10601: sys.displayhook uses 'backslashreplace' error handler on - UnicodeEncodeError. - -- Add the "display" and "undisplay" pdb commands. - -- Issue #7245: Add a SIGINT handler in pdb that allows to break a program again - after a "continue" command. - -- Add the "interact" pdb command. - -- Issue #7905: Actually respect the keyencoding parameter to shelve.Shelf. - -- Issue #1569291: Speed up array.repeat(). - -- Provide an interface to set the optimization level of compilation in - py_compile, compileall and zipfile.PyZipFile. - -- Issue #7904: Changes to urllib.parse.urlsplit to handle schemes as defined by - RFC3986. Anything before :// is considered a scheme and is followed by an - authority (or netloc) and by '/' led path, which is optional. - -- Issue #6045: dbm.gnu databases now support get() and setdefault() methods. - -- Issue #10620: `python -m unittest` can accept file paths instead of module - names for running specific tests. - -- Issue #9424: Deprecate the `unittest.TestCase` methods `assertEquals`, - `assertNotEquals`, `assertAlmostEquals`, `assertNotAlmostEquals` and `assert_` - and replace them with the correct methods in the Python test suite. - -- Issue #10272: The ssl module now raises socket.timeout instead of a generic - SSLError on socket timeouts. - -- Issue #10528: Allow translators to reorder placeholders in localizable - messages from argparse. - -- Issue #10497: Fix incorrect use of gettext in argparse. - -- Issue #10478: Reentrant calls inside buffered IO objects (for example by - way of a signal handler) now raise a RuntimeError instead of freezing the - current process. - -- logging: Added getLogRecordFactory/setLogRecordFactory with docs and tests. - -- Issue #10549: Fix pydoc traceback when text-documenting certain classes. - -- Issue #2001: New HTML server with enhanced Web page features. Patch by Ron - Adam. - -- Issue #10360: In WeakSet, do not raise TypeErrors when testing for membership - of non-weakrefable objects. - -- Issue #940286: pydoc.Helper.help() ignores input/output init parameters. - -- Issue #1745035: Add a command size and data size limit to smtpd.py, to prevent - DoS attacks. Patch by Savio Sena. - -- Issue #4925: Add filename to error message when executable can't be found in - subprocess. - -- Issue #10391: Don't dereference invalid memory in error messages in the ast - module. - -- Issue #10027: st_nlink was not being set on Windows calls to os.stat or - os.lstat. Patch by Hirokazu Yamamoto. - -- Issue #9333: Expose os.symlink only when the SeCreateSymbolicLinkPrivilege is - held by the user's account, i.e., when the function can actually be used. - -- Issue #8879: Add os.link support for Windows. - -- Issue #7911: ``unittest.TestCase.longMessage`` defaults to True for improved - failure messages by default. Patch by Mark Roddy. - -- Issue #1486713: HTMLParser now has an optional tolerant mode where it tries to - guess at the correct parsing of invalid html. - -- Issue #10554: Add context manager support to subprocess.Popen objects. - -- Issue #8989: email.utils.make_msgid now has a domain parameter that can - override the domain name used in the generated msgid. - -- Issue #9299: Add exist_ok parameter to os.makedirs to suppress the 'File - exists' exception when a target directory already exists with the specified - mode. Patch by Ray Allen. - -- Issue #9573: os.fork() now works correctly when triggered as a side effect of - a module import. - -- Issue #10464: netrc now correctly handles lines with embedded '#' characters. - -- Added itertools.accumulate(). - -- Issue #4113: Added custom ``__repr__`` method to ``functools.partial``. - Original patch by Daniel Urban. - -- Issue #10273: Rename `assertRegexpMatches` and `assertRaisesRegexp` to - `assertRegex` and `assertRaisesRegex`. - -- Issue #10535: Enable silenced warnings in unittest by default. - -- Issue #9873: The URL parsing functions in urllib.parse now accept ASCII byte - sequences as input in addition to character strings. - -- Issue #10586: The statistics API for the new functools.lru_cache has been - changed to a single cache_info() method returning a named tuple. - -- Issue #10323: itertools.islice() now consumes the minimum number of inputs - before stopping. Formerly, the final state of the underlying iterator was - undefined. - -- Issue #10565: The collections.Iterator ABC now checks for both __iter__ and - __next__. - -- Issue #10242: Fixed implementation of unittest.ItemsEqual and gave it a new - more informative name, unittest.CountEqual. - -- Issue #10561: In pdb, clear the breakpoints by the breakpoint number. - -- Issue #2986: difflib.SequenceMatcher gets a new parameter, autojunk, which can - be set to False to turn off the previously undocumented 'popularity' - heuristic. Patch by Terry Reedy and Eli Bendersky. - -- Issue #10534: in difflib, expose bjunk and bpopular sets; deprecate - undocumented and now redundant isbjunk and isbpopular methods. - -- Issue #9846: zipfile is now correctly closing underlying file objects. - -- Issue #10459: Update CJK character names to Unicode 6.0. - -- Issue #4493: urllib.request adds '/' in front of path components which does not - start with '/. Common behavior exhibited by browsers and other clients. - -- Issue #6378: idle.bat now runs with the appropriate Python version rather than - the system default. Patch by Sridhar Ratnakumar. - -- Issue #10470: 'python -m unittest' will now run test discovery by default, - when no extra arguments have been provided. - -- Issue #3709: BaseHTTPRequestHandler will buffer the headers and write to - output stream only when end_headers is invoked. This is a speedup and an - internal optimization. Patch by endian. - -- Issue #10220: Added inspect.getgeneratorstate. Initial patch by Rodolpho - Eckhardt. - -- Issue #10453: compileall now uses argparse instead of getopt, and thus - provides clean output when called with '-h'. - -- Issue #8078: Add constants for higher baud rates in the termios module. Patch - by Rodolpho Eckhardt. - -- Issue #10407: Fix two NameErrors in distutils. - -- Issue #10371: Deprecated undocumented functions in the trace module. - -- Issue #10467: Fix BytesIO.readinto() after seeking into a position after the - end of the file. - -- configparser: 100% test coverage. - -- Issue #10499: configparser supports pluggable interpolation handlers. The - default classic interpolation handler is called BasicInterpolation. Another - interpolation handler added (ExtendedInterpolation) which supports the syntax - used by zc.buildout (e.g. interpolation between sections). - -- configparser: the SafeConfigParser class has been renamed to ConfigParser. - The legacy ConfigParser class has been removed but its interpolation mechanism - is still available as LegacyInterpolation. - -- configparser: Usage of RawConfigParser is now discouraged for new projects - in favor of ConfigParser(interpolation=None). - -- Issue #1682942: configparser supports alternative option/value delimiters. - -- Issue #5412: configparser supports mapping protocol access. - -- Issue #9411: configparser supports specifying encoding for read operations. - -- Issue #9421: configparser's getint(), getfloat() and getboolean() methods - accept vars and default arguments just like get() does. - -- Issue #9452: configparser supports reading from strings and dictionaries - (thanks to the mapping protocol API, the latter can be used to copy data - between parsers). - -- configparser: accepted INI file structure is now customizable, including - comment prefixes, name of the DEFAULT section, empty lines in multiline - values, and indentation. - -- Issue #10326: unittest.TestCase instances can be pickled. - -- Issue #9926: Wrapped TestSuite subclass does not get __call__ executed. - -- Issue #9920: Skip tests for cmath.atan and cmath.atanh applied to complex - zeros on systems where the log1p function fails to respect the sign of zero. - This fixes a test failure on AIX. - -- Issue #9732: Addition of getattr_static to the inspect module. - -- Issue #10446: Module documentation generated by pydoc now links to a - version-specific online reference manual. - -- Make the 'No module named' exception message from importlib consistent. - -- Issue #10443: Add the SSLContext.set_default_verify_paths() method. - -- Issue #10440: Support RUSAGE_THREAD as a constant in the resource module. - Patch by Robert Collins. - -- Issue #10429: IMAP.starttls() stored the capabilities as bytes objects, rather - than strings. - -C-API ------ - -- Issue #10557: Added a new API function, PyUnicode_TransformDecimalToASCII(), - which transforms non-ASCII decimal digits in a Unicode string to their ASCII - equivalents. - -- Issue #9518: Extend the PyModuleDef_HEAD_INIT macro to explicitly - zero-initialize all fields, fixing compiler warnings seen when building - extension modules with gcc with "-Wmissing-field-initializers" (implied by - "-W"). - -- Issue #10255: Fix reference leak in Py_InitializeEx(). Patch by Neil - Schemenauer. - -- structseq.h is now included in Python.h. - -- Loosen PyArg_ValidateKeywordArguments to allow dict subclasses. - -Tests ------ - -- regrtest.py once again ensures the test directory is removed from sys.path - when it is invoked directly as the __main__ module. - -- `python -m test` can be used to run the test suite as well as `python -m - test.regrtest`. - -- Do not fail test_socket when the IP address of the local hostname cannot be - looked up. - -- Issue #8886: Use context managers throughout test_zipfile. Patch by Eric - Carstensen. - -Build ------ - -- Issue #10325: Fix two issues in the fallback definitions for PY_ULLONG_MAX and - PY_LLONG_MAX that made them unsuitable for use in preprocessor conditionals. - -Documentation -------------- - -- Issue #10299: List the built-in functions in a table in functions.rst. - - -What's New in Python 3.2 Alpha 4? -================================= - -*Release date: 13-Nov-2010* - -Core and Builtins ------------------ - -- Issue #10372: Import the warnings module only after the IO library is - initialized, so as to avoid bootstrap issues with the '-W' option. - -- Issue #10293: Remove obsolete field in the PyMemoryView structure, unused - undocumented value PyBUF_SHADOW, and strangely-looking code in - PyMemoryView_GetContiguous. - -- Issue #6081: Add str.format_map(), similar to ``str.format(**mapping)``. - -- If FileIO.__init__ fails, close the file descriptor. - -- Issue #10221: dict.pop(k) now has a key error message that includes the - missing key (same message d[k] returns for missing keys). - -- Issue #5437: A preallocated MemoryError instance should not keep traceback - data (including local variables caught in the stack trace) alive infinitely. - -- Issue #10186: Fix the SyntaxError caret when the offset is equal to the length - of the offending line. - -- Issue #10089: Add support for arbitrary -X options on the command line. They - can be retrieved through a new attribute ``sys._xoptions``. - -- Issue #4388: On Mac OS X, decode command line arguments from UTF-8, instead of - the locale encoding. If the LANG (and LC_ALL and LC_CTYPE) environment - variable is not set, the locale encoding is ISO-8859-1, whereas most programs - (including Python) expect UTF-8. Python already uses UTF-8 for the filesystem - encoding and to encode command line arguments on this OS. - -- Issue #9713, #10114: Parser functions (e.g. PyParser_ASTFromFile) expect - filenames encoded to the filesystem encoding with the surrogateescape error - handler (to support undecodable bytes), instead of UTF-8 in strict mode. - -- Issue #9997: Don't let the name "top" have special significance in scope - resolution. - -- Issue #9862: Compensate for broken PIPE_BUF in AIX by hard coding its value as - the default 512 when compiling on AIX. - -- Use locale encoding instead of UTF-8 to encode and decode filenames if - Py_FileSystemDefaultEncoding is not set. - -- Issue #10095: fp_setreadl() doesn't reopen the file, instead reuse the file - descriptor. - -- Issue #9418: Moved private string methods ``_formatter_parser`` and - ``_formatter_field_name_split`` into a new ``_string`` module. - -- Issue #9992: Remove PYTHONFSENCODING environment variable. - -Library -------- - -- Issue #10465: fix broken delegating of attributes by gzip._PaddedFile. - -- Issue #10356: Decimal.__hash__(-1) should return -2. - -- Issue #1553375: logging: Added stack_info kwarg to display stack information. - -- Issue #5111: IPv6 Host in the Header is wrapped inside [ ]. Patch by Chandru. - -- Fix Fraction.__hash__ so that Fraction.__hash__(-1) is -2. (See also issue - #10356.) - -- Issue #4471: Add the IMAP.starttls() method to enable encryption on standard - IMAP4 connections. Original patch by Lorenzo M. Catucci. - -- Issue #1466065: Add 'validate' option to base64.b64decode to raise an error if - there are non-base64 alphabet characters in the input. - -- Issue #10386: Add __all__ to token module; this simplifies importing in - tokenize module and prevents leaking of private names through ``import *``. - -- Issue #4471: Properly shutdown socket in IMAP.shutdown(). Patch by Lorenzo - M. Catucci. - -- Fix IMAP.login() to work properly. - -- Issue #9244: multiprocessing pool worker processes could terminate - unexpectedly if the return value of a task could not be pickled. Only the - ``repr`` of such errors are now sent back, wrapped in an - ``MaybeEncodingError`` exception. - -- Issue #9244: The ``apply_async()`` and ``map_async()`` methods of - ``multiprocessing.Pool`` now accepts a ``error_callback`` argument. This can - be a callback with the signature ``callback(exc)``, which will be called if - the target raises an exception. - -- Issue #10022: The dictionary returned by the ``getpeercert()`` method of SSL - sockets now has additional items such as ``issuer`` and ``notBefore``. - -- ``usenetrc`` is now false by default for NNTP objects. - -- Issue #1926: Add support for NNTP over SSL on port 563, as well as STARTTLS. - Patch by Andrew Vant. - -- Issue #10335: Add tokenize.open(), detect the file encoding using - tokenize.detect_encoding() and open it in read only mode. - -- Issue #10321: Add support for binary data to smtplib.SMTP.sendmail, and a new - method send_message to send an email.message.Message object. - -- Issue #6011: sysconfig and distutils.sysconfig use the surrogateescape error - handler to parse the Makefile file. Avoid a UnicodeDecodeError if the source - code directory name contains a non-ASCII character and the locale encoding is - ASCII. - -- Issue #10329: The trace module writes reports using the input Python script - encoding, instead of the locale encoding. Patch written by Alexander - Belopolsky. - -- Issue #10126: Fix distutils' test_build when Python was built with - --enable-shared. - -- Issue #9281: Prevent race condition with mkdir in distutils. Patch by - Arfrever. - -- Issue #10229: Fix caching error in gettext. - -- Issue #10252: Close file objects in a timely manner in distutils code and - tests. Patch by Brian Brazil, completed by Éric Araujo. - -- Issue #10180: Pickling file objects is now explicitly forbidden, since - unpickling them produced nonsensical results. - -- Issue #10311: The signal module now restores errno before returning from its - low-level signal handler. Patch by Hallvard B Furuseth. - -- Issue #10282: Add a ``nntp_implementation`` attribute to NNTP objects. - -- Issue #10283: Add a ``group_pattern`` argument to NNTP.list(). - -- Issue #10155: Add IISCGIHandler to wsgiref.handlers to support IIS CGI - environment better, and to correct unicode environment values for WSGI 1.0.1. - -- Issue #10281: nntplib now returns None for absent fields in the OVER/XOVER - response, instead of raising an exception. - -- wsgiref now implements and validates PEP 3333, rather than an experimental - extension of PEP 333. (Note: earlier versions of Python 3.x may have - incorrectly validated some non-compliant applications as WSGI compliant; if - your app validates with Python <3.2b1+, but not on this version, it is likely - the case that your app was not compliant.) - -- Issue #10280: NNTP.nntp_version should reflect the highest version advertised - by the server. - -- Issue #10184: Touch directories only once when extracting a tarfile. - -- Issue #10199: New package, ``turtledemo`` now contains selected demo scripts - that were formerly found under Demo/turtle. - -- Issue #10265: Close file objects explicitly in sunau. Patch by Brian Brazil. - -- Issue #10266: uu.decode didn't close in_file explicitly when it was given as a - filename. Patch by Brian Brazil. - -- Issue #10110: Queue objects didn't recognize full queues when the maxsize - parameter had been reduced. - -- Issue #10160: Speed up operator.attrgetter. Patch by Christos Georgiou. - -- logging: Added style option to basicConfig() to allow %, {} or $-formatting. - -- Issue #5729: json.dumps() now supports using a string such as '\t' for - pretty-printing multilevel objects. - -- Issue #10253: FileIO leaks a file descriptor when trying to open a file for - append that isn't seekable. Patch by Brian Brazil. - -- Support context manager protocol for file-like objects returned by mailbox - ``get_file()`` methods. - -- Issue #10246: uu.encode didn't close file objects explicitly when filenames - were given to it. Patch by Brian Brazil. - -- Issue #10198: fix duplicate header written to wave files when writeframes() is - called without data. - -- Close file objects in modulefinder in a timely manner. - -- Close a io.TextIOWrapper object in email.parser in a timely manner. - -- Close a file object in distutils.sysconfig in a timely manner. - -- Close a file object in pkgutil in a timely manner. - -- Issue #10233: Close file objects in a timely manner in the tarfile module and - its test suite. - -- Issue #10093: ResourceWarnings are now issued when files and sockets are - deallocated without explicit closing. These warnings are silenced by default, - except in pydebug mode. - -- tarfile.py: Add support for all missing variants of the GNU sparse extensions - and create files with holes when extracting sparse members. - -- Issue #10218: Return timeout status from ``Condition.wait`` in threading. - -- Issue #7351: Add ``zipfile.BadZipFile`` spelling of the exception name and - deprecate the old name ``zipfile.BadZipfile``. - -- Issue #5027: The standard ``xml`` namespace is now understood by - xml.sax.saxutils.XMLGenerator as being bound to - http://www.w3.org/XML/1998/namespace. Patch by Troy J. Farrell. - -- Issue #5975: Add csv.unix_dialect class. - -- Issue #7761: telnetlib.interact failures on Windows fixed. - -- logging: Added style option to Formatter to allow %, {} or $-formatting. - -- Issue #5178: Added tempfile.TemporaryDirectory class that can be used as a - context manager. - -- Issue #1349106: Generator (and BytesGenerator) flatten method and Header - encode method now support a 'linesep' argument. - -- Issue #5639: Add a *server_hostname* argument to ``SSLContext.wrap_socket`` in - order to support the TLS SNI extension. ``HTTPSConnection`` and ``urlopen()`` - also use this argument, so that HTTPS virtual hosts are now supported. - -- Issue #10166: Avoid recursion in pstats Stats.add() for many stats items. - -- Issue #10163: Skip unreadable registry keys during mimetypes initialization. - -- logging: Made StreamHandler terminator configurable. - -- logging: Allowed filters to be just callables. - -- logging: Added tests for _logRecordClass changes. - -- Issue #10092: Properly reset locale in calendar.Locale*Calendar classes. - -- logging: Added _logRecordClass, getLogRecordClass, setLogRecordClass to - increase flexibility of LogRecord creation. - -- Issue #5117: Case normalization was needed on ntpath.relpath(). Also fixed - root directory issue on posixpath.relpath(). (Ported working fixes from - ntpath.) - -- Issue #1343: xml.sax.saxutils.XMLGenerator now has an option - short_empty_elements to direct it to use self-closing tags when appropriate. - -- Issue #9807 (part 1): Expose the ABI flags in sys.abiflags. Add --abiflags - switch to python-config for command line access. - -- Issue #6098: Don't claim DOM level 3 conformance in minidom. - -- Issue #5762: Fix AttributeError raised by ``xml.dom.minidom`` when an empty - XML namespace attribute is encountered. - -- Issue #2830: Add the ``html.escape()`` function, which quotes all problematic - characters by default. Deprecate ``cgi.escape()``. - -- Issue #9409: Fix the regex to match all kind of filenames, for interactive - debugging in doctests. - -- Issue #9183: ``datetime.timezone(datetime.timedelta(0))`` will now return the - same instance as ``datetime.timezone.utc``. - -- Issue #7523: Add SOCK_CLOEXEC and SOCK_NONBLOCK to the socket module, where - supported by the system. Patch by Nikita Vetoshkin. - -- Issue #10063: file:// scheme will stop accessing remote hosts via ftp - protocol. file:// urls had fallback to access remote hosts via ftp. This was - not correct, change is made to raise a URLError when a remote host is tried to - access via file:// scheme. - -- Issue #1710703: Write structures for an empty ZIP archive when a ZipFile is - created in modes 'a' or 'w' and then closed without adding any files. Raise - BadZipfile (rather than IOError) when opening small non-ZIP files. - -- Issue #10041: The signature of optional arguments in socket.makefile() didn't - match that of io.open(), and they also didn't get forwarded properly to - TextIOWrapper in text mode. Patch by Kai Zhu. - -- Issue #9003: http.client.HTTPSConnection, urllib.request.HTTPSHandler and - urllib.request.urlopen now take optional arguments to allow for server - certificate checking, as recommended in public uses of HTTPS. - -- Issue #6612: Fix site and sysconfig to catch os.getcwd() error, eg. if the - current directory was deleted. Patch written by W. Trevor King. - -- Issue #3873: Speed up unpickling from file objects that have a peek() method. - -- Issue #10075: Add a session_stats() method to SSLContext objects. - -- Issue #9948: Fixed problem of losing filename case information. - -Extension Modules ------------------ - -- Issue #5109: array.array constructor will now use fast code when - initial data is provided in an array object with correct type. - -- Issue #6317: Now winsound.PlaySound only accepts unicode. - -- Issue #6317: Now winsound.PlaySound can accept non ascii filename. - -- Issue #9377: Use Unicode API for gethostname on Windows. - -- Issue #10143: Update "os.pathconf" values. - -- Issue #6518: Support context manager protcol for ossaudiodev types. - -- Issue #678250: Make mmap flush a noop on ACCESS_READ and ACCESS_COPY. - -- Issue #9054: Fix a crash occurring when using the pyexpat module with expat - version 2.0.1. - -- Issue #5355: Provide mappings from Expat error numbers to string descriptions - and backwards, in order to actually make it possible to analyze error codes - provided by ExpatError. - -- The Unicode database was updated to 6.0.0. - -C-API ------ - -- Issue #10288: The deprecated family of "char"-handling macros - (ISLOWER()/ISUPPER()/etc) have now been removed: use Py_ISLOWER() etc instead. - -- Issue #9778: Hash values are now always the size of pointers. A new Py_hash_t - type has been introduced. - -Tools/Demos ------------ +- Issue #15298: ensure _sysconfigdata is generated in build directory, not + source directory. -- Issue #10117: Tools/scripts/reindent.py now accepts source files that use - encoding other than ASCII or UTF-8. Source encoding is preserved when - reindented code is written to a file. +- Issue #15833: Fix a regression in 3.3 that resulted in exceptions being + raised if importlib failed to write byte-compiled files. This affected + attempts to build Python out-of-tree from a read-only source directory. -- Issue #7287: Demo/imputil/knee.py was removed. +- Issue #15923: Fix a mistake in ``asdl_c.py`` that resulted in a TypeError + after 2801bf875a24 (see #15801). -Tests ------ +- Issue #15819: Make sure we can build Python out-of-tree from a read-only + source directory. (Somewhat related to issue #9860.) -- Issue #3699: Fix test_bigaddrspace and extend it to test bytestrings as well - as unicode strings. Initial patch by Sandro Tosi. +Documentation +------------- -- Issue #10294: Remove dead code form test_unicode_file. +- Additional comments and some style changes in the concurrent.futures URL + retrieval example -- Issue #10123: Don't use non-ascii filenames in test_doctest tests. Add a new - test specific to unicode (non-ascii name and filename). +- Issue #16115: Improve subprocess.Popen() documentation around args, shell, + and executable arguments. -Build ------ +- Issue #15533: Clarify docs and add tests for `subprocess.Popen()`'s cwd + argument. -- Issue #10268: Add a --enable-loadable-sqlite-extensions option to configure. +- Issue #15979: Improve timeit documentation. -- Issue #8852: Allow the socket module to build on OpenSolaris. +- Issue #16036: Improve documentation of built-in `int()`'s signature and + arguments. -- Drop -OPT:Olimit compiler option. +- Issue #15935: Clarification of `argparse` docs, re: add_argument() type and + default arguments. Patch contributed by Chris Jerdonek. -- Issue #10094: Use versioned .so files on GNU/kfreeBSD and the GNU Hurd. +- Issue #11964: Document a change in v3.2 to the behavior of the indent + parameter of json encoding operations. -- Accept Oracle Berkeley DB 5.0 and 5.1 as backend for the dbm extension. +Tools/Demos +----------- -- Issue #7473: avoid link errors when building a framework with a different set - of architectures than the one that is currently installed. +- Issue #15378: Fix Tools/unicode/comparecodecs.py. Patch by Serhiy Storchaka. -What's New in Python 3.2 Alpha 3? -================================= +What's New in Python 3.3.0? +=========================== -*Release date: 09-Oct-2010* +*Release date: 29-Sep-2012* Core and Builtins ----------------- diff --cc configure index 6e1825f689,708a0e198a..3dd173bf6f --- a/configure +++ b/configure @@@ -644,12 -645,15 +644,12 @@@ MKDIR_ INSTALL_DATA INSTALL_SCRIPT INSTALL_PROGRAM - HAS_PYTHON - DISABLE_ASDLGEN + PYTHON + ASDLGEN -HAS_HG -HGBRANCH -HGTAG -HGVERSION -BASECPPFLAGS -SVNVERSION +ac_ct_READELF +READELF ARFLAGS +ac_ct_AR AR RANLIB USE_INLINE @@@ -5922,17 -5281,17 +5922,18 @@@ if test "$cross_compiling" = yes; the fi + - DISABLE_ASDLGEN="" - # Extract the first word of "python", so it can be a program name with args. - set dummy python; ac_word=$2 + for ac_prog in python$PACKAGE_VERSION python3 python + do + # Extract the first word of "$ac_prog", so it can be a program name with args. + set dummy $ac_prog; ac_word=$2 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5 $as_echo_n "checking for $ac_word... " >&6; } - if ${ac_cv_prog_HAS_PYTHON+:} false; then : + if ${ac_cv_prog_PYTHON+:} false; then : $as_echo_n "(cached) " >&6 else - if test -n "$HAS_PYTHON"; then - ac_cv_prog_HAS_PYTHON="$HAS_PYTHON" # Let the user override the test. + if test -n "$PYTHON"; then + ac_cv_prog_PYTHON="$PYTHON" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR for as_dir in $PATH diff --cc configure.ac index 4eb6c43006,3e05304c4b..236951c24b --- a/configure.ac +++ b/configure.ac @@@ -990,22 -821,58 +990,22 @@@ the ARFLAGS="rc" fi -AC_SUBST(SVNVERSION) -AC_CHECK_PROG(SVNVERSION, svnversion, found, not-found) -if test $SVNVERSION = found -then - SVNVERSION="svnversion \$(srcdir)" -else - SVNVERSION="echo Unversioned directory" -fi - -AC_SUBST(BASECPPFLAGS) -if test "$abs_srcdir" != "$abs_builddir"; then - # If we're building out-of-tree, we need to make sure the following - # resources get picked up before their $srcdir counterparts. - # Objects/ -> typeslots.inc - # Include/ -> Python-ast.h, graminit.h - # Python/ -> importlib.h - # (A side effect of this is that these resources will automatically be - # regenerated when building out-of-tree, regardless of whether or not - # the $srcdir counterpart is up-to-date. This is an acceptable trade - # off.) - BASECPPFLAGS="-IObjects -IInclude -IPython" -else - BASECPPFLAGS="" -fi - -AC_SUBST(HGVERSION) -AC_SUBST(HGTAG) -AC_SUBST(HGBRANCH) - -if test -e $srcdir/.hg/dirstate -then -AC_CHECK_PROG(HAS_HG, hg, found, not-found) -else -HAS_HG=no-repository -fi -if test $HAS_HG = found -then - HGVERSION="hg id -i \$(srcdir)" - HGTAG="hg id -t \$(srcdir)" - HGBRANCH="hg id -b \$(srcdir)" -else - HGVERSION="" - HGTAG="" - HGBRANCH="" +AC_CHECK_TOOLS([READELF], [readelf], [:]) +if test "$cross_compiling" = yes; then + case "$READELF" in + readelf|:) + AC_MSG_ERROR([readelf for the host is required for cross builds]) + ;; + esac fi +AC_SUBST(READELF) - AC_SUBST(DISABLE_ASDLGEN) - DISABLE_ASDLGEN="" - AC_CHECK_PROG(HAS_PYTHON, python, found, not-found) - if test $HAS_HG != found -o $HAS_PYTHON != found - then - DISABLE_ASDLGEN="@echo hg: $HAS_HG, python: $HAS_PYTHON! cannot run \$(srcdir)/Parser/asdl_c.py #" + AC_SUBST(ASDLGEN) + AC_CHECK_PROGS(PYTHON, python$PACKAGE_VERSION python3 python, not-found) + if $PYTHON = not-found; then + ASDLGEN="@echo python: $PYTHON! cannot run \$(srcdir)/Parser/asdl_c.py #" + else + ASDLGEN="$PYTHON" fi