diff options
Diffstat (limited to 'Misc/NEWS')
-rw-r--r-- | Misc/NEWS | 1533 |
1 files changed, 0 insertions, 1533 deletions
@@ -89,1561 +89,28 @@ Core and Builtins - Issue #1564: The set implementation should special-case PyUnicode instead of PyString. -- Issue #1402: Fix a crash on exit, when another thread is still running, and - if the deallocation of its frames somehow calls the PyGILState_Ensure() / - PyGILState_Release() functions. - -- Expose the Py_Py3kWarningFlag as sys.py3kwarning. - -- Issue #1445: Fix a SystemError when accessing the ``cell_contents`` - attribute of an empty cell object. - -- Issue #1460: The utf-7 incremental decoder did not accept truncated input. - It now correctly saves its state between chunks of data. - -- Patch #1739468: Directories and zipfiles containing a __main__.py file can - now be directly executed by passing their name to the interpreter. The - directory/zipfile is automatically inserted as the first entry in sys.path. - -- Issue #1265: Fix a problem with sys.settrace, if the tracing function uses a - generator expression when at the same time the executed code is closing a - paused generator. - -- sets and frozensets now have an isdisjoint() method. - -- optimize the performance of builtin.sum(). - -- Fix warnings found by the new version of the Coverity checker. - -- The enumerate() builtin function is no longer bounded to sequences smaller - than LONG_MAX. Formerly, it raised an OverflowError. Now, automatically - shifts from ints to longs. - -- Issue #1686386: Tuple's tp_repr did not take into account the possibility of - having a self-referential tuple, which is possible from C code. Nor did - object's tp_str consider that a type's tp_str could do something that could - lead to an inifinite recursion. Py_ReprEnter() and Py_EnterRecursiveCall(), - respectively, fixed the issues. - -- Issue #1164: It was possible to trigger deadlock when using the 'print' - statement to write to a file since the GIL was not released as needed. Now - PyObject_Print() does the right thing along with various tp_print - implementations of the built-in types and those in the collections module. - -- Issue #1147: Exceptions were directly allowing string exceptions in their - throw() method even though string exceptions no longer allowed. - -- Issue #1096: Prevent a segfault from getting the repr of a very deeply nested - list by using the recursion counter. - -- Issue #1202533: Fix infinite recursion calls triggered by calls to - PyObject_Call() never calling back out to Python code to trigger recursion - depth updates/checks. Required the creation of a static RuntimeError - instance in case normalizing an exception put the recursion check value past - its limit. Fixes crashers infinite_rec_(1|2|4|5).py. - - Patch #1031213: Decode source line in SyntaxErrors back to its original source encoding. -- Patch #1673759: add a missing overflow check when formatting floats - with %G. - -- Prevent expandtabs() on string and unicode objects from causing a segfault - when a large width is passed on 32-bit platforms. - -- Bug #1733488: Fix compilation of bufferobject.c on AIX. - -- Bug #1722485: remove docstrings again when running with -OO. - -- Add new attribute names for function objects. All the func_* become - __*__ attributes. (Some already existed, e.g., __doc__ and __name__.) - -- Add -3 option to the interpreter to warn about features that are - deprecated and will be changed/removed in Python 3.0. - -- Patch #1686487: you can now pass any mapping after '**' in function - calls. - -- except clauses may now be spelled either "except E, target:" or - "except E as target:". This is to provide forwards compatibility with - Python 3.0. - -- Deprecate BaseException.message as per PEP 352. - -- Bug #1303614: don't expose object's __dict__ when the dict is - inherited from a builtin base. - -- When __slots__ are set to a unicode string, make it work the same as - setting a plain string, ie don't expand to single letter identifiers. - -- Request #1191699: Slices can now be pickled. - -- Request #1193128: str.translate() now allows a None argument for - translations that only remove characters without re-mapping the - remaining characters. - -- Patch #1682205: a TypeError while unpacking an iterable is no longer - masked by a generic one with the message "unpack non-sequence". - -- Remove unused file Python/fmod.c. - -- Bug #1683368: The object.__init__() and object.__new__() methods are - now stricter in rejecting excess arguments. The only time when - either allows excess arguments is when it is not overridden and the - other one is. For backwards compatibility, when both are - overridden, it is a deprecation warning (for now; maybe a Py3k - warning later). Also, type.__init__() insists on the same signature - as supported by type.__new__(). - -- Patch #1675423: PyComplex_AsCComplex() now tries to convert an object - to complex using its __complex__() method before falling back to the - __float__() method. Therefore, the functions in the cmath module now - can operate on objects that define a __complex__() method. - -- Patch #1623563: allow __class__ assignment for classes with __slots__. - The old and the new class are still required to have the same slot names. - -- Patch #1642547: Fix an error/crash when encountering syntax errors in - complex if statements. - -- Patch #1462488: Python no longer segfaults when ``object.__reduce_ex__()`` - is called with an object that is faking its type. - -- Patch #1680015: Don't modify __slots__ tuple if it contains an unicode - name. - -- Patch #1444529: the builtin compile() now accepts keyword arguments. - -- Bug #1678647: write a newline after printing an exception in any - case, even when converting the value to a string failed. - -- The dir() function has been extended to call the __dir__() method on - its argument, if it exists. If not, it will work like before. This allows - customizing the output of dir() in the presence of a __getattr__(). - -- Patch #922167: Python no longer segfaults when faced with infinitely - self-recursive reload() calls (as reported by bug #742342). - -- Patch #1675981: remove unreachable code from ``type.__new__()`` method. - -- Patch #1491866: change the complex() constructor to allow parthensized - forms. This means complex(repr(x)) now works instead of raising a - ValueError. - -- Patch #703779: unset __file__ in __main__ after running a file. This - makes the filenames the warning module prints much more sensible when - a PYTHONSTARTUP file is used. - -- Variant of patch #697613: don't exit the interpreter on a SystemExit - exception if the -i command line option or PYTHONINSPECT environment - variable is given, but break into the interactive interpreter just like - on other exceptions or normal program exit. - -- Patch #1638879: don't accept strings with embedded NUL bytes in long(). - -- Bug #1674503: close the file opened by execfile() in an error condition. - -- Patch #1674228: when assigning a slice (old-style), check for the - sq_ass_slice instead of the sq_slice slot. - -- When printing an unraisable error, don't print exceptions. before the name. - This duplicates the behavior whening normally printing exceptions. - -- Bug #1653736: Properly discard third argument to slot_nb_inplace_power. - -- PEP 352: Raising a string exception now triggers a TypeError. Attempting to - catch a string exception raises DeprecationWarning. - -- Bug #1377858: Fix the segfaulting of the interpreter when an object created - a weakref on itself during a __del__ call for new-style classes (classic - classes still have the bug). - -- Bug #1579370: Make PyTraceBack_Here use the current thread, not the - frame's thread state. - -- patch #1630975: Fix crash when replacing sys.stdout in sitecustomize.py - -- Prevent seg fault on shutdown which could occur if an object - raised a warning. - -- Bug #1566280: Explicitly invoke threading._shutdown from Py_Main, - to avoid relying on atexit. - -- Bug #1590891: random.randrange don't return correct value for big number - -- Patch #1586791: Better exception messages for some operations on strings, - tuples and lists. - -- Bug #1067760: Deprecate passing floats to file.seek. - -- Bug #1591996: Correctly forward exception in instance_contains(). - -- Bug #1588287: fix invalid assertion for `1,2` in debug builds. - -- Bug #1576657: when setting a KeyError for a tuple key, make sure that - the tuple isn't used as the "exception arguments tuple". - -- Bug #1565514, SystemError not raised on too many nested blocks. - -- Bug #1576174: WindowsError now displays the windows error code - again, no longer the posix error code. - -- Patch #1549049: Support long values in structmember, issue warnings - if the assigned value for structmember fields gets truncated. - -- Update the peephole optimizer to remove more dead code (jumps after returns) - and inline unconditional jumps to returns. - -- Bug #1545497: when given an explicit base, int() did ignore NULs - embedded in the string to convert. - -- Bug #1569998: break inside a try statement (outside a loop) is now - recognized and rejected. - -- list.pop(x) accepts any object x following the __index__ protocol. - -- A number of places, including integer negation and absolute value, - were fixed to not rely on undefined behaviour of the C compiler - anymore. - -- Bug #1566800: make sure that EnvironmentError can be called with any - number of arguments, as was the case in Python 2.4. - -- Patch #1567691: super() and new.instancemethod() now don't accept - keyword arguments any more (previously they accepted them, but didn't - use them). - -- Fix a bug in the parser's future statement handling that led to "with" - not being recognized as a keyword after, e.g., this statement: - from __future__ import division, with_statement - -- Bug #1557232: fix seg fault with def f((((x)))) and def f(((x),)). - -- Fix %zd string formatting on Mac OS X so it prints negative numbers. - -- Allow exception instances to be directly sliced again. - -- Bug #1551432: Exceptions do not define an explicit __unicode__ method. This - allows calling unicode() on exceptions classes directly to succeed. - -- Bug #1542051: Exceptions now correctly call PyObject_GC_UnTrack. - Also make sure that every exception class has __module__ set to - 'exceptions'. - -- Bug #1550983: emit better error messages for erroneous relative - imports (if not in package and if beyond toplevel package). - -- Overflow checking code in integer division ran afoul of new gcc - optimizations. Changed to be more standard-conforming. - -- Patch #1542451: disallow continue anywhere under a finally. - -- Patch #1546288: fix seg fault in dict_equal due to ref counting bug. - -- The return tuple from str.rpartition(sep) is (tail, sep, head) where - head is the original string if sep was not found. - -- Bug #1520864: unpacking singleton tuples in list comprehensions and - generator expressions (x for x, in ... ) works again. Fixing this problem - required changing the .pyc magic number. This means that .pyc files - generated before 2.5c2 will be regenerated. - -- ``with`` and ``as`` are now keywords. - -- Bug #1664966: Fix crash in exec if Unicode filename can't be decoded. - -- Issue #1537: Changed GeneratorExit's base class from Exception to - BaseException. - -- Fix Issue #1703448: A joined thread could show up in the - threading.enumerate() list after the join() for a brief period until - it actually exited. - - -Library -------- - - inspect.getsource() includes the decorators again. -- Issue #1916. Added isgenerator() and isgeneratorfunction() to inspect.py. - -- #1224: Fixed bad url parsing when path begins with double slash. - -- ctypes instances that are not or do not contain pointers can now be - pickled. - -- Patch #1966: Break infinite loop in httplib when the servers - implements the chunked encoding incorrectly. - -- Rename rational.py to fractions.py and the rational.Rational class - to fractions.Fraction, to avoid the name clash with the abstract - base class numbers.Rational. See discussion in issue #1682. - -- The pickletools module now provides an optimize() function - that eliminates unused PUT opcodes from a pickle string. - -- #2021: Allow tempfile.NamedTemporaryFile and SpooledTemporaryFile - to be used in with statements by correctly supporting the context - management protocol. - -- #1979: Add rich comparisons to Decimal, and make Decimal comparisons - involving a NaN follow the IEEE 754 standard. - -- #2004: tarfile.py: Use mode 0700 for temporary directories and default - permissions for missing directories. - -- #175006: The debugger used to skip the condition of a "while" statement - after the first iteration. Now it correctly steps on the expression, and - breakpoints on the "while" statement are honored on each loop. - -- #1765140: add an optional delay argument to FileHandler and its - subclasses. Defaults to false (existing behaviour), but if true, - defers opening the file until the first call to emit(). - -- The pprint module now supports sets and frozensets. - -- #1221598: add optional callbacks to ftplib.FTP's storbinary() and - storlines() methods. (Contributed by Phil Schwartz) - -- #1715: include sub-extension modules in pydoc's text output. - -- #1836: fix an off-by-one bug in TimedRotatingHandler's rollover - time calculation. - -- #1021: fix a bug to allow basicConfig to accept NOTSET as a level. - -- #932563: add LoggerAdapter convenience class to make it easier to add - contextual information in logging output. - -- #1760556: fix a bug to avoid FileHandler throwing an exception in - flush(). - -- Bug #1530959: distutils' build command now uses different build directory - when building extension modules against versions of Python compiled - with ``--with-pydebug``. - -- #1555501: move plistlib from plat-mac directory to general library. - -- #1269: fix a bug in pstats.add_callers() and add a unit test file for - pstats. - -- #1669: don't allow shutil.rmtree() to be called on a symlink to a - directory. - -- #1664522: in urllib, don't read non-existing directories in ftp mode, - returning a 0-byte file -- raise an IOError instead. - -- #856047: respect the ``no_proxy`` environment variable when using the - ``http_proxy`` etc. environment variables in urllib. - -- #1178141: add a getcode() method to the addinfourls that urllib.open() - returns so that you can retrieve the HTTP status code. - -- Issue #1003: Fix zipfile decryption check, it would fail zip files - with extended local headers. - -- #1189216: Fix the zipfile module to work on archives with headers - past the 2**31 byte boundary. - -- #1336: fix a race condition in subprocess.Popen if the garbage - collector kicked in at the wrong time that would cause the process - to hang when the child wrote to stderr. - -- #1146: fix how textwrap breaks a long word that would start in the - last column of a line. - -- #1693149: trace.py --ignore-module - accept multiple comma-separated - modules to be given. - -- #1822: MIMEMultipart.is_multipart() behaves correctly for a just-created - (and empty) instance. Thanks Jonathan Share. - -- #1861: Added an attribute to the sched module which returns an ordered - list of upcoming events (displayed as named tuples). - -- #1837: The queue module now also supports a LIFO queue and a priority queue. - -- Patch #1048820: Add insert-mode editing to curses.textpad.Textbox - (patch by Stefan Wehr). Also, fix an off-by-one bug in - Textbox.gather(). - -- Issue #1831: ctypes now raises a TypeError if conflicting positional - and named arguments are passed to a Structure or Union initializer. - When too many positional arguments are passed, also a TypeError is - raised instead of a ValueError. - -- Convert the internal ctypes array type cache to a WeakValueDict so - that array types do not live longer than needed. - -- Issue #1786: pdb should use its own stdin/stdout around an exec call - and when creating a recursive instance. - -- Issue #1698398 Zipfile.printdir() crashed because the format string - expected a tuple type of length six instead of time.struct_time object. - -- Issue #1780: The Decimal constructor now accepts arbitrary leading - and trailing whitespace when constructing from a string. - Context.create_decimal no longer accepts trailing newlines. - -- Decimal.as_tuple(), difflib.find_longest_match() and inspect functions - that returned a tuple now return a named tuple. - -- Doctest now returns results as a named tuple for readability: - (0, 7) --> TestResults(failed=0, attempted=7) - -- Issue #846388. re.match is interruptible now, which is particularly - good for long regular expression matches. - -- pyexpat, patch #1137: allow setting buffer_size attribute - on Parser objects to set the character data buffer size. - -- Issue #1757: The hash of a Decimal instance is no longer affected by - the current context. - -- Patch #467924: add ZipFile.extract() and ZipFile.extractall() in the - zipfile module. - -- Issue #1646: Make socket support the TIPC protocol. - -- Bug #1742: return os.curdir from os.path.relpath() if both arguments are - equal instead of raising an exception. - -- Patch #1637: fix urlparse for URLs like 'http://x.com?arg=/foo'. - -- Patch #1698: allow '@' in username parsed by urlparse.py. - -- Issue #1735: TarFile.extractall() now correctly sets directory permissions - and times. - - Bug #1713: posixpath.ismount() claims symlink to a mountpoint is a mountpoint. -- Bug #1687: Fxed plistlib.py restricts <integer> to Python int when writing - -- Issue #1700: Regular expression inline flags incorrectly handle certain - unicode characters. - -- Issue #1689: PEP 3141, numeric abstract base classes. - -- Tk issue #1851526: Return results from Python callbacks to Tcl as - Tcl objects. - -- Issue #1642: Fix segfault in ctypes when trying to delete attributes. - -- Issue #1727780: Support loading pickles of random.Random objects created - on 32-bit systems on 64-bit systems, and vice versa. As a consequence - of the change, Random pickles created by Python 2.6 cannot be loaded - in Python 2.5. - -- Issue #1455: The distutils package now supports VS 2005 and VS 2008 for - both the msvccompiler and cygwincompiler. - -- Issue #1531: tarfile.py: Read fileobj from the current offset, do not - seek to the start. - -- Issue #1534: Added a dictionary sys.float_info with information about the - internal floating point type to the sys module. - -- Issue 1429818: patch for trace and doctest modules so they play nicely - together. - -- doctest made a bad assumption that a package's __loader__.get_data() - method used universal newlines. - -- Issue #1705170: contextlib.contextmanager was still swallowing - StopIteration in some cases. This should no longer happen. - -- Issue #1292: On alpha, arm, ppc, and s390 linux systems the - --with-system-ffi configure option defaults to "yes". - -- IN module for FreeBSD 8 is added and preexisting FreeBSD 6 and 7 - files are updated. - -- Issues #1181, #1287: unsetenv() is now called when the os.environ.pop() - and os.environ.clear() methods are used. - -- ctypes will now work correctly on 32-bit systems when Python is - configured with --with-system-ffi. - -- Patch #1203: ctypes now does work on OS X when Python is built with - --disable-toolbox-glue. - -- collections.deque() now supports a "maxlen" argument. - -- itertools.count() is no longer bounded to LONG_MAX. Formerly, it raised - an OverflowError. Now, automatically shifts from ints to longs. - -- Patch #1541463: optimize performance of cgi.FieldStorage operations. - -- Decimal is fully updated to the latest Decimal Specification (v1.66). - -- Bug #1153: repr.repr() now doesn't require set and dictionary items - to be orderable to properly represent them. - -- A 'c_longdouble' type was added to the ctypes module. - -- Bug #1709599: Run test_1565150 only if the file system is NTFS. - -- When encountering a password-protected robots.txt file the RobotFileParser - no longer prompts interactively for a username and password (bug 813986). - -- TarFile.__init__() no longer fails if no name argument is passed and - the fileobj argument has no usable name attribute (e.g. StringIO). - -- The functools module now provides 'reduce', for forward compatibility - with Python 3000. - -- Server-side SSL support and cert verification added, by Bill Janssen. - -- socket.ssl deprecated; use new ssl module instead. - -- uuid creation is now threadsafe. - -- EUC-KR codec now handles the cheot-ga-keut composed make-up hangul - syllables. - -- GB18030 codec now can encode additional two-byte characters that - are missing in GBK. - -- Add new codecs for UTF-32, UTF-32-LE and UTF-32-BE. - -- Bug #1704793: Return UTF-16 pair if unicodedata.lookup cannot - represent the result in a single character. - -- Bug #978833: Close https sockets by releasing the _ssl object. - -- Change location of the package index to pypi.python.org/pypi - -- Bug #1701409: Fix a segfault in printing ctypes.c_char_p and - ctypes.c_wchar_p when they point to an invalid location. As a - sideeffect the representation of these instances has changed. - -- tarfile.py: Added "exclude" keyword argument to TarFile.add(). - -- Bug #1734723: Fix repr.Repr() so it doesn't ignore the maxtuple attribute. - -- The urlopen function of urllib2 now has an optional timeout parameter (note - that it actually works with HTTP, HTTPS, FTP and FTPS connections). - -- In ftplib, the FTP.ntransfercmd method, when in passive mode, now uses - the socket.create_connection function, using the timeout specified at - connection time. - -- Bug #1728403: Fix a bug that CJKCodecs StreamReader hangs when it - reads a file that ends with incomplete sequence and sizehint argument - for .read() is specified. - -- Bug #1730389: Change time.strptime() to use ``\s+`` instead of ``\s*`` when - matching spaces in the specified format argument. - -- SF 1668596/1720897: distutils now copies data files - even if package_dir is empty. - -- sha now raises a DeprecationWarning upon import. - -- md5 now raises a DeprecationWarning upon import. - -- Issue1385: The hmac module now computes the correct hmac when using hashes - with a block size other than 64 bytes (such as sha384 and sha512). - -- mimify now raises a DeprecationWarning upon import. - -- MimeWriter now raises a DeprecationWarning upon import. - -- tarfile.py: Improved unicode support. Unicode input names are now - officially supported. Added "errors" argument to the TarFile class. - -- urllib.ftpwrapper class now accepts an optional timeout. - -- shlex.split() now has an optional "posix" parameter. - -- The posixfile module now raises a DeprecationWarning. - -- Remove the gopherlib module. This also leads to the removal of gopher - support in urllib/urllib2. - -- Fix bug in marshal where bad data would cause a segfault due to - lack of an infinite recursion check. - -- Removed plat-freebsd2 and plat-freebsd3 directories (and IN.py in - the directories). - -- HTML-escape the plain traceback in cgitb's HTML output, to prevent - the traceback inadvertently or maliciously closing the comment and - injecting HTML into the error page. - -- The popen2 module and os.popen* are deprecated. Use the subprocess module. - -- Added an optional credentials argument to SMTPHandler, for use with SMTP - servers which require authentication. - -- Patch #1695948: Added optional timeout parameter to SocketHandler. - -- Bug #1652788: Minor fix for currentframe. - -- Patch #1598415: Added WatchedFileHandler to better support external - log file rotation using e.g. newsyslog or logrotate. This handler is - only useful in Unix/Linux environments. - -- Bug #1706381: Specifying the SWIG option "-c++" in the setup.py file - (as opposed to the command line) will now write file names ending in - ".cpp" too. - -- As specified in RFC 2616, an HTTP response like 2xx indicates that - the client's request was successfully received, understood, and accepted. - Now in these cases no error is raised in urllib (issue #1177) and urllib2. - -- Bug #1290505: time.strptime's internal cache of locale information is now - properly recreated when the locale is changed. - -- Patch #1685563: remove (don't add) duplicate paths in distutils.MSVCCompiler. - -- Added a timeout parameter to the constructor of other protocols - (telnetlib, ftplib, smtplib and poplib). This is second part of the - work started with create_connection() and timeout in httplib, and - closes patch #723312. - -- Patch #1676823: Added create_connection() to socket.py, which may be - called with a timeout, and use it from httplib (whose HTTPConnection - and HTTPSConnection now accept an optional timeout). - -- Bug #978833: Revert r50844, as it broke _socketobject.dup. - -- Bug #1675967: re patterns pickled with Python 2.4 and earlier can - now be unpickled with Python 2.5 and newer. - -- Patch #1630118: add a SpooledTemporaryFile class to tempfile.py. - -- Patch #1273829: os.walk() now has a "followlinks" parameter. If set to - True (which is not the default), it visits symlinks pointing to - directories. - -- Bug #1681228: the webbrowser module now correctly uses the default - GNOME or KDE browser, depending on whether there is a session of one - of those present. Also, it tries the Windows default browser before - trying Mozilla variants. - -- Patch #1339796: add a relpath() function to os.path. - -- Patch #1681153: the wave module now closes a file object it opened if - initialization failed. - -- Bug #767111: fix long-standing bug in urllib which caused an - AttributeError instead of an IOError when the server's response didn't - contain a valid HTTP status line. - -- Patch #957650: "%var%" environment variable references are now properly - expanded in ntpath.expandvars(), also "~user" home directory references - are recognized and handled on Windows. - -- Patch #1429539: pdb now correctly initializes the __main__ module for - the debugged script, which means that imports from __main__ work - correctly now. - -- The nonobvious commands.getstatus() function is now deprecated. - -- Patch #1393667: pdb now has a "run" command which restarts the debugged - Python program, optionally with different arguments. - -- Patch #1649190: Adding support for _Bool to ctypes as c_bool. - -- Patch #1530482: add pydoc.render_doc() which returns the documentation - for a thing instead of paging it to stdout, which pydoc.doc() does. - -- Patch #1533909: the timeit module now accepts callables in addition to - strings for the code to time and the setup code. Also added two - convenience functions for instantiating a Timer and calling its methods. - -- Patch #1537850: tempfile.NamedTemporaryFile now has a "delete" parameter - which can be set to False to prevent the default delete-on-close - behavior. - -- Patch #1581073: add a flag to textwrap that prevents the dropping of - whitespace while wrapping. - -- Patch #1603688: ConfigParser.SafeConfigParser now checks values that - are set for invalid interpolation sequences that would lead to errors - on reading back those values. - -- Added support for the POSIX.1-2001 (pax) format to tarfile.py. Extended - and cleaned up the test suite. Added a new testtar.tar. - -- Patch #1449244: Support Unicode strings in - email.message.Message.{set_charset,get_content_charset}. - -- Patch #1542681: add entries for "with", "as" and "CONTEXTMANAGERS" to - pydoc's help keywords. - -- Patch #1555098: use str.join() instead of repeated string - concatenation in robotparser. - -- Patch #1635454: the csv.DictWriter class now includes the offending - field names in its exception message if you try to write a record with - a dictionary containing fields not in the CSV field names list. - -- Patch #1668100: urllib2 now correctly raises URLError instead of - OSError if accessing a local file via the file:// protocol fails. - -- Patch #1677862: Require a space or tab after import in .pth files. - -- Patch #1192590: Fix pdb's "ignore" and "condition" commands so they trap - the IndexError caused by passing in an invalid breakpoint number. - -- Patch #1599845: Add an option to disable the implicit calls to server_bind() - and server_activate() in the constructors for TCPServer, SimpleXMLRPCServer - and DocXMLRPCServer. - -- Bug #1531963: Make SocketServer.TCPServer's server_address always - be equal to calling getsockname() on the server's socket. Fixed by - patch #1545011. - -- Patch #742598: Add .timeout attribute to SocketServer that calls - .handle_timeout() when no requests are received. - -- Bug #1651235: When a tuple was passed to a ctypes function call, - Python would crash instead of raising an error. - -- Bug #1646630: ctypes.string_at(buf, 0) and ctypes.wstring_at(buf, 0) - returned string up to the first NUL character. - -- Patch #957003: Implement smtplib.LMTP. - -- Patch #1481079: add support for HTTP_REFERER to CGIHTTPServer. - -- Patch #1675424: Added tests for uncovered code in the zipfile module. - The KeyError raised by Zipfile.getinfo for nonexistent names now has - a descriptive message. - -- Bug #1115886: os.path.splitext('.cshrc') gives now ('.cshrc', ''). - -- unittest now verifies more of its assumptions. In particular, TestCase - and TestSuite subclasses (not instances) are no longer accepted in - TestSuite.addTest(). This should cause no incompatibility since it - never made sense with ordinary subclasses -- the failure just occurred - later, with a more cumbersome exception. - -- Patch #787789: allow to pass custom TestRunner instances to unittest's - main() function. - -- Patches #1550273, #1550272: fix a few bugs in unittest and add a - comprehensive test suite for the module. - -- Patch #1001604: glob.glob() now returns unicode filenames if it was - given a unicode argument and os.listdir() returns unicode filenames. - -- Patch #1673619: setup.py identifies extension modules it doesn't know how - to build and those it knows how to build but that fail to build. - -- Patch #912410: Replace HTML entity references for attribute values - in HTMLParser. - -- Patch #1663234: you can now run doctest on test files and modules - using "python -m doctest [-v] filename ...". - -- Patch #1121142: Implement ZipFile.open. - -- Taught setup.py how to locate Berkeley DB on Macs using MacPorts. - -- Added heapq.merge() for merging sorted input streams. - -- Added collections.namedtuple() for assigning field names to tuples. - -- Added itertools.izip_longest(). - -- Have the encoding package's search function dynamically import using absolute - import semantics. - -- Patch #1647484: Renamed GzipFile's filename attribute to name. - -- Patch #1517891: Mode 'a' for ZipFile now creates the file if it - doesn't exist. - -- Patch #698833: Support file decryption in zipfile. - -- Patch #685268: Consider a package's __path__ in imputil. - -- Patch 1463026: Support default namespace in XMLGenerator. - -- Patch 1571379: Make trace's --ignore-dir facility work in the face of - relative directory names. - -- Bug #1600860: Search for shared python library in LIBDIR, - not lib/python/config, on "linux" and "gnu" systems. - -- Patch #1652681: tarfile.py: create nonexistent files in append mode and - allow appending to empty files. - -- Bug #1124861: Automatically create pipes if GetStdHandle fails in - subprocess. - -- Patch #1634778: add missing encoding aliases for iso8859_15 and - iso8859_16. - -- Patch #1638243: the compiler package is now able to correctly compile - a with statement; previously, executing code containing a with statement - compiled by the compiler package crashed the interpreter. - -- Bug #1643943: Fix time.strptime's support for the %U directive. - -- Patch #1507247: tarfile.py: use current umask for intermediate - directories. - -- Patch #1627441: close sockets properly in urllib2. - -- Bug #494589: make ntpath.expandvars behave according to its docstring. - -- Changed platform module API python_version_tuple() to actually - return a tuple (it used to return a list). - -- Added new platform module APIs python_branch(), python_revision(), - python_implementation() and linux_distribution(). - -- Added support for IronPython and Jython to the platform module. - -- The sets module has been deprecated. Use the built-in set/frozenset types - instead. - -- Bug #1610795: make ctypes.util.find_library work on BSD systems. - -- Fixes for 64-bit Windows: In ctypes.wintypes, correct the - definitions of HANDLE, WPARAM, LPARAM data types. Make - parameterless foreign function calls work. - -- The version number of the ctypes package changed to "1.1.0". - -- Bug #1627575: logging: Added _open() method to FileHandler which can - be used to reopen files. The FileHandler instance now saves the - encoding (which can be None) in an attribute called "encoding". - -- Bug #411881: logging.handlers: bare except clause removed from - SMTPHandler.emit. Now, only ImportError is trapped. - -- Bug #411881: logging.handlers: bare except clause removed from - SocketHandler.createSocket. Now, only socket.error is trapped. - -- Bug #411881: logging: bare except clause removed from LogRecord.__init__. - Now, only ValueError, TypeError and AttributeError are trapped. - -- Patch #1504073: Fix tarfile.open() for mode "r" with a fileobj argument. - -- Patch #1182394 from Shane Holloway: speed up HMAC.hexdigest. - -- Patch #1262036: Prevent TarFiles from being added to themselves under - certain conditions. - -- Patch #1230446: tarfile.py: fix ExFileObject so that read() and tell() - work correctly together with readline(). - -- Patch #1484695: The tarfile module now raises a HeaderError exception - if a buffer given to frombuf() is invalid. - -- Bug #1503765: Fix a problem in logging.config with spaces in comma- - separated lists read from logging config files. - -- Patch #1604907: Fix problems in logging.handlers caused at logging shutdown - when syslog handlers fail to initialize because of syslogd problems. - -- Patch #1608267: fix a race condition in os.makedirs() if the directory - to be created is already there. - -- Patch #1610437: fix a tarfile bug with long filename headers. - -- Patch #1371075: Make ConfigParser accept optional dict type - for ordering, sorting, etc. - -- Bug #1563807: _ctypes built on AIX fails with ld ffi error. - -- Bug #1598620: A ctypes Structure cannot contain itself. - -- Patch #1070046: Marshal new-style objects like InstanceType - in xmlrpclib. - -- cStringIO.truncate(-1) now raises an IOError, like StringIO and - regular files. - -- Patch #1472877: Fix Tix subwidget name resolution. - -- Patch #1594554: Always close a tkSimpleDialog on ok(), even - if an exception occurs. - -- Patch #1538878: Don't make tkSimpleDialog dialogs transient if - the parent window is withdrawn. - -- Bug #1597824: return the registered function from atexit.register() - to facilitate usage as a decorator. - -- Patch #1360200: Use unmangled_version RPM spec field to deal with - file name mangling. - -- Patch #1359217: Process 2xx response in an ftplib transfer - that precedes an 1xx response. - -- Patch #1355023: support whence argument for GzipFile.seek. - -- Patch #1065257: Support passing open files as body in - HTTPConnection.request(). - -- Bug #1569790: mailbox.py: Maildir.get_folder() and MH.get_folder() - weren't passing the message factory on to newly created Maildir/MH - objects. - -- Patch #1514543: mailbox.py: In the Maildir class, report errors if there's - a filename clash instead of possibly losing a message. (Patch by David - Watson.) - -- Patch #1514544: Try to ensure that messages/indexes have been physically - written to disk after calling .flush() or .close(). (Patch by David - Watson.) - -- Patch #1592250: Add elidge argument to Tkinter.Text.search. - -- Patch #838546: Make terminal become controlling in pty.fork() - -- Patch #1351744: Add askyesnocancel helper for tkMessageBox. - -- Patch #1060577: Extract list of RPM files from spec file in - bdist_rpm - -- Bug #1586613: fix zlib and bz2 codecs' incremental en/decoders. - -- Patch #1583880: fix tarfile's problems with long names and posix/ - GNU modes. - -- Bug #1586448: the compiler module now emits the same bytecode for - list comprehensions as the builtin compiler, using the LIST_APPEND - opcode. - -- Fix codecs.EncodedFile which did not use file_encoding in 2.5.0, and - fix all codecs file wrappers to work correctly with the "with" - statement (bug #1586513). - -- Lib/modulefinder.py now handles absolute and relative imports - correctly. - -- Patch #1567274: Support SMTP over TLS. - -- Patch #1560695: Add .note.GNU-stack to ctypes' sysv.S so that - ctypes isn't considered as requiring executable stacks. - -- ctypes callback functions only support 'fundamental' data types as - result type. Raise an error when something else is used. This is a - partial fix for Bug #1574584. - -- Fix turtle so that time.sleep is imported for the entire library. Allows - the demo2 function to be executed on its own instead of only when the - module is run as a script. - -- Bug #813342: Start the IDLE subprocess with -Qnew if the parent - is started with that option. - -- Bug #1565150: Fix subsecond processing for os.utime on Windows. - -- Support for MSVC 8 was added to bdist_wininst. - -- Bug #1446043: correctly raise a LookupError if an encoding name given - to encodings.search_function() contains a dot. - -- Bug #1560617: in pyclbr, return full module name not only for classes, - but also for functions. - -- Bug #1457823: cgi.(Sv)FormContentDict's constructor now takes - keep_blank_values and strict_parsing keyword arguments. - -- Bug #1566602: correct failure of posixpath unittest when $HOME ends - with a slash. - -- Bug #1565661: in webbrowser, split() the command for the default - GNOME browser in case it is a command with args. - -- Made the error message for time.strptime when the data data and format do - match be more clear. - -- Fix a bug in traceback.format_exception_only() that led to an error - being raised when print_exc() was called without an exception set. - In version 2.4, this printed "None", restored that behavior. - -- Make webbrowser.BackgroundBrowser usable in Windows (it wasn't because - the close_fds arg to subprocess.Popen is not supported). - -- Reverted patch #1504333 to sgmllib because it introduced an infinite loop. - -- Patch #1553314: Fix the inspect.py slowdown that was hurting IPython & SAGE - by adding smarter caching in inspect.getmodule() - -- Fix missing import of the types module in logging.config. - -- Patch #1550886: Fix decimal module context management implementation - to match the localcontext() example from PEP 343. - -- Bug #1545341: The 'classifier' keyword argument to the Distutils setup() - function now accepts tuples as well as lists. - -- Bug #1541863: uuid.uuid1 failed to generate unique identifiers - on systems with low clock resolution. - -- Bug #1531862: Do not close standard file descriptors in subprocess. - -- idle: Honor the "Cancel" action in the save dialog (Debian bug #299092). - - Fix utf-8-sig incremental decoder, which didn't recognise a BOM when the first chunk fed to the decoder started with a BOM, but was longer than 3 bytes. -- The implementation of UnicodeError objects has been simplified (start and end - attributes are now stored directly as Py_ssize_t members). - -- Issue829951: In the smtplib module, SMTP.starttls() now complies with - RFC 3207 and forgets any knowledge obtained from the server not obtained - from the TLS negotiation itself. Patch contributed by Bill Fenner. - -- Issue1339: The smtplib.SMTP class has been refactored a bit such - that the SMTP.starttls() caller no longer needs to call ehlo() - beforehand. SMTP.starttls() now raises an exception of the server - does not claim to support starttls. Adds the SMTP.ehlo_or_helo_if_needed() - method. Patch contributed by Bill Fenner. - Extension Modules ----------------- - Issue #1762972: Readded the reload() function as imp.reload() -- #2112: mmap.error is now a subclass of EnvironmentError and not a - direct EnvironmentError - - Bug #2111: mmap segfaults when trying to write a block opened with PROT_READ - #2063: correct order of utime and stime in os.times() result on Windows. -- Updated ``big5hkscs`` codec to the HKSCS revision of 2004. - -- #1940: make it possible to use curses.filter() before curses.initscr() - as the documentation says. - -- Backport of _fileio module from Python 3.0. - -- #1087741: mmap.mmap is now a class, not a factory function. It is also - subclassable now. - -- Patch #1648: added ``sys.getprofile()`` and ``sys.gettrace()``. - -- Patch #1663329: added ``os.closerange()`` function to quickly close a range - of file descriptors without considering errors. - -- Patch 976880: ``mmap`` objects now have an ``rfind`` method that - works as expected. ``mmap.find`` also takes an optional ``end`` - parameter. - -- _winreg's HKEY object has gained __enter__ and __exit__ methods to support - the context manager protocol. The _winreg module also gained a new function - ``ExpandEnvironmentStrings`` to expand REG_EXPAND_SZ keys. - -- itertools.starmap() now accepts any iterable input. Previously, it required - the function inputs to be tuples. - -- Issue #1646: Make socket support TIPC. The socket module now has support - for TIPC under Linux, see http://tipc.sf.net/ for more information. - -- Added interface for Windows' WSAIoctl to socket object and added an example - for a simple network sniffer. - -- Bug #1301: Bad assert in _tkinter fixed. - -- Added bdist_wininst executable for VS 2008. - -- Bug #1604: collections.deque.__init__(iterable) now clears any prior contents - before adding elements from the iterable. This fix brings the behavior into - line with that for list.__init__(). - -- Added wide char functions to msvcrt module: getwch, getwche, putwch and - ungetwch. The functions accept or return unicode. - -- os.access now returns True on Windows for any existing directory. - -- Added warnpy3k function to the warnings module. - -- Marshal.dumps() now expects exact type matches for int, long, float, complex, - tuple, list, dict, set, and frozenset. Formerly, it would silently miscode - subclasses of those types. Now, it raises a ValueError instead. - -- Patch #1388440: Add set_completion_display_matches_hook and - get_completion_type to readline. - -- Bug #1649098: Avoid declaration of zero-sized array declaration in - structure. - -- Removed the rgbimg module; been deprecated since Python 2.5. - -- Bug #1721309: prevent bsddb module from freeing random memory. - -- Bug #1233: fix bsddb.dbshelve.DBShelf append method to work as - intended for RECNO databases. - -- pybsddb.sf.net Bug #477182: Load the database flags at database open - time so that opening a database previously created with the DB_DUP or - DB_DUPSORT flag set will keep the proper behavior on subsequent opens. - Specifically: dictionary assignment to a DB object will replace all - values for a given key when the database allows duplicate values. - DB users should use DB.put(k, v) when they want to store duplicates; not - DB[k] = v. - -- Add the bsddb.db.DBEnv.lock_id_free method. - -- Bug #1686475: Support stat'ing open files on Windows again. - -- Patch #1185447: binascii.b2a_qp() now correctly quotes binary characters - with ASCII value less than 32. Also, it correctly quotes dots only if - they occur on a single line, as opposed to the previous behavior of - quoting dots if they are the second character of any line. - -- Bug #1622896: fix a rare corner case where the bz2 module raised an - error in spite of a succesful compression. - -- Patch #1654417: make operator.{get,set,del}slice use the full range - of Py_ssize_t. - -- Patch #1646728: datetime.fromtimestamp fails with negative - fractional times. With unittest. - -- Patch #1490190: posixmodule now includes os.chflags() and os.lchflags() - functions on platforms where the underlying system calls are available. - -- Patch #1494140: Add documentation for the new struct.Struct object. - -- Patch #1432399: Support the HCI protocol for bluetooth sockets - -- Patch #1657276: Make NETLINK_DNRTMSG conditional. - -- Bug #1653736: Complain about keyword arguments to time.isoformat. - -- Bug #1486663: don't reject keyword arguments for subclasses of builtin - types. - -- Patch #1610575: The struct module now supports the 't' code, for - C99 _Bool. - -- Patch #1635058: ensure that htonl and friends never accept or - return negative numbers, per the underlying C implementation. - -- Patch #1544279: Improve thread-safety of the socket module by moving - the sock_addr_t storage out of the socket object. - -- Patch #1019808: fix bug that causes an incorrect error to be returned - when a socket timeout is set and a connection attempt fails. - -- Speed up function calls into the math module. - -- Bug #1588217: don't parse "= " as a soft line break in binascii's - a2b_qp() function, instead leave it in the string as quopri.decode() - does. - -- Bug #1599782: Fix segfault on bsddb.db.DB().type(). - -- Bug #1567666: Emulate GetFileAttributesExA for Win95. - -- Patch #1576166: Support os.utime for directories on Windows NT+. - -- Patch #1572724: fix typo ('=' instead of '==') in _msi.c. - -- Bug #1572832: fix a bug in ISO-2022 codecs which may cause segfault - when encoding non-BMP unicode characters. - -- Bug #1556784: allow format strings longer than 127 characters in - datetime's strftime function. - -- Fix itertools.count(n) to work with negative numbers again. - -- RLIMIT_SBSIZE was added to the resource module where available. - -- Bug #1551427: fix a wrong NULL pointer check in the win32 version - of os.urandom(). - -- Bug #1548092: fix curses.tparm seg fault on invalid input. - -- Patch #1114: fix curses module compilation on 64-bit AIX, & possibly - other 64-bit LP64 platforms where attr_t is not the same size as a long. - (Contributed by Luke Mewburn.) - -- Bug #1550714: fix SystemError from itertools.tee on negative value for n. - -- Fixed a few bugs on cjkcodecs: - - gbk and gb18030 codec now handle U+30FB KATAKANA MIDDLE DOT correctly. - - iso2022_jp_2 codec now encodes into G0 for KS X 1001, GB2312 - codepoints to conform the standard. - - iso2022_jp_3 and iso2022_jp_2004 codec can encode JIS X 0213:2 - codepoints now. - -- Bug #1552726: in readline.c, avoid repeatedly polling in interactive - mode by only placing a timeout on the select() if an input hook has - been defined. This prevents an interactive Python from waking up 10 - times per second. Patch by Richard Boulton. - -- fixed a bug with bsddb.DB.stat: the flags and txn keyword arguments - were transposed. - -- Added support for linking the bsddb module against BerkeleyDB 4.5.x - and 4.6.x. - -- Bug #1633621: if curses.resizeterm() or curses.resize_term() is called, - update _curses.LINES, _curses.COLS, curses.LINES and curses.COLS. - -- Fix an off-by-one bug in locale.strxfrm(). - -- Fix libffi configure for hppa*-*-linux* | parisc*-*-linux*. - -- Build using system ffi library on arm*-linux*. - -- Bug #1372: zlibmodule.c: int overflow in PyZlib_decompress - -- bsddb module: Fix memory leak when using database cursors on - databases without a DBEnv. - -Tests ------ - -- Refactor test_logging to use doctest. - -- Refactor test_profile and test_cprofile to use the same code to profile. - -- Make test_runpy reentrant by fixing _check_module to clear out any module - being tested. Was causing an error by __import__ doing a reload on the - second run and thus suppressing bytecode recreation. - -- Capture socket connection resets and timeouts in test_socket_ssl and - test_urllib2net and raise test.test_support.ResourceDenied. - -- Patch #1559413: Fix test_cmd_line if sys.executable contains a space. - -- Added test.test_support.TransientResource which is a context manager to - surround calls to resources that are not guaranteed to work even if - test.test_support.requires says that the resource should exist. - -- Added a test for slicing of an exception. - -- Added test.test_support.EnvironmentVarGuard. It's a class that provides a - context manager so that one can temporarily set or unset environment - variables. - -- Added some tests for modulefinder. - -- Converted test_imp to use unittest. - -- Fix bsddb test_basics.test06_Transactions to check the version - number properly. - -- test.test_support.catch_warning is a new context manager that can be used - to catch the warnings issued by the warning framework. - - -Tools ------ - -- Tools/scripts/reindent.py now creates the backup file using shutil.copy - to preserve user/group and permissions. Added also a --nobackup option - to not create the backup if the user is concerned regarding this. Check - issue 1050828 for more details. - -- Tools/scripts/win_add2path.py was added. The simple script modifes the - PATH environment var of the HKCU tree and adds the python bin and script - directory. - -- Tools/18n/pygettext.py was added to the list of scripts installed by - Tools/scripts/setup.py (tracker item 642309). - -- Added IronPython and Jython support to pybench (part of which - was patch #1563844) - -- Made some minor changes to pybench output to allow the user - to see which Python version is running pybench - -- Added support for the new platform module feature - platform.python_implementation(); this will now be saved - in the benchmark pickle - - -Documentation -------------- - -- RFE #1765140: Updated documentation on FileHandler and subclasses to - include new optional delay argument. - -- Bug #932563: Added section on getting contextual information into logging - output, and added documentation for the new LoggerAdapter class. - -- Bug #1295: Added information about caching of formatted exception - information in the LogRecord by Formatter.format(). - -- Bug #1637365: add subsection about "__name__ == __main__" to the - Python tutorial. - -- Patch #1698768: updated the "using Python on the Mac" intro. - -- Bug #1569057: Document that calling file.next() when the file is open for - writing is undefined. - -- Patch #1489771: the syntax rules in Python Reference Manual were - updated to reflect the current Python syntax. - -- Patch #1686451: Fix return type for - PySequence_{Count,Index,Fast_GET_SIZE}. - -- Patch #1679379: add documentation for fnmatch.translate(). - -- Bug #1629566: clarify the docs on the return values of parsedate() - and parsedate_tz() in email.utils and rfc822. - -- Patch #1671450: add a section about subclassing builtin types to the - "extending and embedding" tutorial. - -- Bug #1629125: fix wrong data type (int -> Py_ssize_t) in PyDict_Next - docs. - -- Bug #1565919: document set types in the Language Reference. - -- Bug #1546052: clarify that PyString_FromString(AndSize) copies the - string pointed to by its parameter. - -- Bug #1566663: remove obsolete example from datetime docs. - -- Bug #1541682: Fix example in the "Refcount details" API docs. - Additionally, remove a faulty example showing PySequence_SetItem applied - to a newly created list object and add notes that this isn't a good idea. - - -Tools/Demos ------------ - -- Patch #1552024: add decorator support to unparse.py demo script. - -- Make auto-generated python.vim file list built-ins and exceptions in - alphatbetical order. Makes output more deterministic and easier to tell if - the file is stale or not. - -- Bug #1546372: Fixed small bugglet in pybench that caused a missing - file not to get reported properly. - - -Build ------ - -- Have the search path for building extensions follow the declared order in - $CPPFLAGS and $LDFLAGS when adding directories from those environment - variables. - -- Bug #1983: Added a check to pyport to verify that sizeof(pid_t) is - smaller or equal sizeof(long). - -- Bug #1234: Fixed semaphore errors on AIX 5.2 - -- Issue #1726: Remove Python/atof.c from PCBuild/pythoncore.vcproj - -- Removed PCbuild8/ directory and added a new build directory for VS 2005 - based on the VS 2008 build directory to PC/VS8.0. The script - PCbuild/vs8to9.py was added to sync changes from PCbuild to PC/VS8.0. - -- Moved PCbuild/ directory for VS 2003 to PC/VS7.1 and renamed PCBuild9/ - directory to PCBuild/. - -- Bug #1699: Define _BSD_SOURCE only on OpenBSD. - -- Bug #1608: use -fwrapv when GCC supports it. This is important, - newer GCC versions may optimize away overflow buffer overflow checks - without this option! - -- Patch #1418: Make the AC_REPLACE_FUNCS object files actually work. - -- Add a FAST_LOOPS build option that speeds-up looping by trading away - periodic threadstate and signal checking in tight loops. By default, - this option is turned-off. It should only be enabled in debugged, - performance critical applications. - -- Patch #786737: Allow building in a tree of symlinks pointing to - a readonly source. - -- Bug #1737210: Change Manufacturer of Windows installer to PSF. - -- Bug #1746880: Correctly install DLLs into system32 folder on Win64. - -- Define _BSD_SOURCE, to get access to POSIX extensions on OpenBSD 4.1+. - -- Stop supporting AtheOS and cause a build error in configure for the platform. - -- Bug #1655392: don't add -L/usr/lib/pythonX.Y/config to the LDFLAGS - returned by python-config if Python was built with --enable-shared - because that prevented the shared library from being used. - -- Patch #1569798: fix a bug in distutils when building Python from a - directory within sys.exec_prefix. - -- Bug #1675511: Use -Kpic instead of -xcode=pic32 on Solaris/x86. - -- Disable _XOPEN_SOURCE on NetBSD 1.x. - -- configure now checks whether gcc supports the PyArg_ParseTuple format - attribute. - -- Bug #1578513: Cross compilation was broken by a change to configure. - Repair so that it's back to how it was in 2.4.3. - -- Patch #1576954: Update VC6 build directory; remove redundant - files in VC7. - -- Bug #1568842: Fix test for uintptr_t. - -- Patch #1540470, for OpenBSD 4.0. - -- Fix build failure on kfreebsd and on the hurd. - -- Fix the build of the library reference in info format. - -- Allow Emacs 22 for building the documentation in info format. - -- Makefile.pre.in(buildbottest): Run an optional script pybuildbot.identify - to include some information about the build environment. - - -C API ------ - -- Unified naming convention for free lists and their limits. All free lists - in Object/ are named ``free_list``, the counter ``numfree`` and the upper - limit is a macro ``PyName_MAXFREELIST`` inside an #ifndef block. - -- ``PySet_Add()`` can now modify a newly created frozenset. Similarly to - ``PyTuple_SetItem``, it can be used to populate a brand new frozenset; but - it does not steal a reference to the added item. - -- Added ``PySet_Check()`` and ``PyFrozenSet_Check()`` to the set API. - -- Backport of PyUnicode_FromString(), _FromStringAndSize(), _Format and - _FormatV from Python 3.0. Made PyLong_AsSsize_t and PyLong_FromSsize_t - public functions. - -- Patch #1720595: add T_BOOL to the range of structmember types. - -- Issue #1534: Added ``PyFloat_GetMax()``, ``PyFloat_GetMin()`` and - ``PyFloat_GetInfo()`` to the float API. - -- Issue #1521: On 64bit platforms, using PyArgs_ParseTuple with the t# of w# - format code incorrectly truncated the length to an int, even when - PY_SSIZE_T_CLEAN is set. The str.decode method used to return incorrect - results with huge strings. - -- Issue #1629: Renamed Py_Size, Py_Type and Py_Refcnt to Py_SIZE, Py_TYPE - and Py_REFCNT. - -- PEP 3123: Provide forward compatibility with Python 3.0, while keeping - backwards compatibility. Add Py_Refcnt, Py_Type, Py_Size, and - PyVarObject_HEAD_INIT. - -- Py_ssize_t fields work in structmember when HAVE_LONG_LONG is not defined. - -- Patch #1733960: Allow T_LONGLONG to accept ints. - -- T_PYSSIZET can now be used in PyMemberDef lists for Py_ssize_t members. - -- Added a new API function ``PyImport_ImportModuleNoBlock``. - -- Bug #1637022: Prefix AST symbols with _Py_. - -- Fix some leftovers from the conversion from int to Py_ssize_t - (relevant to strings and sequences of more than 2**31 items). - -- Make _PyGILState_NoteThreadState() static, it was not used anywhere - outside of pystate.c and should not be necessary. - -- ``PyImport_Import`` and ``PyImport_ImportModule`` now always do absolute - imports. In earlier versions they might have used relative imports under - some conditions. - -- Added case insensitive comparison methods ``PyOS_stricmp(char*, char*)`` - and ``PyOS_strnicmp(char*, char*, Py_ssize_t)``. - -- Bug #1542693: remove semi-colon at end of PyImport_ImportModuleEx macro - so it can be used as an expression. - - -Windows -------- - -- Patch #1706: Drop support for Win9x, WinME and NT4. Python now requires - Windows 2000 or greater. The _WINVER and NTDDI_VERSION macros are set to - Win2k for x86/32bit builds and WinXP for AMD64 builds. - -- Conditionalize definition of _CRT_SECURE_NO_DEPRECATE - and _CRT_NONSTDC_NO_DEPRECATE. - -- Bug #1216: Restore support for Visual Studio 2002. - - -Mac ---- - -- cfmfile now raises a DeprecationWarning. - -- buildtools now raises a DeprecationWarning. - -- Removed the macfs module. It had been deprecated since Python 2.5. This - lead to the deprecation of macostools.touched() as it relied solely on macfs - and was a no-op under OS X. - - -What's New in Python 2.5 release candidate 1? -============================================= - -*Release date: 17-AUG-2006* - -Core and builtins ------------------ - -- Unicode objects will no longer raise an exception when being - compared equal or unequal to a string and a UnicodeDecodeError - exception occurs, e.g. as result of a decoding failure. - - Instead, the equal (==) and unequal (!=) comparison operators will - now issue a UnicodeWarning and interpret the two objects as - unequal. The UnicodeWarning can be filtered as desired using - the warning framework, e.g. silenced completely, turned into an - exception, logged, etc. - - Note that compare operators other than equal and unequal will still - raise UnicodeDecodeError exceptions as they've always done. - -- Fix segfault when doing string formatting on subclasses of long. - -- Fix bug related to __len__ functions using values > 2**32 on 64-bit machines - with new-style classes. - -- Fix bug related to __len__ functions returning negative values with - classic classes. - -- Patch #1538606, Fix __index__() clipping. There were some problems - discovered with the API and how integers that didn't fit into Py_ssize_t - were handled. This patch attempts to provide enough alternatives - to effectively use __index__. - -- Bug #1536021: __hash__ may now return long int; the final hash - value is obtained by invoking hash on the long int. - -- Bug #1536786: buffer comparison could emit a RuntimeWarning. - -- Bug #1535165: fixed a segfault in input() and raw_input() when - sys.stdin is closed. - -- On Windows, the PyErr_Warn function is now exported from - the Python dll again. - -- Bug #1191458: tracing over for loops now produces a line event - on each iteration. Fixing this problem required changing the .pyc - magic number. This means that .pyc files generated before 2.5c1 - will be regenerated. - -- Bug #1333982: string/number constants were inappropriately stored - in the byte code and co_consts even if they were not used, ie - immediately popped off the stack. - -- Fixed a reference-counting problem in property(). - Library ------- |