• Home
  • Raw
  • Download

Lines Matching +full:vc +full:- +full:vars

2 --------------
7 file of the release25-maint branch.)
16 *Release date: 17-AUG-2006*
19 -----------------
21 - Unicode objects will no longer raise an exception when being
34 - Fix segfault when doing string formatting on subclasses of long.
36 - Fix bug related to __len__ functions using values > 2**32 on 64-bit machines
37 with new-style classes.
39 - Fix bug related to __len__ functions returning negative values with
42 - Patch #1538606, Fix __index__() clipping. There were some problems
47 - Bug #1536021: __hash__ may now return long int; the final hash
50 - Bug #1536786: buffer comparison could emit a RuntimeWarning.
52 - Bug #1535165: fixed a segfault in input() and raw_input() when
55 - On Windows, the PyErr_Warn function is now exported from
58 - Bug #1191458: tracing over for loops now produces a line event
63 - Bug #1333982: string/number constants were inappropriately stored
67 - Fixed a reference-counting problem in property().
71 -------
73 - Fix a bug in the ``compiler`` package that caused invalid code to be
76 - The distutils version has been changed to 2.5.0. The change to
81 - If the Python part of a ctypes callback function returns None,
86 - The __repr__ method of a NULL ctypes.py_object() no longer raises
89 - uuid.UUID now has a bytes_le attribute. This returns the UUID in
90 little-endian byte order for Windows. In addition, uuid.py gained some
94 - Patch #1540892: site.py Quitter() class attempts to close sys.stdin
97 - Bug #1224621: make tabnanny recognize IndentationErrors raised by tokenize.
99 - Patch #1536071: trace.py should now find the full module name of a
102 - logging's atexit hook now runs even if the rest of the module has
105 - Bug #1112549, fix DoS attack on cgi.FieldStorage.
107 - Bug #1531405, format_exception no longer raises an exception if
110 - Fix a bug in the ``compiler`` package that caused invalid code to be
115 -----------------
117 - Patch #1511317: don't crash on invalid hostname (alias) info.
119 - Patch #1535500: fix segfault in BZ2File.writelines and make sure it
122 - Patch # 1536908: enable building ctypes on OpenBSD/AMD64. The
123 '-no-stack-protector' compiler flag for OpenBSD has been removed.
125 - Patch #1532975 was applied, which fixes Bug #1533481: ctypes now
129 - Bug #1530559, struct.pack raises TypeError where it used to convert.
135 -----
137 - test_socketserver should now work on cygwin and not fail sporadically
140 - test_mailbox should now work on cygwin versions 2006-08-10 and later.
142 - Bug #1535182: really test the xreadlines() method of bz2 objects.
144 - test_threading now skips testing alternate thread stack sizes on
149 -------------
151 - Patch #1534922: unittest docs were corrected and enhanced.
155 -----
157 - Bug #1535502, build _hashlib on Windows, and use masm assembler
160 - Bug #1534738, win32 debug version of _msi should be _msi_d.pyd.
162 - Bug #1530448, ctypes build failure on Solaris 10 was fixed.
166 -----
168 - New API for Unicode rich comparisons: PyUnicode_RichCompare()
170 - Bug #1069160. Internal correctness changes were made to
179 *Release date: 03-AUG-2006*
182 -----------------
184 - _PyWeakref_GetWeakrefCount() now returns a Py_ssize_t; it previously
187 - Bug #1515471: string.replace() accepts character buffers again.
189 - Add PyErr_WarnEx() so C code can pass the stacklevel to warnings.warn().
193 - Patch #1531113: Fix augmented assignment with yield expressions.
196 - Bug #1529871: The speed enhancement patch #921466 broke Python's compliance
198 used in ``sys.path_importer_cache`` to cache non-directory paths and avoid
201 - Bug #1521947: When checking for overflow, ``PyOS_strtol()`` used some
206 - Bug #1524310: Properly report errors from FindNextFile in os.listdir.
208 - Patch #1232023: Stop including current directory in search
211 - Fix some potential crashes found with failmalloc.
213 - Fix warnings reported by Klocwork's static analysis tool.
215 - Bug #1512814, Fix incorrect lineno's when code within a function
218 - Patch #1521179: Python now accepts the standard options ``--help`` and
219 ``--version`` as well as ``/?`` on Windows.
221 - Bug #1520864: unpacking singleton tuples in a 'for' loop (for x, in) works
225 - Bug #1524317: Compiling Python ``--without-threads`` failed.
230 - Bug #1525447: build on MacOS X on a case-sensitive filesystem.
234 -------
236 - Fix #1693149. Now you can pass several modules separated by
237 comma to trace.py in the same --ignore-module option.
239 - Correction of patch #1455898: In the mbcs decoder, set final=False
242 - os.urandom no longer masks unrelated exceptions like SystemExit or
245 - Bug #1525866: Don't copy directory stat times in
248 - Bug #1002398: The documentation for os.path.sameopenfile now correctly
251 - The renaming of the xml package to xmlcore, and the import hackery done
255 - Bug #1441397: The compiler module now recognizes module and function
258 - Bug #1529297: The rewrite of doctest for Python 2.4 unintentionally
260 matters for well-written tests, but can create baffling symptoms if
264 - The distutils version has been changed to 2.5.0, and is now kept
267 - Bug #978833: Really close underlying socket in _socketobject.close.
269 - Bug #1459963: urllib and urllib2 now normalize HTTP header names with
272 - Patch #1525766: In pkgutil.walk_packages, correctly pass the onerror callback
275 - Bug #1525817: Don't truncate short lines in IDLE's tool tips.
277 - Patch #1515343: Fix printing of deprecated string exceptions with a
280 - Resync optparse with Optik 1.5.3: minor tweaks for/to tests.
282 - Patch #1524429: Use repr() instead of backticks in Tkinter again.
284 - Bug #1520914: Change time.strftime() to accept a zero for any position in its
288 tuple pre-2.4.
290 - Patch #1220874: Update the binhex module for Mach-O.
292 - The email package has improved RFC 2231 support, specifically for
293 recognizing the difference between encoded (name*0*=<blah>) and non-encoded
296 Specifically in some cases where non-encoded continuations were used,
297 get_param() used to return a 3-tuple of (None, None, string) whereas now it
298 will just return the string (since non-encoded continuations don't have
304 - Bug #1517990: IDLE keybindings on MacOS X now work correctly
306 - Bug #1517996: IDLE now longer shows the default Tk menu when a
309 - Patch #1520294: Support for getset and member descriptors in types.py,
311 of an object against these built-in types and more importantly, for getting
316 -----------------
318 - Patch #1519025 and bug #926423: If a KeyboardInterrupt occurs during
322 - Patch #1529514: The _ctypes extension is now compiled on more
325 - The ``__reduce__()`` method of the new ``collections.defaultdict`` had
328 - Bug #1471938: Fix curses module build problem on Solaris 8; patch by
331 - Patch #1448199: Release interpreter lock in _winreg.ConnectRegistry.
333 - Patch #1521817: Index range checking on ctypes arrays containing
337 - Bug #1521375: When the code in ctypes.util.find_library was
341 - Bug #1467450: On Mac OS X 10.3, RTLD_GLOBAL is now used as the
344 - Because of a misspelled preprocessor symbol, ctypes was always
347 - pybsddb Bug #1527939: bsddb module DBEnv dbremove and dbrename
351 - Bug #1526460: Fix socketmodule compile on NetBSD as it has a different
355 -----
357 - Bug #1501330: Change test_ossaudiodev to be much more tolerant in terms of
359 (exact time) +/- 10% instead of the hard-coded 3.1 sec.
361 - Patch #1529686: The standard tests ``test_defaultdict``, ``test_iterlen``,
366 -----
368 - Bug #1439538: Drop usage of test -e in configure as it is not portable.
371 ---
373 - PythonLauncher now works correctly when the path to the script contains
376 - Bug #1527397: PythonLauncher now launches scripts with the working directory
385 *Release date: 11-JUL-2006*
388 -----------------
390 - Bug #1441486: The literal representation of -(sys.maxint - 1)
393 - Bug #1501934: The scope of global variables that are locally assigned
396 - Bug #927248: Recursive method-wrapper objects can now safely
399 - Bug #1417699: Reject locale-specific decimal point in float()
402 - Bug #1511381: codec_getstreamcodec() in codec.c is corrected to
406 - Bug #1519018: 'as' is now validated properly in import statements.
408 - On 64 bit systems, int literals that use less than 64 bits are
411 - Bug #1512814, Fix incorrect lineno's when code at module scope
414 - New function ``sys._current_frames()`` returns a dict mapping thread
422 -------
424 - Bug #1257728: Mention Cygwin in distutils error message about a missing
427 - Patch #1519566: Update turtle demo, make begin_fill idempotent.
429 - Bug #1508010: msvccompiler now requires the DISTUTILS_USE_SDK
433 - Bug #1515998: Properly generate logical ids for files in bdist_msi.
435 - warnings.py now ignores ImportWarning by default
437 - string.Template() now correctly handles tuple-values. Previously,
438 multi-value tuples would raise an exception and single-value tuples would
441 - Bug #822974: Honor timeout in telnetlib.{expect,read_until}
444 - Bug #1267547: Put proper recursive setup.py call into the
447 - Bug #1514693: Update turtle's heading when switching between
450 - Reimplement turtle.circle using a polyline, to allow correct
453 - Bug #1514703: Only setup canvas window in turtle when the canvas
456 - Bug #1513223: .close() of a _socketobj now releases the underlying
459 - Bug #1504333: Make sgmllib support angle brackets in quoted
462 - Bug #853506: Fix IPv6 address parsing in unquoted attributes in
465 - Fix a bug in the turtle module's end_fill function.
467 - Bug #1510580: The 'warnings' module improperly required that a Warning
471 - The compiler module now correctly compiles the new try-except-finally
474 - The wsgiref package is now installed properly on Unix.
476 - A bug was fixed in logging.config.fileConfig() which caused a crash on
479 - The sqlite3 module did cut off data from the SQLite database at the first
484 -----------------
486 - #1494314: Fix a regression with high-numbered sockets in 2.4.3. This
490 - Assigning None to pointer type fields in ctypes structures possible
493 - Fixed a segfault in _ctypes when ctypes.wintypes were imported
494 on non-Windows platforms.
496 - Bug #1518190: The ctypes.c_void_p constructor now accepts any
499 - Patch #1517790: It is now possible to use custom objects in the ctypes
503 - The '_ctypes' extension module now works when Python is configured
504 with the --without-threads option.
506 - Bug #1513646: os.access on Windows now correctly determines write
509 - Bug #1512695: cPickle.loads could crash if it was interrupted with
512 - Bug #1296433: parsing XML with a non-default encoding and
515 - Patch #1516912: improve Modules support for OpenVMS.
518 -----
520 - Automate Windows build process for the Win64 SSL module.
522 - 'configure' now detects the zlib library the same way as distutils.
526 - The MSI compileall step was fixed to also support a TARGETDIR
529 - Bug #1517388: sqlite3.dll is now installed on Windows independent
532 - Bug #1513032: 'make install' failed on FreeBSD 5.3 due to lib-old
536 -----
538 - Call os.waitpid() at the end of tests that spawn child processes in order
542 -------------
544 - Cover ImportWarning, PendingDeprecationWarning and simplefilter() in the
547 - Patch #1509163: MS Toolkit Compiler no longer available.
549 - Patch #1504046: Add documentation for xml.etree.
555 *Release date: 20-JUN-2006*
558 -----------------
560 - Patch #1507676: Error messages returned by invalid abstract object operations
564 - Bug #992017: A classic class that defined a __coerce__() method that returned
567 - Fix the socket tests so they can be run concurrently.
569 - Removed 5 integers from C frame objects (PyFrameObject).
572 - Bug #532646: object.__call__() will continue looking for the __call__
575 class. Originally fixed for classic classes, but this fix is for new-style.
578 - The string and unicode methods startswith() and endswith() now accept
581 - Buffer objects, at the C level, never used the char buffer
587 - Patch #1346214: Statements like "if 0: suite" are now again optimized
590 - Builtin exceptions are now full-blown new-style classes instead of
594 - Patch #1494554: Update unicodedata.numeric and unicode.isnumeric to
597 - Patch #921466: sys.path_importer_cache is now used to cache valid and
598 invalid file paths for the built-in import machinery which leads to
601 - Patch #1442927: ``long(str, base)`` is now up to 6x faster for non-power-
602 of-2 bases. The largest speedup is for inputs with about 1000 decimal
603 digits. Conversion from non-power-of-2 bases remains quadratic-time in
604 the number of input digits (it was and remains linear-time for bases
607 - Bug #1334662: ``int(string, base)`` could deliver a wrong answer
612 - Patch #1337051: reduced size of frame objects.
614 - PyErr_NewException now accepts a tuple of base classes as its
617 - Patch #876206: function call speedup by retaining allocated frame
620 - Bug #1462152: file() now checks more thoroughly for invalid mode
624 - Patch #1488312, Fix memory alignment problem on SPARC in unicode
626 - Bug #1487966: Fix SystemError with conditional expression in assignment
628 - WindowsError now has two error code attributes: errno, which carries
633 - Patch #1475845: Raise IndentationError for unexpected indent.
635 - Patch #1479181: split open() and file() from being aliases for each other.
637 - Patch #1497053 & bug #1275608: Exceptions occurring in ``__eq__()``
642 - Bug #1456209: In some obscure cases it was possible for a class with a
645 No, you don't have any code that did this ;-)
648 -----------------
650 - Bug #1295808: expat symbols should be namespaced in pyexpat
652 - Patch #1462338: Upgrade pyexpat to expat 2.0.0
654 - Change binascii.hexlify to accept a read-only buffer instead of only a char
657 - Fixed a potentially invalid memory access of CJKCodecs' shift-jis decoder.
659 - Patch #1478788 (modified version): The functional extension module has
664 - Patch #1493701: performance enhancements for struct module.
666 - Patch #1490224: time.altzone is now set correctly on Cygwin.
668 - Patch #1435422: zlib's compress and decompress objects now have a
671 - Patch #1454481: thread stack size is now tunable at runtime for thread
674 - On Win32, os.listdir now supports arbitrarily-long Unicode path names
677 - Use Win32 API to implement os.{access,chdir,chmod,mkdir,remove,rename,rmdir,utime}.
680 - ``time.clock()`` on Win64 should use the high-performance Windows
681 ``QueryPerformanceCounter()`` now (as was already the case on 32-bit
684 - Calling Tk_Init twice is refused if the first call failed as that
687 - bsddb: added the DB_ARCH_REMOVE flag and fixed db.DBEnv.log_archive() to
690 - bsddb: added support for the DBEnv.log_stat() and DBEnv.lsn_reset() methods
694 - bsddb: added an interface for the BerkeleyDB >= 4.3 DBSequence class.
697 - bsddb: fix DBCursor.pget() bug with keyword argument names when no data
700 - bsddb: the __len__ method of a DB object has been fixed to return correct
704 - bsddb: the bsddb.dbtables Modify method now raises the proper error and
708 - bsddb: multithreaded DB access using the simple bsddb module interface
713 - Patch #1446489: add support for the ZIP64 extensions to zipfile.
715 - Patch #1506645: add Python wrappers for the curses functions
719 -------
721 - Patch #815924: Restore ability to pass type= and icon= in tkMessageBox
724 - Patch #812986: Update turtle output even if not tracing.
726 - Patch #1494750: Destroy master after deleting children in
729 - Patch #1096231: Add ``default`` argument to Tkinter.Wm.wm_iconbitmap.
731 - Patch #763580: Add name and value arguments to Tkinter variable
734 - Bug #1117556: SimpleHTTPServer now tries to find and use the system's
737 - Bug #1339007: Shelf objects now don't raise an exception in their
740 - Patch #1455898: The MBCS codec now supports the incremental mode for
741 double-byte encodings.
743 - ``difflib``'s ``SequenceMatcher.get_matching_blocks()`` was changed to
745 non-adjacent blocks. Previously, a pair of matching blocks could end
749 - Bug #1498146: fix optparse to handle Unicode strings in option help,
752 - Bug #1366250: minor optparse documentation error.
754 - Bug #1361643: fix textwrap.dedent() so it handles tabs appropriately;
757 - The wsgiref package has been added to the standard library.
759 - The functions update_wrapper() and wraps() have been added to the functools
763 - The optional ``isprivate`` argument to ``doctest.testmod()``, and the
766 - Patch #1359618: Speed up charmap encoder by using a trie structure
769 - The functions in the ``pprint`` module now sort dictionaries by key
775 - Patch #1497027: try HTTP digest auth before basic auth in urllib2
778 - Patch #1496206: improve urllib2 handling of passwords with respect to
781 - Patch #1080727: add "encoding" parameter to doctest.DocFileSuite.
783 - Patch #1281707: speed up gzip.readline.
785 - Patch #1180296: Two new functions were added to the locale module:
786 format_string() to get the effect of "format % items" but locale-aware,
789 - Patch #1486962: Several bugs in the turtle Tk demo module were fixed
792 - Patch #1488881: add support for external file objects in bz2 compressed
795 - Patch #721464: pdb.Pdb instances can now be given explicit stdin and
799 - Patch #1484695: Update the tarfile module to version 0.8. This fixes
803 - Patch #1478292. ``doctest.register_optionflag(name)`` shouldn't create a
806 - Bug #1385040: don't allow "def foo(a=1, b): pass" in the compiler
809 - Patch #1472854: make the rlcompleter.Completer class usable on non-
812 - Patch #1470846: fix urllib2 ProxyBasicAuthHandler.
814 - Bug #1472827: correctly escape newlines and tabs in attribute values in
819 -----
821 - Bug #1502728: Correctly link against librt library on HP-UX.
823 - OpenBSD 3.9 is supported now.
825 - Patch #1492356: Port to Windows CE.
827 - Bug/Patch #1481770: Use .so extension for shared libraries on HP-UX for ia64.
829 - Patch #1471883: Add --enable-universalsdk.
832 -----
835 -----
838 -----
841 -------------
848 *Release date: 27-APR-2006*
851 -----------------
853 - Bug #1465834: 'bdist_wininst preinstall script support' was fixed
862 - Under COUNT_ALLOCS, types are not necessarily immortal anymore.
864 - All uses of PyStructSequence_InitType have been changed to initialize
868 - Bug #1454485, array.array('u') could crash the interpreter. This was
872 - Py_UNICODE is unsigned. It was always documented as unsigned, but
875 - Patch #837242: ``id()`` of any Python object always gives a positive
886 could return negative values before, on a 32-bit box an ``id()`` result
890 - Python on OS X 10.3 and above now uses dlopen() (via dynload_shlib.c)
895 - Patch #1463867: enhanced garbage collection to allow cleanup of cycles
902 -----------------
904 - Patch #1191065: Fix preprocessor problems on systems where recvfrom
907 - Bug #1467952: os.listdir() now correctly raises an error if readdir()
910 - Fixed bsddb.db.DBError derived exceptions so they can be unpickled.
912 - Bug #1117761: bsddb.*open() no longer raises an exception when using
915 - Bug #1149413: bsddb.*open() no longer raises an exception when using
918 - Bug #1332852: bsddb module minimum BerkeleyDB version raised to 3.3
921 - Patch #1062014: AF_UNIX sockets under Linux have a special
925 -------
927 - Bug #1223937: subprocess.CalledProcessError reports the exit status
931 - Patch #1475231: ``doctest`` has a new ``SKIP`` option, which causes
935 - Fixed contextlib.nested to cope with exceptions being raised and
938 - Updated optparse module to Optik 1.5.1 (allow numeric constants in
943 - Bug #1473760: ``tempfile.TemporaryFile()`` could hang on Windows, when
946 - The pydoc module now supports documenting packages contained in
949 - The pkgutil module now has several new utility functions, such
953 - The mailbox module can now modify and delete messages from
958 - The ``__del__`` method of class ``local`` in module ``_threading_local``
961 - Patch #790710: Add breakpoint command lists in pdb.
963 - Patch #1063914: Add Tkinter.Misc.clipboard_get().
965 - Patch #1191700: Adjust column alignment in bdb breakpoint lists.
967 - SimpleXMLRPCServer relied on the fcntl module, which is unavailable on
970 - The warnings, linecache, inspect, traceback, site, and doctest modules
974 - Patch #1467770: Reduce usage of subprocess._active to processes which
977 - Patch #1462222: Fix Tix.Grid.
979 - Fix exception when doing glob.glob('anything*/')
981 - The pstats.Stats class accepts an optional stream keyword argument to
982 direct output to an alternate file-like object.
985 -----
987 - The Makefile now has a reindent target, which runs reindent.py on
990 - Patch #1470875: Building Python with MS Free Compiler
992 - Patch #1161914: Add a python-config script.
994 - Patch #1324762:Remove ccpython.cc; replace --with-cxx with
995 --with-cxx-main. Link with C++ compiler only if --with-cxx-main was
997 CXX from --with-cxx-main, see description in README.
999 - Patch #1429775: Link extension modules with the shared libpython.
1001 - Fixed a libffi build problem on MIPS systems.
1003 - ``PyString_FromFormat``, ``PyErr_Format``, and ``PyString_FromFormatV``
1008 -----
1010 - test_contextlib now checks contextlib.nested can cope with exceptions
1013 - test_cmd_line now checks operation of the -m and -c command switches
1015 - The test_contextlib test in 2.5a1 wasn't actually run unless you ran
1019 - regrtest.py now has a -M option to run tests that test the new limits of
1020 containers, on 64-bit architectures. Running these tests is only sensible
1021 on 64-bit machines with more than two gigabytes of memory. The argument
1025 -----
1027 - Added the Python benchmark suite pybench to the Tools/ directory;
1028 contributed by Marc-Andre Lemburg.
1031 -------------
1033 - Patch #1473132: Improve docs for ``tp_clear`` and ``tp_traverse``.
1035 - PEP 343: Added Context Types section to the library reference
1037 line with the implementation and/or python-dev discussions.
1039 - Bug #1337990: clarified that ``doctest`` does not support examples
1046 *Release date: 05-APR-2006*
1049 -----------------
1051 - PEP 338: -m command line switch now delegates to runpy.run_module
1054 - On Windows, .DLL is not an accepted file name extension for
1058 - Bug #1421664: sys.stderr.encoding is now set to the same value as
1061 - __import__ accepts keyword arguments.
1063 - Patch #1460496: round() now accepts keyword arguments.
1065 - Fixed bug #1459029 - unicode reprs were double-escaped.
1067 - Patch #1396919: The system scope threads are reenabled on FreeBSD
1070 - Bug #1115379: Compiling a Unicode string with an encoding declaration
1073 - Previously, Python code had no easy way to access the contents of a
1077 - Patch #1123430: Python's small-object allocator now returns an arena to
1081 especially long-running applications that, from time to time, temporarily
1086 appears to be effective at least on Microsoft C and gcc-based systems.
1089 - Patch #1434038: property() now uses the getter's docstring if there is
1091 property() as a decorator to produce a read-only property.
1093 - PEP 357, patch 1436368: add an __index__ method to int/long and a matching
1098 - Fixed various bugs reported by Coverity's Prevent tool.
1100 - PEP 352, patch #1104669: Make exceptions new-style objects. Introduced the
1105 - Patch #1438387, PEP 328: relative and absolute imports. Imports can now be
1108 old relative-then-absolute, unless 'from __future__ import
1111 - Properly check if 'warnings' raises an exception (usually when a filter set
1115 - CO_GENERATOR_ALLOWED is no longer defined. This behavior is the default.
1118 - PEP 308: conditional expressions were added: (x if cond else y).
1120 - Patch 1433928:
1121 - The copy module now "copies" function objects (as atomic objects).
1122 - dict.__getitem__ now looks for a __missing__ hook before raising
1125 - PEP 343: with statement implemented. Needs ``from __future__ import
1130 - The built-in file type.
1131 - The thread.LockType type.
1132 - The following types defined by the threading module:
1134 - The decimal.Context class.
1136 - Fix the encodings package codec search function to only search
1142 - PEP 353: Using ``Py_ssize_t`` as the index type.
1144 - ``PYMALLOC_DEBUG`` builds now add ``4*sizeof(size_t)`` bytes of debugging
1147 some purposes on 64-bit boxes. A ``PYMALLOC_DEBUG`` build was limited
1148 to 4-byte allocations before.
1150 - Patch #1400181, fix unicode string formatting to not use the locale.
1154 - Bug #1244610, #1392915, fix build problem on OpenBSD 3.7 and 3.8.
1157 - Bug #959576: The pwd module is now built in. This allows Python to be
1160 - Bug #1072182, fix some potential problems if characters are signed.
1162 - Bug #889500, fix line number on SyntaxWarning for global declarations.
1164 - Bug #1378022, UTF-8 files with a leading BOM crashed the interpreter.
1166 - Support for converting hex strings to floats no longer works.
1169 - Patch #1382163: Expose Subversion revision number to Python. New C API
1173 - Implementation of PEP 341 - Unification of try/except and try/finally.
1177 - Bug #1379994: Builtin unicode_escape and raw_unicode_escape codec
1180 - Patch #1350409: Work around signal handling bug in Visual Studio 2005.
1182 - Bug #1281408: Py_BuildValue now works correctly even with unsigned longs
1185 - SF Bug #1350188, "setdlopenflags" leads to crash upon "import"
1189 - Replaced most Unicode charmap codecs with new ones using the
1190 new Unicode translate string feature in the built-in charmap
1195 - Added a few more codecs for Mac OS encodings
1197 - Sped up some Unicode operations.
1199 - A new AST parser implementation was completed. The abstract
1200 syntax tree is available for read-only (non-compile) access
1203 - SF bug #1167751: fix incorrect code being produced for generator expressions.
1206 - SF Bug #976608: fix SystemError when mtime of an imported file is -1.
1208 - SF Bug #887946: fix segfault when redirecting stdin from a directory.
1211 - Fix segfault with invalid coding.
1213 - SF bug #772896: unknown encoding results in MemoryError.
1215 - All iterators now have a Boolean value of True. Formerly, some iterators
1219 - On 64-bit platforms, when __len__() returns a value that cannot be
1222 - test__locale is skipped on OS X < 10.4 (only partial locale support is
1225 - SF bug #893549: parsing keyword arguments was broken with a few format
1228 - Changes donated by Elemental Security to make it work on AIX 5.3
1229 with IBM's 64-bit compiler (SF patch #1284289). This also closes SF
1232 - Changes donated by Elemental Security to make it work on HP-UX 11 on
1233 Itanium2 with HP's 64-bit compiler (SF patch #1225212).
1235 - Disallow keyword arguments for type constructors that don't use them
1238 - Forward UnicodeDecodeError into SyntaxError for source encoding errors.
1240 - SF bug #900092: When tracing (e.g. for hotshot), restore 'return' events for
1243 - The implementation of set() and frozenset() was revised to use its
1245 and there are modest speed-ups as well. The API is unchanged.
1247 - SF bug #1238681: freed pointer is used in longobject.c:long_pow().
1249 - SF bug #1229429: PyObject_CallMethod failed to decrement some
1252 - SF bug #1185883: Python's small-object memory allocator took over
1256 portable way to copy data from the C-managed block into Python's
1257 small-object space without risking a memory fault. Python's small-object
1261 - SF bug #1232517: An overflow error was not detected properly when
1264 - SF bug #1224347: hex longs now print with lowercase letters just
1267 - SF bug #1163563: the original fix for bug #1010677 ("thread Module
1270 http://mail.python.org/pipermail/python-dev/2005-June/054258.html
1271 for a longer write-up of the problem).
1273 - SF patch #1180995: marshal now uses a binary format by default when
1276 - SF patch #1181301: on platforms that appear to use IEEE 754 floats,
1280 - bug #967182: disallow opening files with 'wU' or 'aU' as specified by PEP
1283 - patch #1109424: int, long, float, complex, and unicode now check for the
1291 - Descriptors defined in C with a PyGetSetDef structure, where the setter is
1294 with the equivalent pure-Python implementation.
1296 - It is now safe to call PyGILState_Release() before
1300 have no way of knowing if Python is multi-threaded yet).
1302 - Typing Ctrl-C whilst raw_input() was waiting in a build with threads
1305 - Bug #1165306: instancemethod_new allowed the creation of a method
1308 - Move exception finalisation later in the shutdown process - this
1311 - Added two new builtins, any() and all().
1313 - Defining a class with empty parentheses is now allowed
1318 - Patch #1115086: Support PY_LONGLONG in structmember.
1320 - Bug #1155938: new style classes did not check that __init__() was
1323 - Patch #802188: Report characters after line continuation character
1326 - Bug #723201: Raise a TypeError for passing bad objects to 'L' format.
1328 - Bug #1124295: the __name__ attribute of file objects was
1331 - Bug #1074011: closing sys.std{out,err} now causes a flush() and
1334 - min() and max() now support key= arguments with the same meaning as in
1337 - The peephole optimizer now performs simple constant folding in expressions:
1338 (2+3) --> (5).
1340 - set and frozenset objects can now be marshalled. SF #1098985.
1342 - Bug #1077106: Poor argument checking could cause memory corruption
1345 - The parser did not complain about future statements in illegal
1349 - Change the %s format specifier for str objects so that it returns a
1353 - Patch #1413181: changed ``PyThreadState_Delete()`` to forget about the
1354 current thread state when the auto-GIL-state machinery knows about
1360 -----------------
1362 - Patch #1380952: fix SSL objects timing out on consecutive read()s
1364 - Patch #1309579: wait3 and wait4 were added to the posix module.
1366 - Patch #1231053: The audioop module now supports encoding/decoding of alaw.
1369 - RFE #567972: Socket objects' family, type and proto properties are
1372 - Everything under lib-old was removed. This includes the following modules:
1377 - The following modules were removed: regsub, reconvert, regex, regex_syntax.
1379 - re and sre were swapped, so help(re) provides full help. importing sre
1382 - Bug #1448490: Fixed a bug that ISO-2022 codecs could not handle
1383 SS2 (single-shift 2) escape sequences correctly.
1385 - The unicodedata module was updated to the 4.1 version of the Unicode
1389 - The timing module is no longer built by default. It was deprecated
1392 - Patch 1433928: Added a new type, defaultdict, to the collections module.
1395 - Bug #854823: socketmodule now builds on Sun platforms even when
1398 - Patch #1393157: os.startfile() now has an optional argument to specify
1401 - Bug #876637, prevent stack corruption when socket descriptor
1404 - Patch #1407135, bug #1424041: harmonize mmap behavior of anonymous memory.
1405 mmap.mmap(-1, size) now returns anonymous memory in both Unix and Windows.
1408 - Patch #1422385: The nis module now supports access to domains other
1411 - Use Win32 API to implement os.stat/fstat. As a result, subsecond timestamps
1415 - Add bsddb.db.DBEnv.set_tx_timestamp allowing time based database recovery.
1417 - Bug #1413192, fix seg fault in bsddb if a transaction was deleted
1420 - Patch #1103116: Basic AF_NETLINK support.
1422 - Bug #1402308, (possible) segfault when using mmap.mmap(-1, ...)
1424 - Bug #1400822, _curses over{lay,write} doesn't work when passing 6 ints.
1428 - Bug #1400115, Fix segfault when calling curses.panel.userptr()
1431 - Fix 64-bit problems in bsddb.
1433 - Patch #1365916: fix some unsafe 64-bit mmap methods.
1435 - Bug #1290333: Added a workaround for cjkcodecs' _codecs_cn build
1438 - Bug #869197: os.setgroups rejects long integer arguments
1440 - Bug #1346533, select.poll() doesn't raise an error if timeout > sys.maxint
1442 - Bug #1344508, Fix UNIX mmap leaking file descriptors
1444 - Patch #1338314, Bug #1336623: fix tarfile so it can extract
1447 - Patch #1407992, fixes broken bsddb module db associate when using
1450 - Get bsddb module to build with BerkeleyDB version 4.4
1452 - Get bsddb module to build with BerkeleyDB version 3.2
1454 - Patch #1309009, Fix segfault in pyexpat when the XML document is in latin_1,
1455 but Python incorrectly assumes it is in UTF-8 format
1457 - Fix parse errors in the readline module when compiling without threads.
1459 - Patch #1288833: Removed thread lock from socket.getaddrinfo on
1460 FreeBSD 5.3 and later versions which got thread-safe getaddrinfo(3).
1462 - Patches #1298449 and #1298499: Add some missing checks for error
1465 - Patch #1297028: fix segfault if call type on MultibyteCodec,
1468 - Fix memory leak in posix.access().
1470 - Patch #1213831: Fix typo in unicodedata._getcode.
1472 - Bug #1007046: os.startfile() did not accept unicode strings encoded in
1475 - Patch #756021: Special-case socket.inet_aton('255.255.255.255') for
1478 - Bug #1215928: Fix bz2.BZ2File.seek() for 64-bit file offsets.
1480 - Bug #1191043: Fix bz2.BZ2File.(x)readlines for files containing one
1483 - Bug #728515: mmap.resize() now resizes the file on Unix as it did
1486 - Patch #1180695: Add nanosecond stat resolution, and st_gen,
1489 - Patch #1231069: The fcntl.ioctl function now uses the 'I' code for
1490 the request code argument, which results in more C-like behaviour
1493 - Bug #1234979: For the argument of thread.Lock.acquire, the Windows
1496 - Bug #1194181: bz2.BZ2File didn't handle mode 'U' correctly.
1498 - Patch #1212117: os.stat().st_flags is now accessible as an attribute
1501 - Patch #1103951: Expose O_SHLOCK and O_EXLOCK in the posix module if
1504 - Bug #1166660: The readline module could segfault if hook functions
1507 - collections.deque objects now support a remove() method.
1509 - operator.itemgetter() and operator.attrgetter() now support retrieving
1513 - os.access now supports Unicode path names on non-Win32 systems.
1515 - Patches #925152, #1118602: Avoid reading after the end of the buffer
1518 - Patches #749830, #1144555: allow UNIX mmap size to default to current
1521 - Added functional.partial(). See PEP309.
1523 - Patch #1093585: raise a ValueError for negative history items in readline.
1526 - The spwd module has been added, allowing access to the shadow password
1529 - stat_float_times is now True.
1531 - array.array objects are now picklable.
1533 - the cPickle module no longer accepts the deprecated None option in the
1536 - itertools.islice() now accepts None for the start and step arguments.
1540 - datetime.datetime() now has a strptime class method which can be used to
1543 - Patch #1117961: Replace the MD5 implementation from RSA Data Security Inc
1544 with the implementation from http://sourceforge.net/projects/libmd5-rfc/.
1547 -------
1549 - Patch #1388073: Numerous __-prefixed attributes of unittest.TestCase have
1553 - PEP 338: new module runpy defines a run_module function to support
1557 - The email module's parsedate_tz function now sets the daylight savings
1558 flag to -1 (unknown) since it can't tell from the date whether it should
1561 - Patch #624325: urlparse.urlparse() and urlparse.urlsplit() results
1564 - Patch #1462498: sgmllib now handles entity and character references
1567 - Added the sqlite3 package. This is based on pysqlite2.1.3, and provides
1568 a DB-API interface in the standard library. You'll need sqlite 3.0.8 or
1569 later to build this - if you have an earlier version, the C extension
1572 - Bug #1460340: ``random.sample(dict)`` failed in various ways. Dicts
1577 - Bug #1445068: getpass.getpass() can now be given an explicit stream
1580 - Patch #1462313, bug #1443328: the pickle modules now can handle classes
1583 - Bug #1250170: mimetools now handles socket.gethostname() failures gracefully.
1585 - patch #1457316: "setup.py upload" now supports --identity to select the
1588 - Queue.Queue objects now support .task_done() and .join() methods
1592 - popen2.Popen objects now preserve the command in a .cmd attribute.
1594 - Added the ctypes ffi package.
1596 - email 4.0 package now integrated. This is largely the same as the email 3.0
1604 - Patches #1436130/#1443155: codecs.lookup() now returns a CodecInfo object
1611 - Patch #1359365: Calling next() on a closed StringIO.String object raises
1616 - A regrtest option -w was added to re-run failed tests in verbose mode.
1618 - Patch #1446372: quit and exit can now be called from the interactive
1621 - The function get_count() has been added to the gc module, and gc.collect()
1624 - A library msilib to generate Windows Installer files, and a distutils
1627 - PEP 343: new module contextlib.py defines decorator @contextmanager
1630 - The compiler package now supports future imports after the module docstring.
1632 - Bug #1413790: zipfile now sanitizes absolute archive names that are
1635 - Patch #1215184: FileInput now can be given an opening hook which can
1638 - Patch #1212287: fileinput.input() now has a mode parameter for
1641 - Patch #1215184: fileinput now has a fileno() function for getting the
1644 - Patch #1349274: gettext.install() now optionally installs additional
1647 - Patch #1337756: fileinput now accepts Unicode filenames.
1649 - Patch #1373643: The chunk module can now read chunks larger than
1652 - Patch #1417555: SimpleHTTPServer now returns Last-Modified headers.
1654 - Bug #1430298: It is now possible to send a mail with an empty
1657 - Bug #1432260: The names of lambda functions are now properly displayed
1660 - Patch #1412872: zipfile now sets the creator system to 3 (Unix)
1663 - Patch #1349118: urllib now supports user:pass@ style proxy
1667 - Bug #902075: urllib2 now supports 'host:port' style proxy specifications.
1669 - Bug #1407902: Add support for sftp:// URIs to urlparse.
1671 - Bug #1371247: Update Windows locale identifiers in locale.py.
1673 - Bug #1394565: SimpleHTTPServer now doesn't choke on query parameters
1676 - Bug #1403410: The warnings module now doesn't get confused
1679 - Patch #1177307: Added a new codec utf_8_sig for UTF-8 with a BOM signature.
1681 - Patch #1157027: cookielib mishandles RFC 2109 cookies in Netscape mode
1683 - Patch #1117398: cookielib.LWPCookieJar and .MozillaCookieJar now raise
1687 - Added the hashlib module. It provides secure hash functions for MD5 and
1689 historic MD5 and SHA1 unsuitable for cryptographic-strength applications.
1690 In <http://mail.python.org/pipermail/python-dev/2005-December/058850.html>
1695 is that SHA-256 is a good choice for the time being, but
1699 - Added a subset of Fredrik Lundh's ElementTree package. Available
1703 - Patch #1162825: Support non-ASCII characters in IDLE window titles.
1705 - Bug #1365984: urllib now opens "data:" URLs again.
1707 - Patch #1314396: prevent deadlock for threading.Thread.join() when an exception
1711 - Bug #1340337: change time.strptime() to always return ValueError when there
1714 - Patch #754022: Greatly enhanced webbrowser.py (by Oleg Broytmann).
1716 - Bug #729103: pydoc.py: Fix docother() method to accept additional
1719 - Patch #1300515: xdrlib.py: Fix pack_fstring() to really use null bytes
1722 - Bug #1296004: httplib.py: Limit maximal amount of data read from the
1725 - Patch #1166948: locale.py: Prefer LC_ALL, LC_CTYPE and LANG over LANGUAGE
1728 - Patch #1166938: locale.py: Parse LANGUAGE as a colon separated list of
1731 - Patch #1268314: Cache lines in StreamReader.readlines for performance.
1733 - Bug #1290505: Fix clearing the regex cache for time.strptime().
1735 - Bug #1167128: Fix size of a symlink in a tarfile to be 0.
1737 - Patch #810023: Fix off-by-one bug in urllib.urlretrieve reporthook
1740 - Bug #1163178: Make IDNA return an empty string when the input is empty.
1742 - Patch #848017: Make Cookie more RFC-compliant. Use CRLF as default output
1745 - Patch #1062060: urllib.urlretrieve() now raises a new exception, named
1747 match the Content-Length header.
1749 - Bug #1121494: distutils.dir_utils.mkpath now accepts Unicode strings.
1751 - Bug #1178484: Return complete lines from codec stream readers
1755 - Bug #1192315: Disallow negative arguments to clear() in pdb.
1757 - Patch #827386: Support absolute source paths in msvccompiler.py.
1759 - Patch #1105730: Apply the new implementation of commonprefix in posixpath
1762 - Fix a problem in Tkinter introduced by SF patch #869468: delete bogus
1766 - Bug #1015140: disambiguated the term "article id" in nntplib docs and
1769 - Bug #1238170: threading.Thread.__init__ no longer has "kwargs={}" as a
1772 - textwrap now processes text chunks at O(n) speed instead of O(n**2).
1775 - urllib2 has now an attribute 'httpresponses' mapping from HTTP status code
1776 to W3C name (404 -> 'Not Found'). RFE #1216944.
1778 - Bug #1177468: Don't cache the /dev/urandom file descriptor for os.urandom,
1781 - Bug #839151: Fix an attempt to access sys.argv in the warnings module;
1784 - Bug #1155638: Fix a bug which affected HTTP 0.9 responses in httplib.
1786 - Bug #1100201: Cross-site scripting was possible on BaseHTTPServer via
1789 - Bug #1108948: Cookie.py produced invalid JavaScript code.
1791 - The tokenize module now detects and reports indentation errors.
1794 - The tokenize module has a new untokenize() function to support a full
1799 - Bug #1196315: fix weakref.WeakValueDictionary constructor.
1801 - Bug #1213894: os.path.realpath didn't resolve symlinks that were the first
1804 - Patch #1120353: The xmlrpclib module provides better, more transparent,
1809 - distutils.commands.upload was added to support uploading distribution
1812 - distutils.commands.register now encodes the data as UTF-8 before posting
1815 - decimal operator and comparison methods now return NotImplemented
1820 - Bug #1163325: Decimal infinities failed to hash. Attempting to
1823 - Patch #918101: Add tarfile open mode r|* for auto-detection of the
1826 - Patch #1043890: Add extractall method to tarfile.
1828 - Patch #1075887: Don't require MSVC in distutils if there is nothing
1831 - Patch #1103407: Properly deal with tarfile iterators when untarring
1834 - Patch #645894: Use getrusage for computing the time consumption in
1837 - Patch #1046831: Use get_python_version where appropriate in sysconfig.py.
1839 - Patch #1117454: Remove code to special-case cookies without values
1842 - Patch #1117339: Add cookielib special name tests.
1844 - Patch #1112812: Make bsddb/__init__.py more friendly for modulefinder.
1846 - Patch #1110248: SYNC_FLUSH the zlib buffer for GZipFile.flush.
1848 - Patch #1107973: Allow iterating over the lines of a tarfile.ExFileObject.
1850 - Patch #1104111: Alter setup.py --help and --help-commands.
1852 - Patch #1121234: Properly cleanup _exit and tkerror commands.
1854 - Patch #1049151: xdrlib now unpacks booleans as True or False.
1856 - Fixed bug in a NameError bug in cookielib. Patch #1116583.
1858 - Applied a security fix to SimpleXMLRPCserver (PSF-2005-001). This
1862 - Bug #1222790: in SimpleXMLRPCServer, set the reuse-address and close-on-exec
1865 - Bug #792570: SimpleXMLRPCServer had problems if the request grew too large.
1868 - Patches #893642, #1039083: add allow_none, encoding arguments to
1871 - Bug #1110478: Revert os.environ.update to do putenv again.
1873 - Bug #1103844: fix distutils.install.dump_dirs() with negated options.
1875 - os.{SEEK_SET, SEEK_CUR, SEEK_END} have been added for convenience.
1877 - Enhancements to the csv module:
1882 + Dialect parameter parsing has been re-implemented to improve error
1898 C-coded dialect type, rather than references to python objects.
1899 + the internal c-coded dialect type is now immutable.
1903 + a configurable limit to the size of parsed fields has been added -
1913 + reader and writer objects were not being registered with the cyclic-GC.
1916 - _DummyThread objects in the threading module now delete self.__block that is
1921 - The imghdr module now detects Exif files.
1923 - StringIO.truncate() now correctly adjusts the size attribute.
1926 - locale.py now uses an updated locale alias table (built using
1931 - moved deprecated modules to Lib/lib-old: whrandom, tzparse, statcache.
1933 - the pickle module no longer accepts the deprecated None option in the
1936 - optparse now optionally imports gettext. This allows its use in setup.py.
1938 - the pickle module no longer uses the deprecated bin parameter.
1940 - the shelve module no longer uses the deprecated binary parameter.
1942 - the pstats module no longer uses the deprecated ignore() method.
1944 - the filecmp module no longer uses the deprecated use_statcache argument.
1946 - unittest.TestCase.run() and unittest.TestSuite.run() can now be successfully
1950 - heapq.nsmallest() and heapq.nlargest() now support key= arguments with
1953 - Bug #1076985: ``codecs.StreamReader.readline()`` now calls ``read()`` only
1957 - Bug #1083110: ``zlib.decompress.flush()`` would segfault if called
1961 - The reconvert.quote function can now emit triple-quoted strings. The
1964 - ``UserString.MutableString`` now supports negative indices in
1967 - Bug #1149508: ``textwrap`` now handles hyphenated numbers (eg. "2004-03-05")
1970 - Partial fixes for SF bugs #1163244 and #1175396: If a chunk read by
1976 - Bug #1251300: On UCS-4 builds the "unicode-internal" codec will now complain
1980 - Bug #1235646: ``codecs.StreamRecoder.next()`` now reencodes the data it reads
1984 - Bug #1202493: Fixing SRE parser to handle '{}' as perl does, rather than
1987 - Bug #1245379: Add "unicode-1-1-utf-7" as an alias for "utf-7" to
1990 - ` uu.encode()`` and ``uu.decode()`` now support unicode filenames.
1992 - Patch #1413711: Certain patterns of differences were making difflib
1995 - Bug #947906: An object oriented interface has been added to the calendar
1997 called as a script (e.g. via ``python -mcalendar``). Localized month and
2002 -----
2004 - Fix test_float, test_long, and test_struct failures on Tru64 with gcc
2005 by using -mieee gcc option.
2007 - Patch #1432345: Make python compile on DragonFly.
2009 - Build support for Win64-AMD64 was added.
2011 - Patch #1428494: Prefer linking against ncursesw over ncurses library.
2013 - Patch #881820: look for openpty and forkpty also in libbsd.
2015 - The sources of zlib are now part of the Python distribution (zlib 1.2.3).
2018 - Use -xcode=pic32 for CCSHARED on Solaris with SunPro.
2020 - Bug #1189330: configure did not correctly determine the necessary
2023 - Upgrade Windows build to zlib 1.2.3 which eliminates a potential security
2026 - EXTRA_CFLAGS has been introduced as an environment variable to hold compiler
2031 - SF patch 1171735: Darwin 8's headers are anal about POSIX compliance,
2035 - Bug #1158607: Build with --disable-unicode again.
2037 - spwdmodule.c is built only if either HAVE_GETSPNAM or HAVE_HAVE_GETSPENT is
2040 - setup.py now uses the directories specified in LDFLAGS using the -L option
2041 and in CPPFLAGS using the -I option for adding library and include
2044 the need for the special-casing of both DarwinPorts and Fink for darwin since
2045 the proper directories can be specified in LDFLAGS (``-L/sw/lib`` for Fink,
2046 ``-L/opt/local/lib`` for DarwinPorts) and CPPFLAGS (``-I/sw/include`` for
2047 Fink, ``-I/opt/local/include`` for DarwinPorts).
2049 - Test in configure.in that checks for tzset no longer dependent on tm->tm_zone
2055 -----
2057 - ``PyMem_{Del, DEL}`` and ``PyMem_{Free, FREE}`` no longer map to
2061 always been officially true, but when Python's small-object allocator was
2066 low-level memory management functions can yield many symptoms).
2068 - Added a C API for set and frozenset objects.
2070 - Removed PyRange_New().
2072 - Patch #1313939: PyUnicode_DecodeCharmap() accepts a unicode string as the
2079 -----
2081 - In test_os, st_?time is now truncated before comparing it with ST_?TIME.
2083 - Patch #1276356: New resource "urlfetch" is implemented. This enables
2088 -------------
2090 - Bug #1402224: Add warning to dl docs about crashes.
2092 - Bug #1396471: Document that Windows' ftell() can return invalid
2093 values for text files with UNIX-style line endings.
2095 - Bug #1274828: Document os.path.splitunc().
2097 - Bug #1190204: Clarify which directories are searched by site.py.
2099 - Bug #1193849: Clarify os.path.expanduser() documentation.
2101 - Bug #1243192: re.UNICODE and re.LOCALE affect \d, \D, \s and \S.
2103 - Bug #755617: Document the effects of os.chown() on Windows.
2105 - Patch #1180012: The documentation for modulefinder is now in the library reference.
2107 - Patch #1213031: Document that os.chown() accepts argument values of -1.
2109 - Bug #1190563: Document os.waitpid() return value with WNOHANG flag.
2111 - Bug #1175022: Correct the example code for property().
2113 - Document the IterableUserDict class in the UserDict module.
2116 - Remove all latent references for "Macintosh" that referred to semantics for
2121 ---
2125 -------------
2127 - FreeBSD 7 support is added.
2131 -----------
2133 - Created Misc/Vim/vim_syntax.py to auto-generate a python.vim file in that
2137 - Added two new files to Tools/scripts: pysource.py, which recursively
2142 - Bug #1072853: pindent.py used an uninitialized variable.
2144 - Patch #1177597: Correct Complex.__init__.
2146 - Fixed a display glitch in Pynche, which could cause the right arrow to
2153 *Release date: 30-NOV-2004*
2156 -----------------
2158 - Bug 875692: Improve signal handling, especially when using threads, by
2159 forcing an early re-execution of PyEval_EvalFrame() "periodic" code when
2166 *Release date: 18-NOV-2004*
2169 -----------------
2171 - Bug 1061968: Fixes in 2.4a3 to address thread bug 1010677 reintroduced
2172 the years-old thread shutdown race bug 225673. Numeric history lesson
2177 -------
2179 - Bug 1052242: If exceptions are raised by an atexit handler function an
2181 raised is re-raised.
2183 - ``doctest``'s new support for adding ``pdb.set_trace()`` calls to
2186 - Bug 1065388: ``calendar``'s ``day_name``, ``day_abbr``, ``month_name``,
2187 and ``month_abbr`` attributes emulate sequences of locale-correct
2197 - Patch 1061679: Added ``__all__`` to pickletools.py.
2200 -----
2202 - Bug 1034277 / Patch 1035255: Remove compilation of core against CoreServices
2207 -----
2209 - The PyRange_New() function is deprecated.
2215 *Release date: 03-NOV-2004*
2218 -------
2238 -----------------
2240 - Bug #1055820 Cyclic garbage collection was not protecting against that
2251 - Bug #1054139 _PyString_Resize() now invalidates its cached hash value.
2254 -----------------
2256 - Bug #1048870: the compiler now generates distinct code objects for
2262 -------
2264 - Patch #1056967 changes the semantics of Template.safe_substitute() so that
2268 - Bug #1052503 pdb.runcall() was not passing along keyword arguments.
2270 - Bug #902037: XML.sax.saxutils.prepare_input_source() now combines relative
2273 - The whichdb module can now be run from the command line.
2275 - Bug #1045381: time.strptime() can now infer the date using %U or %W (week of
2278 - Bug #1048816: fix bug in Ctrl-K at start of line in curses.textpad.Textbox
2280 - Bug #1017553: fix bug in tarfile.filemode()
2282 - Patch #737473: fix bug that old source code is shown in tracebacks even if
2286 -----
2288 - Patch #1044395: --enable-shared is allowed in FreeBSD also.
2293 *Release date: 15-OCT-2004*
2296 -----------------
2298 - Patch #975056: Restartable signals were not correctly disabled on
2301 - The internal portable implementation of thread-local storage (TLS), used
2303 thread-correct. This could lead to a variety of problems, up to and
2306 - Added a command line option, -m module, which searches sys.path for the
2309 - The bytecode optimizer now folds tuples of constants into a single
2312 - SF bug #513866: Float/long comparison anomaly. Prior to 2.4b1, when
2316 ``long(1e200)+1 == 1e200 == long(1e200)-1``. Coercion to float is no
2317 longer performed, and cases like ``long(1e200)-1 < 1e200``,
2322 -----------------
2324 - ``collections.deque`` objects didn't play quite right with garbage
2331 -------
2333 - Patch 1046644: distutils build_ext grew two new options - --swig for
2334 specifying the swig executable to use, and --swig-opts to specify
2335 options to pass to swig. --swig-opts="-c++" is the new way to spell
2336 --swig-cpp.
2338 - Patch 983206: distutils now obeys environment variable LDSHARED, if
2341 - Added Peter Astrand's subprocess.py module. See PEP 324 for details.
2343 - time.strptime() now properly escapes timezones and all other locale-specific
2344 strings for regex-specific symbols. Was breaking under Japanese Windows when
2348 - Updates for the email package:
2363 - re's findall() and finditer() functions now take an optional flags argument
2368 - rfc822 Messages now support iterating over the headers.
2370 - The (undocumented) tarfile.Tarfile.membernames has been removed;
2373 - httplib now offers symbolic constants for the HTTP status codes.
2375 - SF bug #1028306: Trying to compare a ``datetime.date`` to a
2377 Now it acts like a mixed-type comparison: ``False`` for ``==``,
2385 - bdist_rpm now supports command line options --force-arch,
2386 {pre,post}-install, {pre,post}-uninstall, and
2387 {prep,build,install,clean,verify}-script.
2389 - SF patch #998993: The UTF-8 and the UTF-16 stateful decoders now support
2392 readline support for the UTF-16 decoders. ``codecs.StreamReader.read()``
2398 - The documentation for doctest is greatly expanded, and now covers all
2401 - ``doctest.master`` was put back in, and ``doctest.testmod()`` once again
2408 - httplib now handles ipv6 address/port pairs.
2410 - SF bug #1017864: ConfigParser now correctly handles default keys,
2412 consistent with the handling of config file entries and runtime-set
2415 - SF bug #997050: Document, test, & check for non-string values in
2416 ConfigParser. Moved the new string-only restriction added in
2419 conditions under which non-string values work.
2422 -----
2424 - Building on darwin now includes /opt/local/include and /opt/local/lib for
2428 - pyport.h now defines a Py_IS_NAN macro. It works as-is when the
2430 Other platforms can override the default definition with a platform-
2435 -----
2437 - SF patch 1044089: New function ``PyEval_ThreadsInitialized()`` returns
2438 non-zero if PyEval_InitThreads() has been called.
2440 - The undocumented and unused extern int ``_PyThread_Started`` was removed.
2442 - The C API calls ``PyInterpreterState_New()`` and ``PyThreadState_New()``
2446 of calls to Python's small-object allocator, to get the benefit of
2447 its extra debugging capabilities. But Python's small-object allocator
2452 - PyLong_AsUnsignedLong[Mask] now support int objects as well.
2454 - SF patch #998993: ``PyUnicode_DecodeUTF8Stateful`` and
2459 -----
2461 - test__locale ported to unittest
2464 ---
2466 - ``plistlib`` now supports non-dict root objects. There is also a new
2471 -----------
2473 - The text file comparison scripts ``ndiff.py`` and ``diff.py`` now
2474 read the input files in universal-newline mode. This spares them
2483 *Release date: 02-SEP-2004*
2486 -----------------
2488 - SF patch #1007189: ``from ... import ...`` statements now allow the name
2491 - Some speedups for long arithmetic, thanks to Trevor Perrin. Gradeschool
2500 from right-to-left to left-to-right, which is more efficient for small
2505 - OverflowWarning is no longer generated. PEP 237 scheduled this to
2511 - Py_InitializeEx has been added.
2513 - Fix the order of application of decorators. The proper order is bottom-up;
2516 - SF patch #1005778. Fix a seg fault if the list size changed while
2520 - The ``func_name`` (a.k.a. ``__name__``) attribute of user-defined
2523 - code_new (a.k.a new.code()) now checks its arguments sufficiently
2528 - Subclasses of string can no longer be interned. The semantics of
2529 interning were not clear here -- a subclass could be mutable, for
2530 example -- and had bugs. Explicitly interning a subclass of string
2534 - Bug 1003935: xrange() could report bogus OverflowErrors. Documented
2538 -----------------
2540 - difflib now supports HTML side-by-side diff.
2542 - os.urandom has been added for systems that support sources of random
2545 - Patch 1012740: truncate() on a writeable cStringIO now resets the
2550 - Added socket.socketpair().
2552 - Added CurrentByteIndex, CurrentColumnNumber, CurrentLineNumber
2555 - The mpz, rotor, and xreadlines modules, all deprecated in earlier
2559 -------
2561 - Patch #934356: if a module defines __all__, believe that rather than using
2564 - Patch #941486: added os.path.lexists(), which returns True for broken
2567 - the random module now uses os.urandom() for seeding if it is available.
2570 - difflib and diff.py can now generate HTML.
2572 - bdist_rpm now includes version and release in the BuildRoot, and
2573 replaces - by ``_`` in version and release.
2575 - distutils build/build_scripts now has an -e option to specify the
2578 - PEP 292 classes Template and SafeTemplate are added to the string module.
2580 - tarfile now generates GNU tar files by default.
2582 - HTTPResponse has now a getheaders method.
2584 - Patch #1006219: let inspect.getsource handle '@' decorators. Thanks Simon
2587 - logging.handlers.SMTPHandler.date_time has been removed;
2590 - A new function tkFont.nametofont was added to return an existing
2595 - Updated the decimal package's min() and max() methods to match the
2600 - The decimal package's Context.copy() method now returns deep copies.
2602 - Deprecated sys.exitfunc in favor of the atexit module. The sys.exitfunc
2606 - patch #675551: Add get_history_item and replace_history_item functions
2609 - bug #989672: pdb.doc and the help messages for the help_d and help_u methods
2613 - bug #990669: os.path.realpath() will resolve symlinks before normalizing the
2617 - bug #851123: shutil.copyfile will raise an exception when trying to copy a
2620 - bug #570300: Fix inspect to resolve file locations using os.path.realpath()
2624 - doctest refactoring continued. See the docs for details. As part of
2625 this effort, some old and little- (never?) used features are now
2638 - Bug #891637, patch #1005466: fix inspect.getargs() crash on def foo((bar)).
2641 -----------
2643 - IDLE's shortcut keys for windows are now case insensitive so that
2644 Control-V works the same as Control-v.
2646 - pygettext.py: Generate POT-Creation-Date header in ISO format.
2649 -----
2651 - Backward incompatibility: longintrepr.h now triggers a compile-time
2654 5-bits-at-a-time long_pow() implementation. If necessary, the
2656 falling back to the 1-bit-at-a-time algorithm), but there are no
2659 - bug #991962: When building with --disable-toolbox-glue on Darwin no
2660 attempt to build Mac-specific modules occurs.
2662 - The --with-tsc flag to configure to enable VM profiling with the
2665 - patch #1006629: Define _XOPEN_SOURCE to 500 on Solaris 8/9 to match
2668 - Detect pthreads support (provided by gnu pth pthread emulation) on
2671 - bug #1005737, #1007249: Fixed several build problems and warnings
2672 found on old/legacy C compilers of HP-UX, IRIX and Tru64.
2675 -----
2680 -------------
2682 - patch #1005936, bug #1009373: fix index entries which contain
2685 - bug #990669: os.path.normpath may alter the meaning of a path if
2690 -------------
2692 - FreeBSD 6 is now supported.
2695 -----
2700 -------
2702 - Boosted the stack reservation for python.exe and pythonw.exe from
2703 the default 1MB to 2MB. Stack frames under VC 7.1 for 2.4 are enough
2704 bigger than under VC 6.0 for 2.3.4 that deeply recursive progams
2713 ---
2721 *Release date: 05-AUG-2004*
2724 -----------------
2726 - Patch #980695: Implements efficient string concatenation for statements
2731 - PEP-0318, Function Decorators have been added to the language. These are
2732 implemented using the Java-style @decorator syntax, like so::
2739 - When importing a module M raises an exception, Python no longer leaves M
2743 Subsequent imports got no indication that M was in a partially-
2759 - u'%s' % obj will now try obj.__unicode__() first and fallback to
2762 - Patch #550732: Add PyArg_VaParseTupleAndKeywords(). Analogous to
2765 - Allow string and unicode return types from .encode()/.decode()
2769 - An attempt to fix the mess that is Python's behaviour with
2773 - Added C macros Py_CLEAR and Py_VISIT to ease the implementation of
2776 - Compiler now treats None as a constant.
2778 - The type of values returned by __int__, __float__, __long__,
2783 - Implemented bind_textdomain_codeset() in locale module.
2785 - Added a workaround for proper string operations in BSDs. str.split
2786 and str.is* methods can now work correctly with UTF-8 locales.
2788 - Bug #989185: unicode.iswide() and unicode.width() is dropped and
2792 - Patch #941229: The source code encoding in interactive mode
2793 now refers sys.stdin.encoding not just ISO-8859-1 anymore. This
2794 allows for non-latin-1 users to write unicode strings directly.
2797 -----------------
2799 - cpickle now supports the same keyword arguments as pickle.
2802 -------
2804 - Added new codecs and aliases for ISO_8859-11, ISO_8859-16 and
2805 TIS-620
2807 - Thanks to Edward Loper, doctest has been massively refactored, and
2818 - Tkinter now supports the wish -sync and -use options.
2820 - The following methods in time support passing of None: ctime(), gmtime(),
2825 - nntplib does now allow ignoring a .netrc file.
2827 - urllib2 now recognizes Basic authentication even if other authentication
2830 - Bug #1001053. wave.open() now accepts unicode filenames.
2832 - gzip.GzipFile has a new fileno() method, to retrieve the handle of the
2836 - imaplib has two new methods: deleteacl and myrights.
2838 - nntplib has two new methods: description and descriptions. They
2839 use a more RFC-compliant way of getting a newsgroup description.
2841 - Bug #993394. Fix a possible red herring of KeyError in 'threading' being
2845 - Bug #857297/Patch #916874. Fix an error when extracting a hard link
2848 - Patch #846659. Fix an error in tarfile.py when using
2851 - The obsolete FCNTL.py has been deleted. The built-in fcntl module
2856 - Several new unicode codecs are added: big5hkscs, euc_jis_2004,
2859 - Bug #788520. Queue.{get, get_nowait, put, put_nowait} have new
2862 Empty exceptions raised by non-blocking calls now occur only if the
2870 - Bugs #979794 and #980117: difflib.get_grouped_opcodes() now handles the
2874 - Bug #980938: smtplib now prints debug output to sys.stderr.
2876 - Bug #930024: posixpath.realpath() now handles infinite loops in symlinks by
2880 - Bug #980327: ntpath not handles compressing erroneous slashes between the
2884 - bug #679953: zipfile.py should now work for files over 2 GB. The packed data
2888 - decimal.py now only uses signals in the IBM spec. The other conditions are
2891 - codecs module now has two new generic APIs: encode() and decode()
2895 - Non-blocking SSL sockets work again; they were broken in Python 2.3.
2898 - doctest unittest integration improvements:
2900 o Improved the unitest test output for doctest-based unit tests
2905 - The threading module has a new class, local, for creating objects
2906 that provide thread-local data.
2908 - Bug #990307: when keep_empty_values is True, cgi.parse_qsl()
2911 - Implemented bind_textdomain_codeset() in gettext module.
2913 - Introduced in gettext module the l*gettext() family of functions,
2917 - optparse module (and tests) upgraded to Optik 1.5a1. Changes:
2919 - Add expansion of default values in help text: the string
2923 - Bug #955889: option default values that happen to be strings are
2928 - Bug #960515: don't crash when generating help for callback
2931 - Feature #815264: change the default help format for short options
2932 that take an argument from e.g. "-oARG" to "-o ARG"; add
2936 - Patch #736940: internationalize Optik: all built-in user-
2939 -- you'll find them in the Optik source distribution from
2942 - Bug #878453: respect $COLUMNS environment variable for
2945 - Feature #988122: expand "%prog" in the 'description' passed
2950 -----
2952 - PyImport_ExecCodeModule() and PyImport_ExecCodeModuleEx(): if an
2955 one of these, so this is an error-case change in semantics for all
2964 - A large pile of datetime field-extraction macros is now documented,
2968 -------------
2970 - Improved the tutorial on creating types in C.
2972 - point out the importance of reassigning data members before
2975 - correct my misconception about return values from visitprocs. Sigh.
2977 - mention the labor saving Py_VISIT and Py_CLEAR macros.
2979 - Major rewrite of the math module docs, to address common confusions.
2982 -----
2984 - The test data files for the decimal test suite are now installed on
2987 - SF patch 995225: The test file testtar.tar accidentally contained
2995 *Release date: 08-JUL-2004*
2998 -----------------
3000 - weakref.ref is now the type object also known as
3001 weakref.ReferenceType; it can be subclassed like any other new-style
3002 class. There's less per-entry overhead in WeakValueDictionary
3005 - Bug #951851: Python crashed when reading import table of certain
3008 - Bug #215126. The locals argument to eval(), execfile(), and exec now
3011 - marshal now shares interned strings. This change introduces
3014 - Bug #966623. classes created with type() in an exec(, {}) don't
3018 - Python no longer relies on the LC_NUMERIC locale setting to be
3022 - Bug #952807: Unpickling pickled instances of subclasses of
3026 - Bug #845802: Python crashes when __init__.py is a directory.
3028 - Unicode objects received two new methods: iswide() and width().
3032 - Improved the tuple hashing algorithm to give fewer collisions in
3035 - Implemented generator expressions (PEP 289). Coded by Jiwon Seo.
3037 - Enabled the profiling of C extension functions (and builtins) - check
3040 - Set file.name to the object passed to open (instead of a new string)
3042 - Moved tracebackobject into traceback.h and renamed to PyTracebackObject
3044 - Optimized the byte coding for multiple assignments like "a,b=b,a" and
3047 - Limit the nested depth of a tuple for the second argument to isinstance()
3051 - Optimized dict iterators, creating separate types for each
3055 - Implemented a newcode opcode, LIST_APPEND, that simplifies
3059 - Implemented rich comparisons for floats, which seems to make
3063 - Optimized list.extend() to save memory and no longer create
3064 intermediate sequences. Also, extend() now pre-allocates the
3066 advance -- this halves the time to extend the list.
3068 - Optimized list resize operations to make fewer calls to the system
3073 - Changed the internal list over-allocation scheme. For larger lists,
3076 the overallocation is no more than three elements -- this improves space
3079 - Most list bodies now get re-used rather than freed. Speeds up list
3082 - The dict.update() method now accepts all the same argument forms
3086 - Support for arbitrary objects supporting the read-only buffer
3090 - Made omitted callback and None equivalent for weakref.ref() and
3094 - Fixed problem where PyWeakref_NewRef() and PyWeakref_NewProxy()
3105 - input() built-in function now respects compiler flags such as
3108 - Removed PendingDeprecationWarning from apply(). apply() remains
3111 - At Python shutdown time (Py_Finalize()), 2.3 called cyclic garbage
3121 - Removed FutureWarnings related to hex/oct literals and conversions
3130 - For str and unicode objects, the ljust(), center(), and rjust()
3134 - When method objects have an attribute that can be satisfied either
3143 - Critical bugfix, for SF bug 839548: if a weakref with a callback,
3147 the callback to see partially-torn-down objects, leading to immediate
3158 - Critical bugfix, for SF bug 840829: if cyclic garbage collection
3159 happened to occur during a weakref callback for a new-style class
3164 - Compiler flags set in PYTHONSTARTUP are now active in __main__.
3166 - Added two built-in types, set() and frozenset().
3168 - Added a reversed() built-in function that returns a reverse iterator
3171 - Added a sorted() built-in function that returns a new sorted list
3174 - CObjects are now mutable (on the C level) through PyCObject_SetVoidPtr.
3176 - list.sort() now supports three keyword arguments: cmp, key, and reverse.
3185 - Added test whether wchar_t is signed or not. A signed wchar_t is not
3189 - Fixed a bug in the cache of length-one Unicode strings that could
3191 non-fatal error left an uninitialized Unicode object in the
3194 - The % formatting operator now supports '%F' which is equivalent to
3197 - complex(obj) could leak a little memory if obj wasn't a string or
3200 - zip() with no arguments now returns an empty list instead of raising
3203 - obj.__contains__() now returns True/False instead of 1/0. SF patch
3206 - Python no longer tries to be smart about recursive comparisons.
3210 - str and unicode built-in types now have an rsplit() method that is
3214 - Fixed a bug in object.__reduce_ex__ when using protocol 2. Failure
3218 - buffer objects based on other objects no longer cache a pointer to
3222 - fixed: if a file is opened with an explicit buffer size >= 1, repeated
3228 -----------------
3230 - Added socket.getservbyport(), and make the second argument in
3233 - time module code that deals with input POSIX timestamps will now raise
3241 - fcntl.ioctl now warns if the mutate flag is not specified.
3243 - nt now properly allows referring to UNC roots, e.g. in nt.stat().
3245 - the weakref module now supports additional objects: array.array,
3248 - operator.isMappingType() and operator.isSequenceType() now give
3251 - socket.sslerror is now a subclass of socket.error . Also added
3254 - Bug #920575: A problem where the _locale module segfaults on
3257 - array objects now support the copy module. Also, their resizing
3263 - cStringIO.writelines() now accepts any iterable argument and writes
3268 - time.strftime() now checks that the values in its time tuple argument
3275 - The socket module now supports Bluetooth sockets, if the
3278 - Added a collections module containing a new datatype, deque(),
3279 offering high-performance, thread-safe, memory friendly appends
3282 - Several modules now take advantage of collections.deque() for
3285 - The operator module has two new functions, attrgetter() and
3290 - socket.SHUT_{RD,WR,RDWR} was added.
3292 - os.getsid was added.
3294 - The pwd module incorrectly advertised its struct type as
3298 - The xml.parsers.expat module now provides Expat 1.95.7.
3300 - socket.IPPROTO_IPV6 was added.
3302 - readline.clear_history was added.
3304 - select.select() now accepts sequences for its first three arguments.
3306 - cStringIO now supports the f.closed attribute.
3308 - The signal module now exposes SIGRTMIN and SIGRTMAX (if available).
3310 - curses module now supports use_default_colors(). [patch #739124]
3312 - Bug #811028: ncurses.h breakage on FreeBSD/MacOS X
3314 - Bug #814613: INET_ADDRSTRLEN fix needed for all compilers on SGI
3316 - Implemented non-recursive SRE matching scheme (#757624).
3318 - Implemented (?(id/name)yes|no) support in SRE (#572936).
3320 - random.seed() with no arguments or None uses time.time() as a default
3324 - random.Random has a new method, getrandbits(k), which returns an int
3332 - itertools has a new function, groupby() for aggregating iterables
3337 - itertools now has a new tee() function which produces two independent
3340 - itertools.izip() with no arguments now returns an empty iterator instead
3343 - Fixed #853061: allow BZ2Compressor.compress() to receive an empty string
3347 -------
3349 - Added a new module: cProfile, a C profiler with the same interface as the
3354 - Bug #1266283: The new function "lexists" is now in os.path.__all__.
3356 - Bug #981530: Fix UnboundLocalError in shutil.rmtree(). This affects
3360 - Bug #754449: threading.Thread objects no longer mask exceptions raised during
3364 - Added decimal.py per PEP 327.
3366 - Bug #981299: rsync is now a recognized protocol in urlparse that uses a
3369 - Bug #919012: shutil.move() will not try to move a directory into itself.
3372 - Bug #934282: pydoc.stripid() is now case-insensitive. Thanks Robin Becker.
3374 - Bug #823209: cmath.log() now takes an optional base argument so that its
3377 - Bug #957381: distutils bdist_rpm no longer fails on recent RPM versions
3378 that generate a -debuginfo.rpm
3380 - os.path.devnull has been added for all supported platforms.
3382 - Fixed #877165: distutils now picks the right C++ compiler command
3385 - urllib.urlopen().readline() now handles HTTP/0.9 correctly.
3387 - refactored site.py into functions. Also wrote regression tests for the
3390 - The distutils install command now supports the --home option and
3393 - asyncore.loop now has a repeat count parameter that defaults to
3396 - The distutils sdist command now ignores all .svn directories, in
3400 - Added a new module: cookielib. Automatic cookie handling for HTTP
3404 - stringprep.py now uses built-in set() instead of sets.Set().
3406 - Bug #876278: Unbounded recursion in modulefinder
3408 - Bug #780300: Swap public and system ID in LexicalHandler.startDTD.
3411 - Bug #926075: Fixed a bug that returns a wrong pattern object
3415 - Added countcallers arg to trace.Trace class (--trackcalls command line arg
3418 - Fixed a caching bug in platform.platform() where the argument of 'terse' was
3421 - Added two new command-line arguments for profile (output file and
3424 - Added global runctx function to profile module
3426 - Add hlist missing entryconfigure and entrycget methods.
3428 - The ptcp154 codec was added for Kazakh character set support.
3430 - Support non-anonymous ftp URLs in urllib2.
3432 - The encodings package will now apply codec name aliases
3434 This simplifies overriding built-in codecs with external
3439 - base64 now supports RFC 3548 Base16, Base32, and Base64 encoding and
3442 - urllib2 now supports processors. A processor is a handler that
3446 - distutils compilers now compile source files in the same order as
3449 - pprint.pprint() and pprint.pformat() now have additional parameters
3452 - Patch #750542: pprint now will pretty print subclasses of list, tuple
3455 - Bug #848614: distutils' msvccompiler fails to find the MSVC6
3458 - httplib.HTTP.putrequest now offers to omit the implicit Accept-Encoding.
3460 - Patch #841977: modulefinder didn't find extension modules in packages
3462 - imaplib.IMAP4.thread was added.
3464 - Plugged a minor hole in tempfile.mktemp() due to the use of
3467 - bisect.py and heapq.py now have underlying C implementations
3470 - heapq.py has two new functions, nsmallest() and nlargest().
3472 - traceback.format_exc has been added (similar to print_exc but it returns
3475 - xmlrpclib.MultiCall has been added.
3477 - poplib.POP3_SSL has been added.
3479 - tmpfile.mkstemp now returns an absolute path even if dir is relative.
3481 - urlparse is RFC 2396 compliant.
3483 - The fieldnames argument to the csv module's DictReader constructor is now
3487 - encodings.bz2_codec was added for access to bz2 compression
3490 - Various improvements to unittest.py, realigned with PyUnit CVS.
3492 - dircache now passes exceptions to the caller, instead of returning
3495 - The bsddb module and dbhash module now support the iterator and
3499 - The csv module's DictReader and DictWriter classes now accept keyword
3502 - The email package handles some RFC 2231 parameters with missing
3506 - sets.py now runs under Py2.2. In addition, the argument restrictions
3510 - _strptime.py now has a behind-the-scenes caching mechanism for the most
3512 patterns. The overall module was also made more thread-safe.
3514 - random.cunifvariate() and random.stdgamma() were deprecated in Py2.3
3517 - Bug #823328: urllib2.py's HTTP Digest Auth support works again.
3519 - Patch #873597: CJK codecs are imported into rank of default codecs.
3522 -----------
3524 - A hotshotmain script was added to the Tools/scripts directory that
3527 - The db2pickle and pickle2db scripts can now dump/load gdbm files.
3529 - The file order on the command line of the pickle2db script was reversed.
3534 - The pydoc script will display a link to the module documentation for
3539 - texcheck.py now detects double word errors.
3541 - md5sum.py mistakenly opened input files in text mode by default, a
3543 opens input files in binary mode by default. The -t and -b flags
3544 remain for compatibility with the 2.3 release, but -b is the default
3547 - py-electric-colon now works when pending-delete/delete-selection mode is
3550 - py-help-at-point is no longer bound to the F1 key - it's still bound to
3551 C-c C-h
3553 - Pynche was fixed to not crash when there is no ~/.pynche file and no
3554 -d option was given.
3557 -----
3559 - Bug #978645: Modules/getpath.c now builds properly in --disable-framework
3562 - Profiling using gprof is now available if Python is configured with
3563 --enable-profiling.
3565 - Profiling the VM using the Pentium TSC is now possible if Python
3566 is configured --with-tsc.
3568 - In order to find libraries, setup.py now also looks in /lib64, for use
3571 - Bug #934635: Fixed a bug where the configure script couldn't detect
3574 - Support for missing ANSI C header files (limits.h, stddef.h, etc) was
3577 - Systems requiring the D4, D6 or D7 variants of pthreads are no longer
3580 - Universal newline support can no longer be disabled (see PEP 11).
3582 - Support for DGUX, SunOS 4, IRIX 4 and Minix was removed (see PEP 11).
3584 - Support for systems requiring --with-dl-dld or --with-sgi-dl was removed
3587 - Tests for sizeof(char) were removed since ANSI C mandates that
3591 -----
3593 - Thanks to Anthony Tuininga, the datetime module now supplies a C API
3594 containing type-check macros and constructors. See new docs in the
3597 - Private function _PyTime_DoubleToTimet added, to convert a Python
3598 timestamp (C double) to platform time_t with some out-of-bounds
3602 - New public functions PyEval_EvaluateFrame and PyGen_New to expose
3605 - New public functions Py_IncRef() and Py_DecRef(), exposing the
3610 - Added a new macro, PySequence_Fast_ITEMS, which retrieves a fast sequence's
3613 - Created a new method flag, METH_COEXIST, which causes a method to be loaded
3615 method, for example, to co-exist with a defined sq_contains slot. This
3619 - Added a new function, PyDict_Contains(d, k) which is like
3623 - Added three new macros: Py_RETURN_NONE, Py_RETURN_TRUE, and Py_RETURN_FALSE.
3626 - Added a new function, PyTuple_Pack(n, ...) for constructing tuples from a
3632 -------
3634 - The _winreg module could segfault when reading very large registry
3639 - file.truncate() could misbehave if the file was open for update
3647 *Release date: 29-Jul-2003*
3650 ----
3652 - Bug 778400: IDLE hangs when selecting "Edit with IDLE" from explorer.
3653 This was unique to Windows, and was fixed by adding an -n switch to
3655 context-menu actions.
3657 - IDLE displays a new message upon startup: some "personal firewall"
3671 *Release date: 24-Jul-2003*
3674 -----------------
3676 - It is now possible to import from zipfiles containing additional
3681 -----------------
3683 - A longstanding bug in the parser module's initialization could cause
3687 - Fixed memory leak in pyexpat; using the parser's ParseFile() method
3692 - Fixed some leaks in the locale module.
3695 -------
3697 - Lib/encodings/rot_13.py when used as a script, now more properly
3700 - Removed caching of TimeRE (and thus LocaleTime) in _strptime.py to
3706 ----
3708 - Calltips patches.
3711 -----
3713 - For MacOSX, added -mno-fused-madd to BASECFLAGS to fix test_coercion
3717 -----
3720 -------
3722 - The tempfile module could do insane imports on Windows if PYTHONCASEOK
3725 - Add a patch to workaround pthread_sigmask() bugs in Cygwin.
3728 ---
3730 - Various fixes to pimp.
3732 - Scripts runs with pythonw no longer had full window manager access.
3734 - Don't force boot-disk-only install, for reasons unknown it causes
3741 *Release date: 18-Jul-2003*
3744 -----------------
3746 - The new function sys.getcheckinterval() returns the last value set
3749 - Several bugs in the symbol table phase of the compiler have been
3753 - The interpreter is now more robust about importing the warnings
3758 - A warning about assignments to module attributes that shadow
3761 - It is not possible to create subclasses of built-in types like str
3765 - The thread_id is now initialized to 0 in a non-thread build. SF bug
3768 - SF bug 762891: "del p[key]" on proxy object no longer raises SystemError.
3771 -----------------
3773 - weakref.proxy() can now handle "del obj[i]" for proxy objects
3776 - SSL no longer crashes the interpreter when the remote side disconnects.
3778 - On Unix the mmap module can again be used to map device files.
3780 - time.strptime now exclusively uses the Python implementation
3783 - The print slot of weakref proxy objects was removed, because it was
3786 - The mmap module only checks file size for regular files, not
3789 - The cPickle Pickler garbage collection support was fixed to traverse
3792 - There are several fixes for the bsddb3 wrapper module.
3805 -------
3807 - distutils now supports MSVC 7.1
3809 - doctest now examines all docstrings by default. Previously, it would
3818 - There were several fixes to the way dumbdbms are closed. It's vital
3819 that a dumbdbm database be closed properly, else the on-disk data
3824 get the on-disk files in synch could be badly surprised. The race
3830 - The classes in threading.py are now new-style classes. That they
3833 - The urllib2 digest authentication handlers now define the correct
3836 - SF bug 763023: fix uncaught ZeroDivisionError in difflib ratio methods
3839 - SF bug 763637: fix exception in Tkinter with after_cancel
3842 - SF bug 770601: CGIHTTPServer.py now passes the entire environment
3845 - SF bug 765238: add filter to fnmatch's __all__.
3847 - SF bug 748201: make time.strptime() error messages more helpful.
3849 - SF patch 764470: Do not dump the args attribute of a Fault object in
3852 - SF patch 549151: urllib and urllib2 now redirect POSTs on 301
3855 - SF patch 766650: The whichdb module was fixed to recognize dbm files
3858 - SF bugs 763047 and 763052: fixes bug of timezone value being left as
3859 -1 when ``time.tzname[0] == time.tzname[1] and not time.daylight``
3862 - SF bug 764548: re now allows subclasses of str and unicode to be
3865 - SF bug 763637: In Tkinter, change after_cancel() to handle tuples
3869 - SF bug 763023: difflib.ratio() did not catch zero division.
3871 - The Queue module now has an __all__ attribute.
3874 -----------
3876 - See Lib/idlelib/NEWS.txt for IDLE news.
3878 - SF bug 753592: webchecker/wsgui now handles user supplied directories.
3880 - The trace.py script has been removed. It is now in the standard library.
3883 -----
3885 - Python now compiles with -fno-strict-aliasing if possible (SF bug 766696).
3887 - The socket module compiles on IRIX 6.5.10.
3889 - An irix64 system is treated the same way as an irix6 system (SF
3892 - Several definitions were missing on FreeBSD 5.x unless the
3897 -----
3899 - Unicode objects now support mbcs as a built-in encoding, so the C
3903 -------
3905 - The Windows implementation of PyThread_start_new_thread() never
3908 _beginthread() function failed (due to "too many threads" -- this is
3916 - SF bug 766669: Prevent a GPF on interpreter exit when sockets are in
3921 ---
3923 - Bundlebuilder now inherits default values in the right way. It was
3925 of "APPL." Other improvements include, a --build-id option to
3926 specify the CFBundleIdentifier and using the --python option to set
3929 - Fixed two bugs in MacOSX framework handling.
3931 - pythonw did not allow user interaction in 2.3rc1, this has been fixed.
3933 - Python is now compiled with -mno-fused-madd, making all tests pass
3939 *Release date: 29-Jun-2003*
3942 -----------------
3944 - A program can now set the environment variable PYTHONINSPECT to some
3947 with the -i option.
3949 - list.index() now accepts optional start and stop arguments. Similar
3952 - SF patch 751998 fixes an unwanted side effect of the previous fix
3955 - SF bug 742860: "WeakKeyDictionary __delitem__ uses iterkeys". This
3961 referencable type; and broke various more-or-less obscure dict
3969 - SF bug 734869: Fixed a compiler bug that caused a fatal error when
3973 - SF bug 705231: builtin pow() no longer lets the platform C pow()
3974 raise -1.0 to integer powers, because (at least) glibc gets it wrong
3975 in some cases. The result should be -1.0 if the power is odd and 1.0
3979 - SF bug 759227: A new-style class that implements __nonzero__() must
3983 - The encoding attribute has been added for file objects, and set to
3986 - The softspace attribute of file objects became read-only by oversight.
3989 - Reverted a 2.3 beta 1 change to iterators for subclasses of list and
3994 - SF bug 735247: The staticmethod and super types participate in
3996 occur in functions with non-global free variables that used these types.
3999 -----------------
4001 - the socket module has a new exception, socket.timeout, to allow
4004 - SF bug 751276: cPickle has fixed to propagate exceptions raised in
4009 - cPickle Pickler and Unpickler objects now participate in garbage
4012 - mimetools.choose_boundary() could return duplicate strings at times,
4016 - thread.interrupt_main() raises KeyboardInterrupt in the main thread.
4019 - array.array.insert() now treats negative indices as being relative
4022 - The datetime module classes datetime, time, and timedelta are now
4025 - _tkinter.{get|set}busywaitinterval was added.
4027 - itertools.islice() now accepts stop=None as documented.
4030 - the bsddb185 module is built in one restricted instance -
4032 for many BSD-derived systems.
4036 -------
4038 - Some happy doctest extensions from Jim Fulton have been added to
4053 - For compatibility with doctests created before 2.3, if an expected
4056 for "0" and "False". This is quite un-doctest-like, but is practical.
4061 - ZipFile.testzip() now only traps BadZipfile exceptions. Previously,
4065 - The logging module now has a new function, makeLogRecord() making
4068 - The cgitb module has been extended to support plain text display (SF patch
4071 - A brand new version of IDLE (from the IDLEfork project at
4075 - Added a new module: trace (documentation missing). This module used
4077 code execution -- either function calls or individual lines. It can
4078 generate tracing output during execution or a post-mortem report of
4081 - The threading module has new functions settrace() and setprofile()
4087 - copy.py: applied SF patch 707900, fixing bug 702858, by Steven
4088 Taschuk. Copying a new-style class that had a reference to itself
4089 didn't work. (The same thing worked fine for old-style classes.)
4092 - difflib.py has two new functions: context_diff() and unified_diff().
4094 - More fixes to urllib (SF 549151): (a) When redirecting, always use
4095 GET. This is common practice and more-or-less sanctioned by the
4099 - Added optional 'onerror' argument to os.walk(), to control error
4102 - inspect.is{method|data}descriptor was added, to allow pydoc display
4105 - Fixed socket speed loss caused by use of the _socketobject wrapper class
4108 - timeit.py now checks the current directory for imports.
4110 - urllib2.py now knows how to order proxy classes, so the user doesn't
4115 - Iterators have been added for dbm keys.
4117 - random.Random objects can now be pickled.
4120 -----------
4122 - pydoc now offers help on keywords and topics.
4124 - Tools/idle is gone; long live Lib/idlelib.
4126 - diff.py prints file diffs in context, unified, or ndiff formats,
4129 - texcheck.py is a new script for making a rough validation of Python LaTeX
4133 -----
4135 - Setting DESTDIR during 'make install' now allows specifying a
4139 -----
4141 - PyType_Ready(): If a type declares that it participates in gc
4144 a tp_free slot itself, _PyObject_GC_Del is assigned to type->tp_free.
4149 type, its dealloc function must call type->tp_free, and since the type
4152 - PyThreadState_SetAsyncExc(): A new API (deliberately accessible only
4159 -------------
4164 -----
4166 - test_imp rewritten so that it doesn't raise RuntimeError if run as a
4170 -------
4172 - The Windows installer ships with Tcl/Tk 8.4.3 (upgraded from 8.4.1).
4174 - The installer always suggested that Python be installed on the C:
4181 directory you want in the "Select Destination Directory" dialog --
4185 ---
4187 - There's a new module called "autoGIL", which offers a mechanism to
4190 supported on OSX, in the Mach-O version.
4191 - The OSA modules now allow direct access to properties of the
4193 - The Package Manager can now update itself.
4196 ------------------------------------
4228 *Release date: 25-Apr-2003*
4231 -----------------
4233 - New format codes B, H, I, k and K have been implemented for
4236 - New built-in function sum(seq, start=0) returns the sum of all the
4240 - bool() called without arguments now returns False rather than
4242 constructors for the other built-in types -- called without argument
4245 - In support of PEP 269 (making the pgen parser generator accessible
4250 - The repr() of a weakref object now shows the __name__ attribute of
4253 - super() no longer ignores data descriptors, except __class__. See
4255 http://mail.python.org/pipermail/python-dev/2003-April/034338.html
4257 - list.insert(i, x) now interprets negative i as it would be
4262 - range() now works even if the arguments are longs with magnitude
4267 - Some horridly obscure problems were fixed involving interaction
4268 between garbage collection and old-style classes with "ambitious"
4269 getattr hooks. If an old-style instance didn't have a __del__ method,
4275 - dict.pop now takes an optional argument specifying a default
4281 - sys.getfilesystemencoding() was added to expose
4284 - New function sys.exc_clear() clears the current exception. This is
4289 - On 64-bit systems, a dictionary could contain duplicate long/int keys
4292 - Fixed SF bug #663074. The codec system was using global static
4297 - "%c" % u"a" now returns a unicode string instead of raising a
4302 -----------------
4304 - The socket module now provides the functions inet_pton and inet_ntop
4309 - Tkinter wrappers around Tcl variables now pass objects directly
4312 - The .*? pattern in the re module is now special-cased to avoid the
4313 recursion limit. (SF patch #720991 -- many thanks to Gary Herron
4316 - New function sys.call_tracing() allows pdb to debug code
4319 - New function gc.get_referents(obj) returns a list of objects
4324 - The iconv module has been removed from this release.
4326 - The platform-independent routines for packing floats in IEEE formats
4334 - New function time.tzset() provides access to the C library tzset()
4337 - Using createfilehandler, deletefilehandler, createtimerhandler functions
4341 - Modified the fcntl.ioctl() function to allow modification of a passed
4344 - Made user requested changes to the itertools module.
4348 - The rotor module is now deprecated; the encryption algorithm it uses
4352 - The socket module now always uses the _socketobject wrapper class, even on
4358 -------
4360 - New generator function os.walk() is an easy-to-use alternative to
4365 - Added new module "platform" which provides a wide range of tools
4368 - netrc now allows ASCII punctuation characters in passwords.
4370 - shelve now supports the optional writeback argument, and exposes
4373 - Several methods of nntplib.NNTP have grown an optional file argument
4377 - The self-documenting XML server library DocXMLRPCServer was added.
4379 - Support for internationalized domain names has been added through
4384 - htmlentitydefs has two new dictionaries: name2codepoint maps
4388 - pdb has a new command, "debug", which lets you step through
4391 - unittest.failUnlessEqual and its equivalent unittest.assertEqual now
4395 - sgmllib now supports SGML marked sections, in particular the
4398 - The urllib module now offers support for the iterator protocol.
4401 - New module timeit provides a simple framework for timing the
4404 - sets.Set objects now support mixed-type __eq__ and __ne__, instead
4405 of raising TypeError. If x is a Set object and y is a non-Set object,
4407 for mixed-type comparisons of datetime objects in 2.3a2; more info
4411 - On Unix platforms, if os.listdir() is called with a Unicode argument,
4415 - Distutils: both 'py_modules' and 'packages' keywords can now be specified
4419 - New csv package makes it easy to read/write CSV files.
4421 - Module shlex has been extended to allow posix-like shell parsings,
4426 -----------
4428 - New script combinerefs.py helps analyze new PYTHONDUMPREFS output.
4432 -----
4434 - Fix problem building on OSF1 because the compiler only accepted
4438 -----
4440 - Added PyGC_Collect(), equivalent to calling gc.collect().
4442 - PyThreadState_GetDict() was changed not to raise an exception or
4446 - LONG_LONG was renamed to PY_LONG_LONG. Extensions that use this and
4453 - Added PyObject_SelfIter() to fill the tp_iter slot for the
4456 - The extended type structure used for heap types (new-style
4461 -------------
4466 -----
4468 - test_timeout now requires -u network to be passed to regrtest to run.
4472 -------
4474 - os.fsync() now exists on Windows, and calls the Microsoft _commit()
4477 - New function winsound.MessageBeep() wraps the Win32 API
4481 ---
4483 - os.listdir() now returns Unicode strings on MacOS X when called with
4486 - A new method MacOS.WMAvailable() returns true if it is safe to access
4489 - EasyDialogs dialogs are now movable-modal, and if the application is
4493 - OSA Scripting support has improved a lot, and gensuitemodule.py can now
4497 - The IDE (in a framework build) now includes introductory documentation
4504 *Release date: 19-Feb-2003*
4507 -----------------
4509 - Negative positions returned from PEP 293 error callbacks are now
4513 - sys.path[0] (the directory from which the script is loaded) is now
4517 - Finally fixed the bug in compile() and exec where a string ending
4519 This would have been a four-line change in parsetok.c... Except
4525 - If a new-style class defines neither __new__ nor __init__, its
4528 that worked under Python 2.2. The simplest fix is to add a no-op
4531 - Through a bytecode optimizer bug (and I bet you didn't even know
4532 Python *had* a bytecode optimizer :-), "unsigned" hex/oct constants
4537 E.g. 0xffffffff is -1, and -(0xffffffff) is 1, but -0xffffffff would
4538 come out as -4294967295. This was the case in Python 2.2 through
4543 - int(s, base) sometimes sign-folds hex and oct constants; it only
4545 sign is actually folded, as in int("0xffffffff", 0) on a 32-bit
4546 machine, which returns -1, a FutureWarning is now issued; in Python
4550 - super(X, x): x may now be a proxy for an X instance, i.e.
4553 - isinstance(x, X): if X is a new-style class, this is now equivalent
4558 - compile(), eval() and the exec statement now fully support source code
4561 - int subclasses can be initialized with longs if the value fits in an int.
4564 - long(string, base) takes time linear in len(string) when base is a power
4567 - filter returns now Unicode results for Unicode arguments.
4569 - raw_input can now return Unicode objects.
4571 - List objects' sort() method now accepts None as the comparison function.
4575 - Fixed crash when printing a subclass of str and __str__ returned self.
4578 - Fixed an invalid RuntimeWarning and an undetected error when trying
4582 - Function objects now have a __module__ attribute that is bound to
4588 at the top-level of a module (examples: methods, nested functions).
4592 -----------------
4594 - operator.isNumberType() now checks that the object has a nb_int or
4595 nb_float slot, rather than simply checking whether it has a non-NULL
4598 - The imp module now has ways to acquire and release the "import
4604 - Change to cPickle to match pickle.py (see below and PEP 307).
4606 - Fix some bugs in the parser module. SF bug #678518.
4608 - Thanks to Scott David Daniels, a subtle bug in how the zlib
4613 - Added an itertools module containing high speed, memory efficient
4616 - The SSL module now handles sockets with a timeout set correctly (SF
4619 - os/posixmodule has grown the sysexits.h constants (EX_OK and friends).
4621 - Fixed broken threadstate swap in readline that could cause fatal
4625 - fcntl now exposes the strops.h I_* constants.
4627 - Fix a crash on Solaris that occurred when calling close() on
4630 - Fixed several serious bugs in the zipimport implementation.
4632 - datetime changes:
4680 be suitable as-is for "almost all" time zone subclasses, but the
4681 creativity of political time zone fiddling appears unbounded -- fromutc()
4702 falling back to the default compare-object-addresses strategy, these
4710 for mixed-type comparisons in the last paragraph doesn't apply, if
4722 sequence is heterogeneous, or the dict has mixed-type keys. [This
4723 seems like a good idea to implement for all mixed-type comparisons
4738 -------
4740 - The logging module was updated slightly; the WARN level was renamed
4743 - The pickle and cPickle modules were updated with a new pickling
4750 - The distutils "register" command now uses http://www.python.org/pypi
4753 - the platform dependent path related variables sep, altsep, extsep,
4760 - array.array was added to the types repr.py knows about (see
4763 - The new pickletools.py contains lots of documentation about pickle
4767 - xmlrpclib.py now supports the built-in boolean type.
4769 - py_compile has a new 'doraise' flag and a new PyCompileError
4772 - SimpleXMLRPCServer now supports CGI through the CGIXMLRPCRequestHandler
4775 - The sets module now raises TypeError in __cmp__, to clarify that
4776 sets are not intended to be three-way-compared; the comparison
4779 - Bastion.py and rexec.py are disabled. These modules are not safe in
4782 - realpath is now exported when doing ``from poxixpath import *``.
4786 - New module tarfile from Lars Gustäbel provides a comprehensive interface
4790 - urlparse can now parse imap:// URLs. See SF feature request #618024.
4792 - Tkinter.Canvas.scan_dragto() provides an optional parameter to support
4795 - Fix logging.handlers.SysLogHandler protocol when using UNIX domain sockets.
4798 - The dospath module was deleted. Use the ntpath module when manipulating
4802 -----------
4804 - Two new scripts (db2pickle.py and pickle2db.py) were added to the
4806 to the new one. While the user-visible API of the new module is
4814 % python2.2 db2pickle.py -h some.db > some.pickle
4815 % python2.3 pickle2db.py -h some.db.new < some.pickle
4821 -----
4823 - The audio driver tests (test_ossaudiodev.py and
4828 ./python Lib/test/regrtest.py -u audio test_ossaudiodev
4830 - On systems which build using the configure script, compiler flags which
4832 groups, OPT and BASECFLAGS. OPT is meant to carry just optimization- and
4833 debug-related flags like "-g" and "-O3". BASECFLAGS is meant to carry
4840 - On Darwin/Mac OS X platforms, /sw/lib and /sw/include are added to the
4845 - A new Makefile target, scriptsinstall, installs a number of useful scripts
4849 -----
4851 - PyEval_GetFrame() is now declared to return a ``PyFrameObject *``
4854 - PyNumber_Check() now checks that the object has a nb_int or nb_float
4855 slot, rather than simply checking whether it has a non-NULL
4858 - A C type that inherits from a base type that defines tp_as_buffer
4862 - The PyArg_Parse functions now issue a DeprecationWarning if a float
4868 -----
4870 - Several tests weren't being run from regrtest.py (test_timeout.py,
4877 - Added test_posix.py, a test suite for the posix module.
4879 - Added test_hexoct.py, a test suite for hex/oct constant folding.
4882 -------
4884 - The timeout code for socket connect() didn't work right; this has
4888 - distutils' msvccompiler class now passes the preprocessor options to
4891 - The bsddb module now ships with Sleepycat's 4.1.25.NC, the latest
4894 - sys.path[0], if it contains a directory name, is now always an
4897 - The new logging package is now installed by the Windows installer. It
4901 ---
4903 - There are new dialogs EasyDialogs.AskFileForOpen, AskFileForSave
4906 - Most of the standard library now uses pathnames or FSRefs in preference
4910 - Type Carbon.File.FSCatalogInfo and supporting methods have been implemented.
4913 - There is a new module pimp, the package install manager for Python, and
4916 form. Only in MacPython-OSX.
4918 - Applets are now built with bundlebuilder in MacPython-OSX, which should make
4927 *Release date: 31-Dec-2002*
4929 Type/class unification and new-style classes
4930 --------------------------------------------
4932 - One can now assign to __bases__ and __name__ of new-style classes.
4934 - dict() now accepts keyword arguments so that dict(one=1, two=2)
4940 - int() now returns a long object if the argument is outside the
4944 - Assignment to __class__ is disallowed if either the old or the new
4948 - New-style object creation and deallocation have been sped up
4952 - The __slots__ variable can now mention "private" names, and the
4955 - The built-ins slice() and buffer() are now callable types. The
4957 instancemethod (formerly instance-method), which have no built-in
4959 callable. The type dict-proxy is renamed to dictproxy.
4961 - Cycles going through the __class__ link of a new-style instance are
4964 - Classes using __slots__ are now properly garbage collected.
4967 - Tightened the __slots__ rules: a slot name must be a valid Python
4970 - The constructor for the module type now requires a name argument and
4977 - A new type object, 'basestring', is added. This is a common base type
4980 isinstance(x, basestring) is True for Unicode and 8-bit strings. This
4983 - Changed new-style class instantiation so that when C's __new__
4987 - Fixed super() to work correctly with class methods. [SF bug #535444]
4989 - If you try to pickle an instance of a class that has __slots__ but
4996 -----------------
4998 - Import from zipfiles is now supported. The name of a zipfile placed
5006 - PEP 302 has been accepted. Although it was initially developed to
5011 overriding the __import__ built-in function. For a description of
5014 - A frame object's f_lineno attribute can now be written to from a
5018 - The _codecs support module for codecs.py was turned into a built-in
5019 module to assure that at least the built-in codecs are available
5022 - issubclass now supports a tuple as the second argument, just like
5026 - Thanks to Armin Rigo, the last known way to provoke a system crash
5036 - Unicode file name processing for Windows (PEP 277) is implemented.
5040 - Codec error handling callbacks (PEP 293) are implemented.
5043 - A subtle change to the semantics of the built-in function intern():
5047 - Use of 'None' as a variable, argument or attribute name now
5050 - SET_LINENO is gone. co_lnotab is now consulted to determine when to
5055 - There's a new warning category, FutureWarning. This is used to warn
5061 - Octal and hex literals without 'L' prefix in the inclusive range
5066 - Left shifts on integer values that cause the outcome to lose
5071 - Conversions from ints to string that show negative values as
5075 show signed values (e.g. hex(-1) currently returns "0xffffffff";
5076 in Python 2.4 it will return "-0x1").
5078 - The bits manipulated under the cover by sys.setcheckinterval() have
5080 per-thread values. They are now just a pair of global variables.
5083 relied on the old default value. In particular, in multi-threaded
5087 - When multiplying very large integers, a version of the so-called
5098 devoted to fast large-integer arithmetic should run circles around it.
5100 - u'%c' will now raise a ValueError in case the argument is an
5103 - The tempfile module has been overhauled for enhanced security. The
5106 higher-level functions NamedTemporaryFile() and TemporaryFile().
5113 - When x is an object whose class implements __mul__ and __rmul__,
5115 invoke __mul__. This was due to the sequence-repeat code in the int
5118 - Previously, "str1 in str2" required str1 to be a string of length 1.
5122 - File objects are now their own iterators. For a file f, iter(f) now
5132 - Encoding declarations (PEP 263, phase 1) have been implemented. A
5133 comment of the form "# -*- coding: <encodingname> -*-" in the first
5136 - list.sort() has a new implementation. While cross-platform results
5137 may vary, and in data-dependent ways, this is much faster on many
5144 len(list)*2 bytes (``*4`` on a 64-bit machine). It's therefore possible
5148 - All standard iterators now ensure that, once StopIteration has been
5156 - Ctrl+C handling on Windows has been made more consistent with
5165 - sys.getwindowsversion() has been added on Windows. This
5169 - Slices and repetitions of buffer objects now consistently return
5174 - Unicode objects in sys.path are no longer ignored but treated
5177 - Fixed string.startswith and string.endswith built-in methods
5180 - Fixed a bug with a continue inside a try block and a yield in the
5183 - Most built-in sequences now support "extended slices", i.e. slices
5184 with a third "stride" parameter. For example, "hello world"[::-1]
5187 - A new warning PendingDeprecationWarning was added to provide
5190 deprecations, use -Walways::PendingDeprecationWarning::
5193 - Deprecated features of xrange objects have been removed as
5198 - New built-in function enumerate(x), from PEP 279. Example:
5202 - The assert statement no longer tests __debug__ at runtime. This means
5206 - A method zfill() was added to str and unicode, that fills a numeric
5208 "+123".zfill(6) -> "+00123".
5210 - Complex numbers supported divmod() and the // and % operators, but
5214 - String and unicode methods lstrip(), rstrip() and strip() now take
5216 example, "Foo!!!?!?!?".rstrip("?!") -> "Foo".
5218 - There's a new dictionary constructor (a class method of the dict
5224 - Added a new dict method pop(key). This removes and returns the
5227 - A new built-in type, bool, has been added, as well as built-in
5233 - Fixed two bugs reported as SF #535905: under certain conditions,
5239 - The optional object allocator ("pymalloc") has been enabled by
5246 - PyErr_Display will provide file and line information for all exceptions
5249 - The UTF-8 codec will now encode and decode Unicode surrogates
5252 - Universal newlines (PEP 278) is implemented. Briefly, using 'U'
5258 - file.xreadlines() now raises a ValueError if the file is closed:
5262 - sys.exit() inadvertently allowed more than one argument.
5265 - Changed evaluation order of dictionary literals to conform to the
5269 - Fixed bug #521782: when a file was in non-blocking mode, file.read()
5272 - The sq_repeat, sq_inplace_repeat, sq_concat and sq_inplace_concat
5276 - Fix problem with dynamic loading on 64-bit AIX (see bug #639945).
5279 -----------------
5281 - Added three operators to the operator module:
5286 - posix.openpty now works on all systems that have /dev/ptmx.
5288 - A module zipimport exists to support importing code from zip
5291 - The new datetime module supplies classes for manipulating dates and
5297 - _tkinter now returns Tcl objects, instead of strings. Objects which
5302 - The PyBSDDB wrapper around the Sleepycat Berkeley DB library has
5311 - unicodedata was updated to Unicode 3.2. It supports normalization
5314 - resource.getrlimit() now returns longs instead of ints.
5316 - readline now dynamically adjusts its input/output stream if
5319 - The _tkinter module (and hence Tkinter) has dropped support for
5323 - cPickle.BadPickleGet is now a class.
5325 - The time stamps in os.stat_result are floating point numbers
5328 - If the size passed to mmap.mmap() is larger than the length of the
5329 file on non-Windows platforms, a ValueError is raised. [SF bug 585792]
5331 - The xreadlines module is slated for obsolescence.
5333 - The strptime function in the time module is now always available (a
5336 - The 'new' module is no longer an extension, but a Python module that
5340 - The bsddb.*open functions can now take 'None' as a filename.
5341 This will create a temporary in-memory bsddb that won't be
5344 - posix.getloadavg, posix.lchown, posix.killpg, posix.mknod, and
5347 - The locale module now exposes the C library's gettext interface. It
5350 - A security hole ("double free") was found in zlib-1.1.3, a popular
5352 hole was quickly plugged in zlib-1.1.4, and the Windows build of
5353 Python now ships with zlib-1.1.4.
5355 - pwd, grp, and resource return enhanced tuples now, with symbolic
5358 - array.array is now a type object. A new format character
5363 - dl now builds on every system that has dlfcn.h. Failure in case
5367 - The sys module acquired a new attribute, api_version, which evaluates
5371 - Fixed bug #470582: sre module would return a tuple (None, 'a', 'ab')
5378 - Fixed bug #581080: sre scanner was not checking the buffer limit
5383 - The os.fdopen function now enforces a file mode starting with the
5387 - The linuxaudiodev module is now deprecated; it is being replaced by
5393 -------
5395 - imaplib.py now supports SSL (Tino Lange and Piers Lauder).
5397 - Freeze's modulefinder.py has been moved to the standard library;
5402 - os.path exposes getctime.
5404 - unittest.py now has two additional methods called assertAlmostEqual()
5410 - calendar.py now depends on the new datetime module rather than
5414 - pdb has a new 'j(ump)' command to select the next line to be
5417 - The distutils created windows installers now can run a
5420 - doctest.testmod can now be called without argument, which means to
5423 - When canceling a server that implemented threading with a keyboard
5429 - A new module, optparse, provides a fancy alternative to getopt for
5433 - UserDict.py now defines a DictMixin class which defines all dictionary
5438 - shelve.py now subclasses from UserDict.DictMixin. Now shelve supports
5442 - shelve.open and the various classes in shelve.py now accept an optional
5446 - A new package, logging, implements the logging API defined by PEP
5449 - StreamReader, StreamReaderWriter and StreamRecoder in the codecs
5452 - gzip.py now handles files exceeding 2GB. Files over 4GB also work
5455 record only the least-significant 32 bits of the file size, so that
5459 - xml.sax.saxutils.unescape has been added, to replace entity references
5462 - Queue.Queue.{put,get} now support an optional timeout argument.
5464 - Various features of Tk 8.4 are exposed in Tkinter.py. The multiple
5467 - Various configure methods of Tkinter have been stream-lined, so that
5471 - Importing the readline module now no longer has the side effect of
5474 want repr() of 8-bit strings in your preferred encoding to preserve
5482 - shutil.move was added. shutil.copytree now reports errors as an
5485 - Encoding name normalization was generalized to not only
5486 replace hyphens with underscores, but also all other non-alphanumeric
5491 - mimetypes has two new functions: guess_all_extensions() which
5496 - New module: sets, defines the class Set that implements a mutable
5502 - Added random.sample(population,k) for random sampling without replacement.
5505 - random.randrange(-sys.maxint-1, sys.maxint) no longer raises
5510 - Thanks to Raymond Hettinger, random.random() now uses a new core
5513 large period (2**19937-1), creates random floats to full 53-bit
5520 continues to support multi-threaded code needing generators of
5521 non-overlapping sequences. However, it will break code which relies
5529 - New "algorithms" module: heapq, implements a heap queue. Thanks to
5531 write-up explaining the theory and practical uses of heaps.
5533 - New encoding for the Palm OS character set: palmos.
5535 - binascii.crc32() and the zipfile module had problems on some 64-bit
5536 platforms. These have been fixed. On a platform with 8-byte C longs,
5537 crc32() now returns a signed-extended 4-byte result, so that its value
5538 as a Python int is equal to the value computed a 32-bit platform.
5540 - xml.dom.minidom.toxml and toprettyxml now take an optional encoding
5543 - Some fixes in the copy module: when an object is copied through its
5549 - Sockets now support timeout mode. After s.settimeout(T), where T is
5556 - getopt.gnu_getopt was added. This supports GNU-style option
5557 processing, where options can be mixed with non-option arguments.
5559 - Stop using strings for exceptions. String objects used for
5564 - Constants BOM_UTF8, BOM_UTF16, BOM_UTF16_LE, BOM_UTF16_BE,
5566 Order Mark in UTF-8, UTF-16 and UTF-32 encodings for little and
5570 - Added conversion functions math.degrees() and math.radians().
5572 - math.log() now takes an optional argument: math.log(x[, base]).
5574 - ftplib.retrlines() now tests for callback is None rather than testing
5581 - random.gauss() uses a piece of hidden state used by nothing else,
5588 - The pickle.Pickler class grew a clear_memo() method to mimic that
5591 - difflib's SequenceMatcher class now does a dynamic analysis of
5600 - New Text.dump() method in Tkinter module.
5602 - New distutils commands for building packagers were added to
5603 support pkgtool on Solaris and swinstall on HP-UX.
5605 - distutils now has a new abstract binary packager base class
5611 - The UTF-16, -LE and -BE stream readers now raise a
5613 used to just produce garbage or fail with an encoding error --
5614 UTF-16 is a 2-byte encoding and the C lib's line reading APIs don't
5617 - compileall now supports quiet operation.
5619 - The BaseHTTPServer now implements optional HTTP/1.1 persistent
5622 - socket module: the SSL support was broken out of the main
5626 - encodings package: added aliases for all supported IANA character
5629 - ftplib: to safeguard the user's privacy, anonymous login will use
5633 - webbrowser: tightened up the command passed to os.system() so that
5637 - gettext.translation has an optional fallback argument, and
5639 on a per-message basis. The module supports plural forms, by means
5642 - distutils bdist commands now offer a --skip-build option.
5644 - warnings.warn now accepts a Warning instance as first argument.
5646 - The xml.sax.expatreader.ExpatParser class will no longer create
5650 - The email.Parser.Parser class now properly parses strings regardless
5656 - distutils' build_ext command now links C++ extensions with the C++
5660 - New module bz2: provides a comprehensive interface for the bz2 compression
5661 library. It implements a complete file interface, one-shot (de)compression
5664 - New pdb command 'pp' which is like 'p' except that it pretty-prints
5667 - Now bdist_rpm distutils command understands a verify_script option in
5671 - Fixed bug #495695: webbrowser module would run graphic browsers in a
5675 - Fixed bug #636769: rexec would run unallowed code if subclasses of
5679 -----------
5681 - pygettext.py now supports globbing on Windows, and accepts module
5684 - The SGI demos (Demo/sgi) have been removed. Nobody thought they
5689 - IDLE supports the new encoding declarations (PEP 263); it can also
5690 deal with legacy 8-bit files if they use the locale's encoding. It
5691 allows non-ASCII strings in the interactive shell and executes them
5694 - freeze.py now produces binaries which can import shared modules,
5699 -----
5701 - On Unix, IDLE is now installed automatically.
5703 - The fpectl module is not built by default; it's dangerous or useless
5706 - The public Python C API will generally be declared using PyAPI_FUNC
5711 - A bug was fixed that could cause COUNT_ALLOCS builds to segfault, or
5712 get into infinite loops, when a new-style class got garbage-collected.
5714 that new-style classes be immortal in COUNT_ALLOCS builds. Note that
5716 builds, and that new-style classes are immortal only in COUNT_ALLOCS
5719 - Compiling out the cyclic garbage collector is no longer an option.
5728 - According to Annex F of the current C standard,
5742 http://www.cray.com/swpubs/manuals/SN-2194_2.0/html-SN-2194_2.0/x3138.htm
5746 - The configure option --without-doc-strings can be used to remove the
5747 doc strings from the built-in functions and modules; this reduces the
5750 - The universal newlines option (PEP 278) is on by default. On Unix
5751 it can be disabled by passing --without-universal-newlines to the
5755 - On Unix, a shared libpython2.3.so can be created with --enable-shared.
5757 - All uses of the CACHE_HASH, INTERN_STRINGS, and DONT_SHARE_SHORT_STRINGS
5761 - The tools used to build the documentation now work under Cygwin as
5764 - The bsddb and dbm module builds have been changed to try and avoid version
5770 -----
5772 - PyNumber_Check() now returns true for string and unicode objects.
5778 - The string object's layout has changed: the pointer member
5780 platforms (e.g. most 64-bit systems) this may change the offset of
5791 - The Py_InitModule*() functions now accept NULL for the 'methods'
5795 - New C API PyUnicode_FromOrdinal() which exposes unichr() at C
5798 - New functions PyErr_SetExcFromWindowsErr() and
5804 - Py_FatalError() is now declared as taking a const char* argument. It
5808 - Added new macro PySequence_ITEM(o, i) that directly calls
5812 - PyRange_New() now raises ValueError if the fourth argument is not 1.
5816 - PyNumber_Coerce() and PyNumber_CoerceEx() now also invoke the type's
5820 - The type of tp_free has been changed from "``void (*)(PyObject *)``" to
5823 - PyObject_Del, PyObject_GC_Del are now functions instead of macros.
5825 - A type can now inherit its metatype from its base type. Previously,
5827 was always set to &PyType_Type; now it is set to base->ob_type,
5830 - PyType_Ready() accidentally did not inherit tp_is_gc; now it does.
5832 - The PyCore_* family of APIs have been removed.
5834 - The "u#" parser marker will now pass through Unicode objects as-is
5837 - The enumerators of cmp_op have been renamed to use the prefix ``PyCmp_``.
5839 - An old #define of ANY as void has been removed from pyport.h. This
5840 hasn't been used since Python's pre-ANSI days, and the #define has
5844 - Because Python's magic number scheme broke on January 1st, we decided
5847 - Some of us don't like fish, so we changed Python's magic number
5851 -------------
5853 - OpenVMS is now supported.
5855 - AtheOS is now supported.
5857 - the EMX runtime environment on OS/2 is now supported.
5859 - GNU/Hurd is now supported.
5862 -----
5864 - The regrtest.py script's -u option now provides a way to say "allow
5866 except bsddb, give the option '-uall,-bsddb'.
5869 -------
5871 - The Windows distribution now ships with version 4.0.14 of the
5881 - The Windows distribution now ships with a Secure Sockets Library (SLL)
5884 - The Windows distribution now ships with Tcl/Tk version 8.4.1 (it
5887 - When Python is built under a Microsoft compiler, sys.version now
5892 - Sometimes the uninstall executable (UNWISE.EXE) vanishes. One cause
5893 of that has been fixed in the installer (disabled Wise's "delete in-
5896 - Fixed a bug in urllib's proxy handling in Windows. [SF bug #503031]
5898 - The installer now installs Start menu shortcuts under (the local
5901 - file.truncate([newsize]) now works on Windows for all newsize values.
5905 - os.waitpid() is now implemented for Windows, and can be used to block
5914 - New tempfile.TemporaryFile implementation for Windows: this doesn't
5922 doing f.close() in P first closed P's C-level file handle on f, but Q's
5923 C-level file handle on f remained open, so the attempt in P to delete f
5928 - The os module now exports all the symbolic constants usable with the
5929 low-level os.open() on Windows: the new constants in 2.3 are
5938 ----
5940 - Mac/Relnotes is gone, the release notes are now here.
5942 - Python (the OSX-only, unix-based version, not the OS9-compatible CFM
5946 - The current naming convention for Python on the Macintosh is that MacPython
5947 refers to the unix-based OSX-only version, and MacPython-OS9 refers to the
5948 CFM-based version that runs on both OS9 and OSX.
5950 - All MacPython-OS9 functionality is now available in an OSX unix build,
5959 - Most of Mac/Lib has moved to Lib/plat-mac, which is again used both in
5960 MacPython-OSX and MacPython-OS9. The only modules remaining in Mac/Lib
5961 are specifically for MacPython-OS9 (CFM support, preference resources, etc).
5963 - A new utility PythonLauncher will start a Python interpreter when a .py or
5964 .pyw script is double-clicked in the Finder. By default .py scripts are
5966 files are run with a window-aware pythonw interpreter without a Terminal
5969 - MacPython-OS9 is now Carbon-only, so it runs on Mac OS 9 or Mac OS X and
5973 - Many tools such as BuildApplet.py and gensuitemodule.py now support a command
5976 - All the Carbon classes are now PEP253 compliant, meaning that you can
5982 - New Carbon modules File (implementing the APIs in Files.h and Aliases.h)
5983 and Folder (APIs from Folders.h). The old macfs built-in module is
5986 - Pathname handling should now be fully consistent: MacPython-OSX always uses
5987 unix pathnames and MacPython-OS9 always uses colon-separated Mac pathnames
5990 - New Carbon modules Help and AH give access to the Carbon Help Manager.
5996 - OSA support has been redesigned and the generated Python classes now
5999 - MacPython no longer maps both \r and \n to \n on input for any text file.
6002 - The default encoding for Python sourcefiles in MacPython-OS9 is no longer
6003 mac-roman (or whatever your local Mac encoding was) but "ascii", like on
6011 *Release date: 21-Dec-2001*
6013 Type/class unification and new-style classes
6014 --------------------------------------------
6016 - pickle.py, cPickle: allow pickling instances of new-style classes
6020 -----------------
6022 - weakref proxy object: when comparing, unwrap both arguments if both
6026 -----------------
6028 - binascii.b2a_base64(): fix a potential buffer overrun when encoding
6031 - cPickle: the obscure "fast" mode was suspected of causing stack
6038 -------
6040 - dumbdbm.py: fixed a dumb old bug (the file didn't get synched at
6043 - rfc822.py: fixed a bug where the address '<>' was converted to None
6046 - xmlrpclib.py: version 1.0.0; uses precision for doubles.
6048 - test suite: the pickle and cPickle tests were not executing any code
6052 -----------
6055 -----
6058 -----
6061 -------------
6064 -----
6067 -------
6069 - distutils package: fixed broken Windows installers (bdist_wininst).
6071 - tempfile.py: prevent mysterious warnings when TemporaryFileWrapper
6074 - socket.py: prevent mysterious warnings when socket instances are
6077 - posixmodule.c: fix a Windows crash with stat() of a filename ending
6081 ----
6083 - The Carbon toolbox modules have been upgraded to Universal Headers
6085 been added. All only for framework-enabled MacOSX.
6091 *Release date: 14-Dec-2001*
6093 Type/class unification and new-style classes
6094 --------------------------------------------
6096 - Guido's tutorial introduction to the new type/class features has
6103 - Fixed a leak: instance variables declared with __slots__ were never
6106 - The "delete attribute" method of descriptor objects is called
6112 - Some subtle issues with the super built-in were fixed:
6126 - Previously, hash() of an instance of a subclass of a mutable type
6132 - New-style objects now support deleting their __dict__. This is for
6137 -----------------
6139 - -Qnew now works as documented in PEP 238: when -Qnew is passed on
6142 means all instances in library and 3rd-party modules, as well as in
6143 your own code. As the PEP says, -Qnew is intended for use only in
6146 under -Qnew; this is expected, and won't be repaired until true
6150 - complex() now only allows the first argument to be a string
6155 -----------------
6157 - gc.get_referents was renamed to gc.get_referrers.
6160 -------
6162 - Functions in the os.spawn() family now release the global interpreter
6169 - webbrowser defaults to netscape.exe on OS/2 now.
6171 - Tix.ResizeHandle exposes detach_widget, hide, and show.
6173 - The charset alias windows_1252 has been added.
6175 - types.StringTypes is a tuple containing the defined string types;
6179 - The pulldom and minidom modules were synchronized to PyXML.
6182 -----------
6184 - A new script called Tools/scripts/google.py was added, which fires
6188 -----
6190 - Note that release builds of Python should arrange to define the
6192 In the 2.2 pre-release series we tried to define this by magic in
6198 - It is no longer necessary to use --with-suffix when building on a
6199 case-insensitive file system (such as Mac OS X HFS+). In the build
6203 -----
6205 - New function PyDict_MergeFromSeq2() exposes the built-in dict
6207 producing key-value pairs.
6209 - PyArg_ParseTupleAndKeywords() requires that the number of entries in
6217 -------------
6220 -----
6223 -------
6226 ----
6228 - In unix-Python on Mac OS X (and darwin) sys.platform is now "darwin",
6231 - Changed logic for finding python home in Mac OS X framework Pythons.
6240 *Release date: 16-Nov-2001*
6242 Type/class unification and new-style classes
6243 --------------------------------------------
6245 - Multiple inheritance mixing new-style and classic classes in the
6253 using new-style MRO rules if any base class is a new-style class.
6256 - The new built-in dictionary() constructor, and dictionary type, have
6259 - dict() now accepts an iterable object producing 2-sequences. For
6263 - New-style classes can now have a __del__ method, which is called
6266 - Assignment to object.__dict__ is now possible, for objects that are
6267 instances of new-style classes that have a __dict__ (unless the base
6270 - Methods of built-in types now properly check for keyword arguments
6271 (formerly these were silently ignored). The only built-in methods
6274 - The socket function has been converted to a type; see below.
6277 -----------------
6279 - Assignment to __debug__ raises SyntaxError at compile-time. This
6283 - Clarified the error messages for unsupported operands to an operator
6287 -----------------
6289 - mmap has a new keyword argument, "access", allowing a uniform way for
6290 both Windows and Unix users to create read-only, write-through and
6291 copy-on-write memory mappings. This was previously possible only on
6296 - By default, the gc.garbage list now contains only those instances in
6299 to include instances of both new-style and old-style classes.
6301 - The socket module defines a new method for socket objects,
6307 - Various bugfixes to the curses module. There is now a test suite
6310 - binascii.b2a_base64 no longer places an arbitrary restriction of 57
6314 -------
6316 - tkFileDialog exposes a Directory class and askdirectory
6319 - Symbolic group names in regular expressions must be unique. For
6329 - Tix exposes more commands through the classes DirSelectBox,
6334 - Traceback objects are now scanned by cyclic garbage collection, so
6338 - os.extsep -- a new variable needed by the RISCOS support. It is the
6343 - mimetypes.py has optional support for non-standard, but commonly
6346 recognize non-standard types or not. A few non-standard types we
6348 new -l and -e options.
6350 - statcache is now deprecated.
6352 - email.Utils.formatdate() now produces the preferred RFC 2822 style
6358 - In pickle and cPickle, instead of masking errors in load() by
6364 -----------
6367 -----
6369 - The dbm module is built using libdb1 if available. The bsddb module
6372 - Misc/Makefile.pre.in has been removed by BDFL pronouncement.
6375 -----
6377 - New function PySequence_Fast_GET_SIZE() returns the size of a non-
6381 - New argument unpacking function PyArg_UnpackTuple() added.
6383 - New functions PyObject_CallFunctionObjArgs() and
6387 - PyArg_ParseTupleAndKeywords() no longer masks errors, so it's
6390 - New function PyObject_CheckReadBuffer(), which returns true if its
6391 argument supports the single-segment readable buffer interface.
6394 -------------
6396 - We've finally confirmed that this release builds on HP-UX 11.00,
6399 - Thanks to a series of patches from Michael Muller, Python may build
6402 - Updated RISCOS port by Dietmar Schwertberger.
6405 -----
6407 - Added a test script for the curses module. It isn't run automatically;
6408 regrtest.py must be run with '-u curses' to enable it.
6411 -------
6414 ----
6416 - PythonScript has been moved to unsupported and is slated to be
6419 - It should now be possible to build applets that work on both OS9 and
6422 - The core is now linked with CoreServices not Carbon; as a side
6425 - Python should now build on OSX 10.1.1
6431 *Release date: 19-Oct-2001*
6433 Type/class unification and new-style classes
6434 --------------------------------------------
6436 - New-style classes are now always dynamic (except for built-in and
6439 remains: the __dict__ of a new-style class is a read-only proxy; you
6441 __defined__ attribute of new-style types no longer exists, for lack
6446 - C.__doc__ now works as expected for new-style classes (in 2.2a4 it
6449 - doctest now finds and runs docstrings attached to new-style classes,
6453 -----------------
6455 - A very subtle syntactical pitfall in list comprehensions was fixed.
6464 - getattr(obj, name, default) now only catches AttributeError, as
6469 - Weak reference objects are now part of the core and offer a C API.
6472 built-in exception.
6474 - unicode(obj) now behaves more like str(obj), accepting arbitrary
6477 require an 8-bit string or character buffer argument.
6479 - isinstance() now allows any object as the first argument and a
6491 -----------------
6493 - thread.start_new_thread() now returns the thread ID (previously None).
6495 - binascii has now two quopri support functions, a2b_qp and b2a_qp.
6497 - readline now supports setting the startup_hook and the
6500 - os and posix supports chroot(), setgroups() and unsetenv() where
6502 now return "pseudo-sequences" -- the various fields can now be
6504 backwards compatibility they also behave as a fixed-length sequence.
6505 Some platform-specific fields (e.g. st_rdev) are only accessible as
6508 - time: localtime(), gmtime() and strptime() now return a
6509 pseudo-sequence similar to the os.stat() return value, with
6512 - Decompression objects in the zlib module now accept an optional
6516 - optional SSL support in the socket module now exports OpenSSL
6522 - posixmodule (and by extension, the os module on POSIX platforms) now
6526 -------
6528 - doctest now excludes functions and classes not defined by the module
6531 - HotShot, a new profiler implemented using a C-based callback, has
6536 - profile now produces correct output in situations where an exception
6550 - Profile.calibrate() has a new implementation that should deliver
6551 a much better system-specific calibration constant. The constant can
6563 - quopri's encode and decode methods take an optional header parameter,
6567 - The SocketServer.ThreadingMixIn class now closes the request after
6570 - The nntplib module's NNTP.body() method has grown a 'file' argument
6573 - The email package has added a class email.Parser.HeaderParser which
6578 - ftplib should be able to handle files > 2GB.
6580 - ConfigParser.getboolean() now also interprets TRUE, FALSE, YES, NO,
6583 - xml.dom.minidom NodeList objects now support the length attribute
6587 -----------
6589 - Demo/dns was removed. It no longer serves any purpose; a package
6593 - The freeze tool has been made more robust, and two new options have
6594 been added: -X and -E.
6597 -----
6599 - configure will use CXX in LINKCC if CXX is used to build main() and
6603 -----
6605 - The documentation for the tp_compare slot is updated to require that
6606 the return value must be -1, 0, 1; an arbitrary number <0 or >0 is
6608 Python 2.3; even later, we may use -2 to indicate errors and +2 for
6609 "NotImplemented". Right now, -1 should be used for an error return.
6611 - PyLong_AsLongLong() now accepts int (as well as long) arguments.
6615 - PyThread_start_new_thread() now returns a long int giving the thread
6616 ID, if one can be calculated; it returns -1 for error, 0 if no
6622 - PyUnicode_FromEncodedObject() no longer accepts Unicode objects as
6626 -------------
6629 -----
6632 -------
6634 - Installer: If you install IDLE, and don't disable file-extension
6635 registration, a new "Edit with IDLE" context (right-click) menu entry
6638 - The signal module now supports SIGBREAK on Windows, thanks to Steven
6654 # program without the possibility for any Python-level cleanup).
6661 *Release date: 28-Sep-2001*
6663 Type/class unification and new-style classes
6664 --------------------------------------------
6666 - pydoc and inspect are now aware of new-style classes;
6670 - Applications using Jim Fulton's ExtensionClass module can now safely
6678 - property() now takes 4 keyword arguments: fget, fset, fdel and doc.
6679 These map to read-only attributes 'fget', 'fset', 'fdel', and '__doc__'
6684 - Comparison overloading is now more completely implemented. For
6687 other built-in object types.
6689 - The repr() of new-style classes has changed; instead of <type
6690 'M.Foo'> a new-style class is now rendered as <class 'M.Foo'>,
6691 *except* for built-in types, which are still rendered as <type
6695 - The repr() of new-style objects is now always <Foo object at XXX>;
6698 - For new-style classes, what was previously called __getattr__ is now
6703 access, you can use __getattribute__ (for new-style classes). If
6707 - The __class__ attribute of new-style objects can be assigned to.
6708 The new class must have the same C-level object layout as the old
6711 - The built-in file type can be subclassed now. In the usual pattern,
6712 "file" is the name of the built-in type, and file() is a new built-in
6713 constructor, with the same signature as the built-in open() function.
6716 - Previously, __new__ would only see sequential arguments passed to
6721 - Previously, hash() applied to an instance of a subclass of str or
6724 - Previously, an operation on an instance of a subclass of an
6727 operation was handled by the built-in type), could return that
6729 a str subclass type, s[:] returned s as-is. Now it returns a str
6732 - Provisional support for pickling new-style objects has been added.
6735 ----
6737 - file.writelines() now accepts any iterable object producing strings.
6739 - PyUnicode_FromEncodedObject() now works very much like
6742 makes unicode() behave like str() when applied to non-string/buffer
6745 - PyFile_WriteObject now passes Unicode objects to the file's write
6746 method. As a result, all file-like objects which may be the target
6750 - Thread scheduling on Solaris should be improved; it is no longer
6755 -------
6757 - StringIO.StringIO instances and cStringIO.StringIO instances support
6762 - The "email" package has been added. This is basically a port of the
6766 - difflib.ndiff() and difflib.Differ.compare() are generators now. This
6770 - StringIO.StringIO instances and cStringIO.StringIO instances support
6774 - The codecs module has grown four new helper APIs to access
6775 built-in codecs: getencoder(), getdecoder(), getreader(),
6778 - SimpleXMLRPCServer: a new module (based upon SimpleHTMLServer)
6781 - os.path.realpath(): a new function that returns the absolute pathname
6782 after interpretation of symbolic links. On non-Unix systems, this
6785 - operator.indexOf() (PySequence_Index() in the C API) now works with any
6788 - smtplib now supports various authentication and security features of
6791 - hmac: a new module implementing keyed hashing for message
6794 - mimetypes now recognizes more extensions and file types. At the
6797 - The "compiler" package has been brought up to date to the state of
6803 -----
6805 - Large file support (LFS) is now automatic when the platform supports
6813 - The configure script now supplies plausible defaults in a
6814 cross-compilation environment. This doesn't mean that the supplied
6815 values are always correct, or that cross-compilation now works
6816 flawlessly -- but it's a first step (and it shuts up most of
6819 - The Unix build is now a bit less chatty, courtesy of the parser
6821 using "make -s", thanks to a -q option to setup.py.
6824 -----
6826 - The "structmember" API now supports some new flag bits to deny read
6830 -------------
6832 - Compaq's iPAQ handheld, running the "familiar" Linux distribution
6836 -----
6838 - The "classic" standard tests, which work by comparing stdout to
6839 an expected-output file under Lib/test/output/, no longer stop at
6841 variant of ndiff-style comparison is used to report all differences.
6844 - The unittest-based standard tests now use regrtest's test_main()
6845 convention, instead of running as a side-effect of merely being
6849 - regrtest.py is much better integrated with unittest and doctest now,
6853 -------
6855 - Large file support now also works for files > 4GB, on filesystems
6863 *Release Date: 07-Sep-2001*
6866 ----
6868 - Conversion of long to float now raises OverflowError if the long is too
6871 - The 3-argument builtin pow() no longer allows a third non-None argument
6877 - The builtin dir() now returns more information, and sometimes much
6894 - Overflowing operations on plain ints now return a long int rather
6896 237. You can use -Wdefault::OverflowWarning to enable a warning for
6897 this situation, and -Werror::OverflowWarning to revert to the old
6900 - A new command line option, -Q<arg>, is added to control run-time
6902 values are -Qold, -Qwarn, -Qwarnall, and -Qnew. The default is
6903 -Qold, meaning the / operator has its classic meaning and no
6904 warnings are issued. Using -Qwarn issues a run-time warning about
6905 all uses of classic division for int and long arguments; -Qwarnall
6909 obsolete in 2.2c1 -- -Qnew has global effect in 2.2] ::
6911 Using -Qnew is questionable; it turns on new division by default, but
6912 only in the __main__ module. You can usefully combine -Qwarn or
6913 -Qwarnall and -Qnew: this gives the __main__ module new division, and
6916 - Many built-in types can now be subclassed. This applies to int,
6919 Note that restrictions apply when subclassing immutable built-in
6926 - The dictionary constructor now takes an optional argument, a
6927 mapping-like object, and initializes the dictionary from its
6930 - A new built-in type, super, has been added. This facilitates making
6934 - A new built-in type, property, has been added. This enables the
6936 getter and setter functions (or only one of these for read-only or
6937 write-only attributes), without the need to override __getattr__.
6940 - The syntax of floating-point and imaginary literals has been
6946 - An old tokenizer bug allowed floating point literals with an incomplete
6947 exponent, such as 1e and 3.1e-. Such literals now raise SyntaxError.
6950 -------
6952 - telnetlib includes symbolic names for the options, and support for
6956 - The new C standard no longer requires that math libraries set errno to
6958 freedom, Python's overflow-checking was wholly broken. A new overflow-
6963 - Asynchronous timeout actions are available through the new class
6966 - math.log and math.log10 now return sensible results for even huge
6969 - A new function, imp.lock_held(), returns 1 when the import lock is
6972 - pickle, cPickle and marshal on 32-bit platforms can now correctly read
6977 - In restricted execution mode (using the rexec module), unmarshalling
6980 - unittest.TestResult instances no longer store references to tracebacks
6985 -----
6987 - Tools/scripts/fixdiv.py has been added which can be used to fix
6991 -----
6993 - If you are an adventurous person using Mac OS X you may want to look at
6996 Discussion of this on pythonmac-sig, please.
6999 -----
7001 - New function PyObject_Dir(obj), like Python __builtin__.dir(obj).
7003 - Note that PyLong_AsDouble can fail! This has always been true, but no
7008 if (x == -1.0 && PyErr_Occurred()) {
7012 - The GC API has been changed. Extensions that use the old API will still
7016 - rename Py_TPFLAGS_GC to PyTPFLAGS_HAVE_GC
7018 - use PyObject_GC_New or PyObject_GC_NewVar to allocate objects and
7021 - rename PyObject_GC_Init to PyObject_GC_Track and PyObject_GC_Fini
7024 - remove PyGC_HEAD_SIZE from object size calculations
7026 - remove calls to PyObject_AS_GC and PyObject_FROM_GC
7028 - Two new functions: PyString_FromFormat() and PyString_FromFormatV().
7030 sprintf-style format string (similar to the format string supported
7034 -------------
7036 - Stephen Hansen contributed patches sufficient to get a clean compile
7043 -----
7046 -------
7048 - Large file support is now enabled on Win32 platforms as well as on
7058 - The w9xpopen hack is now used on Windows NT and 2000 too when COMPSPEC
7065 *Release Date: 22-Aug-2001*
7068 -----
7070 - Tim Peters developed a brand new Windows installer using Wise 8.1,
7073 - configure supports a new option --enable-unicode, with the values
7074 ucs2 and ucs4 (new in 2.2a1). With --disable-unicode, the Unicode
7077 - A new configure option --enable-framework builds a Mac OS X framework,
7079 point for more mac-like functionality, join pythonmac-sig@python.org
7082 - The NeXT platform is no longer supported.
7084 - The 'new' module is now statically linked.
7087 -----
7089 - The new Tools/scripts/cleanfuture.py can be used to automatically
7094 -----
7096 - regrtest.py now knows which tests are expected to be skipped on some
7098 also has optional --use/-u switch to run normally disabled tests
7101 - Several new tests in the standard test suite, with special thanks to
7105 ----
7107 - The floor division operator // has been added as outlined in PEP
7114 <http://python.sf.net/peps/pep-0238.html>
7116 - Future statements are now effective in simulated interactive shells
7119 details: <http://python.sf.net/peps/pep-0264.html>.
7121 - The type/class unification (PEP 252-253) was integrated into the
7127 - Warnings about a mismatch in the Python API during extension import
7131 - A function's __dict__ (aka func_dict) will now always be a
7137 - A new command line option, -E, was added which disables the use of
7145 -------
7147 - New class Differ and new functions ndiff() and restore() in difflib.py.
7151 - New function xml.sax.saxutils.quoteattr(): Quote an XML attribute
7155 - Readline completion support for cmd.Cmd was added.
7157 - Calling os.tempnam() or os.tmpnam() generate RuntimeWarnings.
7159 - Added function threading.BoundedSemaphore()
7161 - Added Ka-Ping Yee's cgitb.py module.
7163 - The 'new' module now exposes the CO_xxx flags.
7165 - The gc module offers the get_referents function.
7168 -------------
7171 -----
7173 - Two new APIs PyOS_snprintf() and PyOS_vsnprintf() were added
7174 which provide a cross-platform implementations for the
7180 - Unicode APIs now use name mangling to assure that mixing interpreters
7182 impossible. Trying to import an incompatible Unicode-aware extension
7187 - Two new flags METH_NOARGS and METH_O are available in method definition
7194 -------
7196 - "import module" now compiles module.pyw if it exists and nothing else
7203 *Release date: 18-Jul-2001*
7206 ----
7208 - TENTATIVELY, a large amount of code implementing much of what's
7210 253 (Subtyping Built-in Types) was added. This will be released
7219 - Generators were added; this is a new way to create an iterator (see
7230 - The UTF-16 codec was modified to be more RFC compliant. It will now
7232 only if running in native mode (UTF-16-LE and -BE won't remove a
7235 - Strings now have a new method .decode() to complement the already
7241 were auto-magically converted to string using the default encoding).
7245 return Unicode objects when decoding is requested ("äöü".decode("latin-1")
7252 +---------+-----------+-----------+-----------------------------+
7256 +---------+-----------+-----------+-----------------------------+
7258 +---------+-----------+-----------+-----------------------------+
7259 |quopri | string | string | quoted-printable codec |
7260 +---------+-----------+-----------+-----------------------------+
7262 +---------+-----------+-----------+-----------------------------+
7263 |hex | string | string | 2-byte hex codec |
7264 +---------+-----------+-----------+-----------------------------+
7265 |rot-13 | string | Unicode | ROT-13 Unicode charmap codec|
7266 +---------+-----------+-----------+-----------------------------+
7268 - Some operating systems now support the concept of a default Unicode
7274 On operating system that support non-ASCII filenames, it is common for
7276 string objects pre-encoded using the default file system encoding for
7288 - Float (and complex) literals in source code were evaluated to full
7291 12th significant decimal digit. For example, on a machine with IEEE-754
7301 machine precision (assuming the platform C float<->string I/O conversion
7304 This may cause floating-point results to change in some cases, and
7308 - The implementation of dicts suffers fewer collisions, which has speed
7318 - Many other small changes to dicts were made, resulting in faster
7321 - Dictionary objects now support the "in" operator: "x in dict" means
7324 - The update() method of dictionaries now accepts generic mapping
7329 - Iterators were added; this is a generalized way of providing values
7330 to a for loop. See PEP 234. There's a new built-in function iter()
7338 - The following functions were generalized to work nicely with iterator
7348 right-hand side of assignment statements with multiple targets, such as ::
7351 - Accessing module attributes is significantly faster (for example,
7354 - Comparing dictionary objects via == and != is faster, and now works even
7357 - Comparing dictionaries in ways other than == and != is slower: there were
7362 - Collisions in dicts are resolved via a new approach, which can help
7368 - repr() is much faster for large containers (dict, list, tuple).
7372 -------
7374 - The constants ascii_letters, ascii_lowercase. and ascii_uppercase
7375 were added to the string module. These a locale-independent
7379 - The flags used in dlopen calls can now be configured using
7382 - Fredrik Lundh's xmlrpclib is now a standard library module. This
7383 provides full client-side XML-RPC support. In addition,
7384 Demo/xmlrpc/ contains two server frameworks (one SocketServer-based,
7385 one asyncore-based). Thanks to Eric Raymond for the documentation.
7387 - The xrange() object is simplified: it no longer supports slicing,
7391 - A new function fnmatch.filter to filter lists of file names was added.
7393 - calendar.py uses month and day names based on the current locale.
7395 - strop is now *really* obsolete (this was announced before with 1.6),
7399 - Cookie.py now sorts key+value pairs by key in output strings.
7401 - pprint.isrecursive(object) didn't correctly identify recursive objects.
7404 - pprint functions now much faster for large containers (tuple, list, dict).
7406 - New 'q' and 'Q' format codes in the struct module, corresponding to C
7412 8-byte integral types.
7414 - The site module installs a new built-in function 'help' that invokes
7420 -----
7422 - New test_mutants.py runs dict comparisons where the key and value
7427 - New test_pprint.py verifies that pprint.isrecursive() and
7432 -----
7434 - Removed the unused last_is_sticky argument from the internal
7443 - A bug in the locale module was fixed that affected locales which
7446 - A few bugs in the weakref module's implementations of weak
7450 - An old bug in the os.path.walk() function (introduced in Python
7451 2.0!) was fixed: a non-existent file would cause an exception
7454 - Fixed a few bugs in the new symtable module found by Neil Norwitz's
7467 - Tim discovered a nasty bug in the dictionary code, caused by
7470 fixed with considerable amounts of band-aid, but the net effect is a
7473 - Made a bunch of symbols static that were accidentally global.
7477 - The setup.py script didn't check for a new enough version of zlib
7480 - Changed "make clean" target to also remove shared libraries.
7482 - Added a more general warning about the SGI Irix optimizer to README.
7486 - Fix a bug in urllib.basejoin("http://host", "../file.html") which
7489 - The mailbox module's _Mailbox class contained a completely broken
7492 - Fixed a bunch of typos in various library modules (urllib2, smtpd,
7495 - Fixed a few last-minute bugs in unittest.
7499 - Reverted the patch to the OpenSSL code in socketmodule.c to support
7501 fix it for pre-0.9.5 versions; the problem with the patch is that on
7507 - Fixed the pickle tests to work with "import test.test_pickle".
7509 - Tweaked test_locale.py to actually run the test Windows.
7511 - In distutils/archive_util.py, call zipfile.ZipFile() with mode "w",
7514 - Fix pstats browser crashes. Import readline if it exists to make
7517 - Add "import thread" to the top of test modules that import the
7522 - Changed test_asynchat.py to set the SO_REUSEADDR option; this was
7526 - Skip rather than fail test_sunaudiodev if no audio device is found.
7537 - Copyright was assigned to the Python Software Foundation (PSF) and a
7540 - The CNRI copyright notice was updated to include 2001.
7544 - After a public outcry, assignment to __debug__ is no longer illegal;
7547 - Fixed a core dump with "%#x" % 0, and changed the semantics so that
7550 - Fixed some nits in the bytecode compiler.
7552 - Fixed core dumps when calling certain kinds of non-functions.
7554 - Fixed various core dumps caused by reference count bugs.
7558 - Use INSTALL_SCRIPT to install script files.
7560 - New port: SCO Unixware 7, by Billy G. Allie.
7562 - Updated RISCOS port.
7564 - Updated BeOS port and notes.
7566 - Various other porting problems resolved.
7570 - The TERMIOS and SOCKET modules are now truly obsolete and
7574 - Fixed some 64-bit bugs in pickle, cPickle, and struct, and added
7577 - threading: make Condition.wait() robust against KeyboardInterrupt.
7579 - zipfile: add support to zipfile to support opening an archive
7582 where flush() was called for a read-only file.
7584 - imputil: added an uninstall() method to the ImportManager.
7586 - Canvas: fixed bugs in lower() and tkraise() methods.
7588 - SocketServer: API change (added overridable close_request() method)
7591 - pstats: Eric Raymond added a simple interactive statistics browser,
7594 - locale: fixed a problem in format().
7596 - webbrowser: made it work when the BROWSER environment variable has a
7597 value like "/usr/bin/netscape". Made it auto-detect Konqueror for
7600 - unittest: changes to allow using a different exception than
7604 - urllib, urllib2: fixed redirect problems and a coupleof other nits.
7606 - asynchat: fixed a critical bug in asynchat that slipped through the
7609 - Fix some unqualified except: clauses (always a bad code example).
7613 - pyexpat: new API get_version_string().
7615 - Fixed some minidom bugs.
7619 - Fixed a core dump in _weakref. Removed the weakref.mapping()
7622 - Rationalized the use of header files in the readline module, to make
7626 - Hopefully fixed a buffering problem in linuxaudiodev.
7628 - Attempted a fix to make the OpenSSL support in the socket module
7629 work again with pre-0.9.5 versions of OpenSSL.
7633 - Added a test case for asynchat and asyncore.
7635 - Removed coupling between tests where one test failing could break
7640 - Ping added an interactive help browser to pydoc, fixed some nits
7644 - An updated python-mode.el version 4.1 which integrates Ken
7650 - IDLE: syntax warnings in interactive mode are changed into errors.
7652 - Some improvements to Tools/webchecker (ignore some more URL types,
7655 - Brought the Tools/compiler package up to date.
7665 - The nested scopes work (enabled by "from __future__ import
7670 - When calling a base class method (e.g. BaseClass.__init__(self)),
7674 - Slice objects are now comparable but not hashable; this prevents
7677 - Complex division is now calculated using less braindead algorithms.
7682 - sgmllib.py now calls handle_decl() for simple <!...> declarations.
7684 - It is illegal to assign to the name __debug__, which is set when the
7685 interpreter starts. It is effectively a compile-time constant.
7687 - A warning will be issued if a global statement for a variable
7692 - unittest.py, a unit testing framework by Steve Purcell (PyUNIT,
7699 - A new module Tix was added, which wraps the Tix extension library
7704 - tzparse.py is now obsolete.
7706 - In gzip.py, the seek() and tell() methods are removed -- they were
7707 non-functional anyway, and it's better if callers can test for their
7712 - PyDict_Next(): it is now safe to call PyDict_SetItem() with a key
7716 modifications to the dictionary are still off-limits during a
7719 - New extended APIs related to passing compiler variables around.
7721 - New abstract APIs PyObject_IsInstance(), PyObject_IsSubclass()
7724 - Py_BuildValue() now has a "D" conversion to create a Python complex
7727 - Extensions types which support weak references must now set the
7733 - PyFrame_FastToLocals() and PyFrame_LocalsToFast() copy bindings for
7736 - Variants of several functions defined in pythonrun.h have been added
7745 - the sdist command now writes a PKG-INFO file, as described in PEP 241,
7748 - several enhancements to the bdist_wininst command from Thomas Heller
7751 - from Jack Jansen: added Mac-specific code to generate a dialog for
7752 users to specify the command-line (because providing a command-line with
7756 - added 'platforms' and 'keywords' to the set of metadata that can be
7759 - applied patches from Jason Tishler to make the compiler class work with
7768 - Following an outcry from the community about the amount of code
7772 per-module basis by adding "from __future__ import nested_scopes" at
7779 - The nested scopes code, when enabled, has been hardened, and most
7782 - Compile-time warnings are now generated for a number of conditions
7785 - Using "from...import *" or "exec" without in-clause in a function
7787 more free (non-local) variables. The presence of the import* or
7794 exec...in... (a good idea anyway -- there's a possibility that
7797 - Use of a global variable in a nested scope with the same name as a
7804 - An optional object allocator has been included. This allocator is
7810 allocator can be enabled by providing the "--with-pymalloc" option to
7815 - pyexpat now detects the expat version if expat.h defines it. A
7823 - xml.dom offers the new functions registerDOMImplementation and
7826 - xml.dom.minidom offers a toprettyxml method. A number of DOM
7831 - Ka-Ping Yee contributed two new modules: inspect.py, a module for
7836 "pydoc -h" for instructions. "pydoc -g" pops up a small GUI that
7839 - New library module difflib.py, primarily packaging the SequenceMatcher
7840 class at the heart of the popular ndiff.py file-comparison tool.
7842 - doctest.py (a framework for verifying Python code examples in docstrings)
7847 - A new entry in the Start menu, "Module Docs", runs "pydoc -g" -- a
7851 - Import is now case-sensitive. PEP 235 (Import on Case-Insensitive
7854 http://python.sourceforge.net/peps/pep-0235.html
7856 for full details, especially the "Current Lower-Left Semantics" section.
7860 before: silently accept the first case-insensitive match of any
7863 B. Else search sys.path for the first case-sensitive match; raise
7866 The same rules have been implemented on other platforms with case-
7867 insensitive but case-preserving filesystems too (including Cygwin, and
7870 - winsound module: Under Win9x, winsound.Beep() now attempts to simulate
7876 - Build: Subproject _test (effectively) renamed to _testcapi.
7880 - 2.1 should compile and run out of the box under MacOS X, even using HFS+.
7883 - 2.1 should compile and run out of the box on Cygwin. Thanks to Jason
7886 - 2.1 contains new files and patches for RISCOS, thanks to Dietmar
7887 Schwertberger! See RISCOS/README for more information -- it seems
7897 - Scopes nest. If a name is used in a function or class, but is not
7904 three namespaces -- the local namespace, the global namespace, and
7926 built-in function str(). Under the new rules, it will be bound to
7930 - The compiler will report a SyntaxError if "from ... import *" occurs
7937 - repr(string) is easier to read, now using hex escapes instead of octal,
7944 - Functions are now compared and hashed by identity, not by value, since
7947 - Weak references (PEP 205) have been added. This involves a few
7953 - A 'continue' statement can now appear in a try block within the body
7959 - mailbox.py now has a new class, PortableUnixMailbox which is
7966 - random.py is now self-contained, and offers all the functionality of
7967 the now-deprecated whrandom.py. See the docs for details. random.py
7971 random() had been made. The latter is particularly useful for multi-
7974 non-overlapping segment of the full period.
7976 - random.py's seed() function is new. For bit-for-bit compatibility with
7980 that can be done in the Wichmann-Hill generator). (2) The old function
7986 - The socket module now supports raw packets on Linux. The socket
7989 - test_capi.py is a start at running tests of the Python C API. The tests
7992 - A new extension module, _symtable, provides provisional access to the
7993 internal symbol table used by the Python compiler. A higher-level
7996 - Removed the obsolete soundex module.
7998 - xml.dom.minidom now uses the standard DOM exceptions. Node supports
8001 - xml.sax.expatreader supports the lexical handler property; it
8006 - Build procedure: the zlib project is built in a different way that
8009 zlib-related directories can be deleted; you'll need to download fresh
8012 - Build: New subproject _test for the benefit of test_capi.py (see above).
8014 - Build: New subproject _symtable, for new DLL _symtable.pyd (a nascent
8017 - Build: Subproject ucnhash is gone, since the code was folded into the
8025 - There is a new Unicode companion to the PyObject_Str() API
8030 - The comparison operators support "rich comparison overloading" (PEP
8034 comparison operators before trying the old 3-way comparison. There
8036 the old 3-way comparison, but does not constrain the outcome of the
8067 - Complex numbers use rich comparisons to define == and != but raise
8074 - The outcome of comparing non-numeric objects of different types is
8081 - Functions and methods now support getting and setting arbitrarily
8087 - The xrange() object implementation has been improved so that
8088 xrange(sys.maxint) can be used on 64-bit platforms. There's still a
8095 - Two changes to from...import:
8106 - File objects have a new method, xreadlines(). This is the fastest
8113 other file-like objects.
8115 - Even if you don't use file.xreadlines(), you may expect a speedup on
8116 line-by-line input. The file.readline() method has been optimized
8117 quite a bit in platform-specific ways: on systems (like Linux) that
8120 a complicated (but still thread-safe) method using fgets() is used by
8129 test_bufio.py fails -- and let us know if it does!).
8131 - In addition, the fileinput module, while still slower than the other
8135 - Support for run-time warnings has been added, including a new
8136 command line option (-W) to specify the disposition of warnings.
8139 - Extensive changes have been made to the coercion code. This mostly
8140 affects extension modules (which can now implement mixed-type
8145 supported -- instead of calling __rcmp__, __cmp__ is called with
8148 - In connection with the coercion changes, a new built-in singleton
8154 - The interpreter accepts now bytecode files on the command line even
8165 - %[xXo] formats of negative Python longs now produce a sign
8173 >>> "%x" % -0x42L
8174 '-42' # in 2.1
8175 'ffffffbe' # in 2.0 and before, on 32-bit machines
8176 >>> hex(-0x42L)
8177 '-0x42L' # in all versions of Python
8189 - Dictionary objects have an odd new method, popitem(). This removes
8198 - In the time module, the time argument to the functions strftime,
8202 - The ftplib module now defaults to passive mode, which is deemed a
8209 - The module site now treats .pth files not only for path configuration,
8213 - There's a new module, warnings, which implements a mechanism for
8214 issuing and filtering warnings. There are some new built-in
8216 option, -W, to control warnings (e.g. -Wi ignores all warnings, -We
8221 - A new module xreadlines was added. This exports a single factory
8224 file(-like) object:
8232 (as opposed to a file-like object), this is equivalent:
8237 - The bisect module has new functions bisect_left, insort_left,
8246 - The new curses.panel module wraps the panel library that forms part
8249 - The SocketServer module now sets the allow_reuse_address flag by
8252 - A new function, sys._getframe(), returns the stack frame pointer of
8254 higher-level mechanisms such as string interpolation.
8256 - The pyexpat module supports a number of new handlers, which are
8261 for single-byte charsets. The parser type objects is exposed as
8264 - xml.dom now offers standard definitions for symbolic node type and
8268 - The conformance of xml.dom.minidom to the DOM specification was
8278 - For Unix (and Unix-compatible) builds, configuration and building of
8282 distutils-based setup.py script now takes care of building most
8288 - Python should now build out of the box on Cygwin. If it doesn't,
8291 - Python now always uses its own (renamed) implementation of getopt()
8292 -- there's too much variation among C library getopt()
8295 - C++ compilers are better supported; the CXX macro is always set to a
8300 - select module: By default under Windows, a select() call
8306 - Support for Windows 3.1, DOS and OS/2 is gone. The Lib/dos-8x3
8322 --Guido van Rossum (home page: http://www.pythonlabs.com/~guido/)
8331 - The copy_reg module was modified to clarify its intended use: to
8335 - Fixed a bug in gettext's "normalize and expand" code that prevented
8338 - Restored support for HTTP/0.9 servers in httplib.
8340 - The math module was changed to stop raising OverflowError in case of
8342 used to raise OverflowError in case of underflow was platform-
8346 - Fixed a bug in StringIO that occurred when the file position was not
8350 - Fixed a bug that caused Tkinter error messages to get lost on
8352 interp->result with Tcl_GetStringResult(interp).
8354 - Fixed bug in urllib2 that caused it to fail when it received an HTTP
8357 - Several changes were made to distutils: Some debugging code was
8365 - Several minor bugs were fixed in the xml package (the minidom,
8368 - The regression test driver (regrtest.py) behavior when invoked with
8369 -l changed: It now reports a count of objects that are recognized as
8372 - The regression test for the math module was changed to test
8380 - PyOS_CheckStack() has been disabled on Win64, where it caused
8385 - Changed compiler flags, so that gcc is always invoked with -Wall and
8386 -Wstrict-prototypes. Users compiling Python with GCC should see
8388 --with-pydebug flag. The expected warning is for getopt() in
8391 - Fixed configure to add -threads argument during linking on OSF1.
8395 - The compiler in Tools/compiler was updated to support the new
8412 any show-stopping (or brown bag) bugs are found by testers of the
8420 - A bug that caused crashes when __coerce__ was used with augmented
8423 - Raise ZeroDivisionError when raising zero to a negative number,
8424 e.g. 0.0 ** -2.0. Note that math.pow is unrelated to the built-in
8425 power operator and the result of math.pow(0.0, -2.0) will vary by
8428 - A bug in Unicode string interpolation was fixed that occasionally
8432 - Compilation of deeply nested expressions raises MemoryError instead
8435 - In 2.0b2 on Windows, the interpreter wrote .pyc files in text mode,
8440 - Keyword arguments are now accepted for most pattern and match object
8443 - In SRE, fixed error with negative lookahead and lookbehind that
8446 - Several bugs in the Unicode handling and error handling in _tkinter
8449 - Fix memory management errors in Merge() and Tkapp_Call() routines.
8451 - Several changes were made to cStringIO to make it compatible with
8452 the file-like object interface and with StringIO. If operations are
8457 - There were many changes made to the linuxaudiodev module and its
8466 crashing. It also defines the AFMT_A_LAW format (logarithmic A-law
8470 - The library_version attribute, introduced in an earlier beta, was
8473 compile-time.
8475 - The binascii module is now enabled on Win64.
8477 - tokenize.py no longer suffers "recursion depth" errors when parsing
8482 - Fixed several buffer overflow vulnerabilities in calculate_path(),
8488 Misc/setuid-prog.c will eliminate the vulnerability.
8490 - Fixed garbage collection bugs in instance creation that were
8496 - pyexpat adds definitions of PyModule_AddStringConstant and
8500 - If the platform has a bogus definition for LONG_BIT (the number of
8503 - Fix bugs in _PyTuple_Resize() which caused hard-to-interpret garbage
8506 - Fixed a memory leak in _PyUnicode_Fini().
8510 - configure now accepts a --with-suffix option that specifies the
8514 - The mmap.PAGESIZE constant is now initialized using sysconf when
8515 possible, which eliminates a dependency on -lucb for Reliant UNIX.
8517 - The md5 file should now compile on all platforms.
8519 - The select module now compiles on platforms that do not define
8522 - Darwin (Mac OS X): Initial support for static builds on this
8525 - BeOS: A number of changes were made to the build and installation
8526 process. ar-fake now operates on a directory of object files.
8530 - Platform directory in lib/python2.0 is "plat-beos5" (or
8531 "plat-beos4", if building on BeOS 4.5), rather than "plat-beos".
8533 - Cygwin: Support for shared libraries, Tkinter, and sockets.
8535 - SunOS 4.1.4_JL: Fix test for directory existence in configure.
8539 - Removed debugging prints from main used with freeze.
8541 - IDLE auto-indent no longer crashes when it encounters Unicode
8549 - Add support for unbounded ints in %d,i,u,x,X,o formats; for example
8552 - Add -h and -V command line options to print the usage message and
8555 - eval() and exec accept Unicode objects as code parameters.
8557 - getattr() and setattr() now also accept Unicode objects for the
8561 - Multiplication on string and Unicode now does proper bounds
8565 - Better error message when continue is found in try statement in a
8571 - socket module: the OpenSSL code now adds support for RAND_status()
8574 - array: reverse() method of array now works. buffer_info() now does
8577 - asyncore/asynchat: Included most recent version from Sam Rushing.
8579 - cgi: Accept '&' or ';' as separator characters when parsing form data.
8581 - CGIHTTPServer: Now works on Windows (and perhaps even Mac).
8583 - ConfigParser: When reading the file, options spelled in upper case
8586 - copy: Copy Unicode objects atomically.
8588 - cPickle: Fail gracefully when copy_reg can't be imported.
8590 - cStringIO: Implemented readlines() method.
8592 - dbm: Add get() and setdefault() methods to dbm object. Add constant
8598 - distutils: Update to version 0.9.3.
8600 - dl: Add several dl.RTLD_ constants.
8602 - fpectl: Now supported on FreeBSD.
8604 - gc: Add DEBUG_SAVEALL option. When enabled all garbage objects
8608 - httplib: Three changes: Restore support for set_debuglevel feature
8609 of HTTP class. Do not close socket on zero-length response. Do not
8610 crash when server sends invalid content-length header.
8612 - mailbox: Mailbox class conforms better to qmail specifications.
8614 - marshal: When reading a short, sign-extend on platforms where shorts
8616 sign extension that was being done for 64-bit machines. (It assumed
8617 that signed right shift sign-extends.)
8619 - operator: Add contains(), invert(), __invert__() as aliases for
8622 - os: Add support for popen2() and popen3() on all platforms where
8625 - os: (Windows only:) Add startfile() function that acts like double-
8629 - os.path: (Windows, DOS:) Treat trailing colon correctly in
8632 - pickle: Now raises ValueError when an invalid pickle that contains
8633 a non-string repr where a string repr was expected. This behavior
8636 - posixfile: Remove broken __del__() method.
8638 - py_compile: support CR+LF line terminators in source file.
8640 - readline: Does not immediately exit when ^C is hit when readline and
8644 - rfc822: Domain literals returned by AddrlistClass method
8647 - site: sys.setdefaultencoding() should only be called in case the
8653 - socket: Support for size hint in readlines() method of object returned
8656 - sre: Added experimental expand() method to match objects. Does not
8660 - StringIO: Size hint in readlines() is now supported as documented.
8662 - struct: Check ranges for bytes and shorts.
8664 - urllib: Improved handling of win32 proxy settings. Fixed quote and
8667 - Tkinter: Image objects are now guaranteed to have unique ids. Set
8671 - UserList: now implements __contains__().
8673 - webbrowser: On Windows, use os.startfile() instead of os.popen(),
8677 - xml: New version detection code allows PyXML to override standard
8680 - xml.dom: DOM level 1 support for basic XML. Includes xml.dom.minidom
8683 application. Does not provide the HTML-specific extensions. Still
8686 - xml.sax: SAX 2 support for Python, including all the handler
8690 - pyexpat: Renamed to xml.parsers.expat since this is part of the new,
8696 - Add three new convenience functions for module initialization --
8700 - Cleaned up definition of NULL in C source code; all definitions were
8704 - Py_PROTO() macros that were removed in 2.0b1 have been restored for
8707 - A wrapper API was added for signal() and sigaction(). Instead of
8712 - Add PyString_AsStringAndSize() function that provides access to the
8713 internal data buffer and size of a string object -- or the default
8716 - PyString_Size() and PyString_AsString() accept Unicode objects.
8718 - The standard header <limits.h> is now included by Python.h (if it
8722 - PyFloat_FromString takes a second argument, pend, that was
8727 - PyObject_GetAttr() and PyObject_SetAttr() now accept Unicode objects
8730 - A few bug fixes to argument processing for Unicode.
8734 UTF-16.
8736 - Py_BuildValue accepts B format (for bgen-generated code).
8741 - On Unix, fix code for finding Python installation directory so that
8744 - Added a true unicode_internal_encode() function and fixed the
8748 - Several of the internal Unicode tables are much smaller now, and
8751 - In the garbage collector: Fixed bug in collection of tuples. Fixed
8756 - Fixed refcount problem in instance deallocation that only occurred
8759 - On Windows, getpythonregpath is now protected against null data in
8762 - On Unix, create .pyc/.pyo files with O_EXCL flag to avoid a race
8766 Build and platform-specific issues
8768 - Better support of GNU Pth via --with-pth configure option.
8770 - Python/C API now properly exposed to dynamically-loaded extension
8773 - Changes for the benefit of SunOS 4.1.4 (really!). mmapmodule.c:
8777 - Improved support for HP-UX build. Threads should now be correctly
8778 configured (on HP-UX 10.20 and 11.00).
8780 - Fix largefile support on older NetBSD systems and OpenBSD by adding
8786 - ftpmirror: Call to main() is wrapped in if __name__ == "__main__".
8788 - freeze: The modulefinder now works with 2.0 opcodes.
8790 - IDLE:
8792 created, which allows the application-specific Tkinter
8801 ------------------------
8804 such as single-argument append(), connect() and bind(), and changes to
8809 ------------------------
8811 - Third party extensions built for Python 1.5.x or 1.6 cannot be used
8815 - On Windows, attempting to import a third party extension built for
8819 - Python bytecode files (*.pyc and *.pyo) are not compatible between
8824 -----------------------------
8837 - Augmented assignment, e.g. x += 1
8839 - List comprehensions, e.g. [x**2 for x in range(10)]
8841 - Extended import statement, e.g. import Module as Name
8843 - Extended print statement, e.g. print >> file, "Hello"
8847 - Optional collection of cyclical garbage
8850 ---------------------------------
8866 --------------------
8868 This must have been the most-requested feature of the past years!
8871 += -= *= /= %= **= <<= >>= &= ^= |=
8889 Classes and built-in object types can override the new operators in
8890 order to implement the in-place behavior; the not-in-place behavior is
8892 in-place behavior. For classes, the method name is derived from the
8893 method name for the corresponding not-in-place operator by inserting
8894 an 'i' in front of the name, e.g. __iadd__ implements in-place
8901 -------------------
8936 -------------------------
8958 Note that 'as' is not a new keyword -- it is recognized only in this
8966 ------------------------
8990 ---------------------------------------
9010 ---------------
9033 indentation-related errors: IndentationError and TabError.
9056 ------------------------
9058 atexit - for registering functions to be called when Python exits.
9060 imputil - Greg Stein's alternative API for writing custom import
9063 pyexpat - an interface to the Expat XML parser, contributed by Paul
9066 xml - a new package with XML support code organized (so far) in three
9069 user-installed package named _xmlplus overrides the standard
9071 backwards-compatible updates to the standard xml package.
9073 webbrowser - a platform-independent API to launch a web browser.
9077 ---------------
9079 array -- new methods for array objects: count, extend, index, pop, and
9082 binascii -- new functions b2a_hex and a2b_hex that convert between
9085 calendar -- Many new functions that support features including control
9090 cgi -- FieldStorage objects have a getvalue method that works like a
9093 ConfigParser -- The parser object has new methods has_option,
9097 ftplib -- ntransfercmd(), transfercmd(), and retrbinary() all now
9100 gzip -- readline and readlines now accept optional size arguments
9102 httplib -- New interfaces and support for HTTP/1.1 by Greg Stein. See
9105 locale -- implement getdefaultlocale for Win32 and Macintosh
9107 marshal -- no longer dumps core when marshaling deeply nested or
9110 os -- new functions isatty, seteuid, setegid, setreuid, setregid
9112 os/popen2 -- popen2/popen3/popen4 support under Windows. popen2/popen3
9115 os/pty -- support for openpty and forkpty
9117 os.path -- fix semantics of os.path.commonprefix
9119 smtplib -- support for sending very long messages
9121 socket -- new function getfqdn()
9123 readline -- new functions to read, write and truncate history files.
9127 select -- add interface to poll system call
9129 shutil -- new copyfileobj function
9131 SimpleHTTPServer, CGIHTTPServer -- Fix problems with buffering in the
9134 Tkinter -- optimization of function flatten
9136 urllib -- scans environment variables for proxy configuration,
9139 whichdb -- recognizes dumbdbm format
9143 ----------------
9151 ----------------------------
9156 C-level Changes
9157 ---------------
9170 Trent Mick ensured portability to 64-bit platforms, under both Linux
9187 the creation of a new slot for each in-place operator.
9198 PyRun_AnyFileEx, PyRun_SimpleFileEx, PyRun_FileEx -- New functions
9199 that are the same as their non-Ex counterparts except they take an
9206 ---------------
9233 \Python20\ on the default volume, instead of \Program Files\Python-2.0\.
9237 --------------------------------------------
9240 is some late-breaking news:
9248 strings: the string.encode() (which is also present on 8-bit strings
9249 !) allows using them for 8-bit strings too, e.g. to convert files from
9250 cp1252 (Windows) to latin-1 or vice-versa.
9253 http://pseudo.grad.sccs.chukyo-u.ac.jp/~kajiyama/python/
9270 ------------------------
9274 - The append() method for lists can no longer be invoked with more
9279 - The connect(), connect_ex() and bind() methods for sockets require
9284 - The str() and repr() functions are now different more often. For
9290 - The -X option is gone. Built-in exceptions are now always
9292 class-based exceptions.
9296 ------------------------
9298 - Third party extensions built for Python 1.5.x cannot be used with
9301 - On Windows, attempting to import a third party extension built for
9307 -------------------------------
9318 built-in function unicode(), a numerous C APIs to deal with Unicode
9320 http://starship.python.net/crew/lemburg/unicode-proposal.txt.
9326 - String methods mean that you can now say s.lower() etc. instead of
9332 split() and replace() have changed from 0 to -1.
9334 - The new regular expression engine, SRE by Fredrik Lundh, is fully
9340 engine -- this is at least the fourth!).
9344 -------------
9366 The built-ins int() and long() take an optional second argument to
9367 indicate the conversion base -- of course only if the first argument
9382 x :-).
9395 ------------------
9397 UserString - base class for deriving from the string type.
9399 distutils - tools for distributing Python modules.
9401 robotparser - parse a robots.txt file, for writing web spiders.
9404 linuxaudiodev - audio for Linux.
9406 mmap - treat a file as a memory buffer. (Windows and Unix.)
9408 sre - regular expressions (fast, supports unicode). Currently, this
9412 filecmp - supersedes the old cmp.py and dircmp.py modules.
9414 tabnanny - check Python sources for tab-width dependance. (Moved from
9417 urllib2 - new and improved but incompatible version of urllib (still
9420 zipfile - read and write zip archives.
9422 codecs - support for Unicode encoders/decoders.
9424 unicodedata - provides access to the Unicode 3.0 database.
9426 _winreg - Windows registry access.
9428 encodings - package which provides a large set of standard codecs --
9429 currently only for the new Unicode support. It has a drop-in extension
9437 ---------------
9440 chunk, wave, random, shelve, nntplib - minor enhancements.
9442 socket, httplib, urllib - optional OpenSSL support (Unix only).
9444 _tkinter - support for 8.0 up to 8.3. Support for versions older than
9447 string - most of this module is deprecated now that strings have
9448 methods. This no longer uses the built-in strop module, but takes
9454 ------------------
9465 default volume, instead of \Program Files\Python-1.6\.
9469 -------------
9471 IDLE - complete overhaul. See the <a href="../idle/">IDLE home
9475 Tools/i18n/pygettext.py - Python equivalent of xgettext(1). A message
9481 ----------------
9484 it. :-)
9509 ----------------------------------
9511 - Slight changes to the CNRI license. A copyright notice has been
9517 - Added the Tools/compiler package. This is a project led by Jeremy
9520 - The function math.rint() is removed.
9522 - In Python.h, "#define _GNU_SOURCE 1" was added.
9524 - Version 0.9.1 of Greg Ward's distutils is included (instead of
9527 - A new version of SRE is included. It is more stable, and more
9528 compatible with the old RE module. Non-matching ranges are indicated
9529 by -1, not None. (The documentation said None, but the PRE
9530 implementation used -1; changing to None would break existing code.)
9532 - The winreg module has been renamed to _winreg. (There are plans for
9533 a higher-level API called winreg, but this has not yet materialized in
9536 - The _locale module is enabled by default.
9538 - Fixed the configuration line for the _curses module.
9540 - A few crashes have been fixed, notably <file>.writelines() with a
9541 list containing non-string objects would crash, and there were
9544 - The <list>.extend() method now accepts an arbitrary sequence
9547 - If __str__() or __repr__() returns a Unicode object, this is
9548 converted to an 8-bit string.
9550 - Unicode string comparisons is no longer aware of UTF-16
9551 encoding peculiarities; it's a straight 16-bit compare.
9553 - The Windows installer now installs the LICENSE file and no longer
9557 - A few portability problems have been fixed, in particular a
9560 - The PC configuration is slightly friendlier to non-Microsoft
9611 all-platform problem so now we only use the _r variant when we are
9624 * README: Add note about -D_REENTRANT for HP-UX 10.20.
9629 Remove all VC++ info (except VC 1.5) from readme.txt;
9630 remove the VC++ 4.0 project file; remove the unused _tkinter extern defs.
9636 * Lib/plat-sunos5/CDIO.py, Lib/plat-linux2/CDROM.py:
9645 2. On 64-bit platforms the CRC comparison fails; I've fixed this by
9660 Quote a bunch of shell variables used in test, related to long-long.
9666 3-arg gethostbyname_r doesn't really work on OSF/1.
9699-8x3/userdict.py, Lib/dos-8x3/userlist.py, Lib/dos-8x3/test_zli.py, Lib/dos-8x3/test_use.py, Lib/d…
9715 * Demo/tkinter/matt/window-creation-w-location.py:
9718 * Lib/lib-tk/Tkinter.py:
9719 Delete an accidentally checked-in feature that actually broke more
9724 (Demo/tkinter/matt/rubber-band-box-demo-1.py).
9748 (Not much has changed :-( )
9750 * Lib/lib-tk/Tkinter.py:
9803 The code no longer accepts a -1 reply from the ehlo() method in
9806 [Text about removing SMTPRecipientsRefused deleted --GvR]
9820 Mostly I just re-added the SMTPRecipientsRefused exception
9822 removed this in his patch --GvR] and tweaked the behavior of the
9858 philosophical problem -- to me, the split*() functions are purely
9864 when the path doesn't actually exist -- if GetFullPathName() fails,
9887 Made the default mode 'rb' instead of 'r', for better cross-platform
9924 - It needlessly used the makefile() method for each response that is
9927 - If the remote SMTP server closes the connection unexpectedly the
9931 - The code now checks that all lines in a multiline response actually
9942 distutils-sig.
9972 time calculations on Linux actually work right (like the tz-aware
9994 sent, but I couldn't resist going on to add new -r1 / -r2 cmdline options
10003 Attached is a cleaned-up version of ndiff (added useful module
10004 docstring, now echo'ed in case of cmd line mistake); added -q option
10020 Reformatted with 4-space indent.
10092 to fix. I expect that this is a temporary situation --
10094 (The changes add a -t option to specify exceptions to the -x
10113 * configure.in, configure, BeOS/linkmodule, BeOS/ar-fake:
10129 Vladimir Marangozov implements the AIX 3-arg gethostbyname_r code.
10138 * Lib/gzip.py: use struct instead of bit-manipulate in Python
10152 Adding thread.h -- unused but for b/w compatibility.
10164 - Use HAVE_GETHOSTBYNAME_R_6_ARG instead of testing for Linux and
10167 - If gethostbyname takes 3 args, undefine HAVE_GETHOSTBYNAME_R --
10170 - New symbol USE_GETHOSTBYNAME_LOCK defined iff the lock should be used.
10172 - Modify the gethostbyaddr() code to also hold on to the lock until
10177 the lock -- e.g. in a signal handler or destructor. I will simply say
10207 Use an unsigned cast to avoid a warning in VC++.
10227 New builtin buffer() creates a derived read-only buffer from any
10257 Delete non-standard-conforming code in urljoin() that would use the
10268 when joining an http: URL with a file: URL -- the resulting file: URL
10272 There are two reasons to get rid of the old, once-valuable hack,
10283 * Lib/lib-tk/Tkinter.py: Bug reported by Jim Robinson:
10289 rather just whether is evaluates to non-false. A value of 0 fails
10306 Patch by Rob Riggs for Linux -- glibc2 has a different argument
10347 resist it. Any takers? --Guido]
10351 Under Windows, python freeze.py -o hello hello.py
10363 Also added code so that with -vv it is very chatty about what it does.
10388 - Don't crash in the case where a superclass is a string instead of a
10392 - Show a watch cursor when calling pyclbr (since it may take a while
10425 "Path browser" - 4 scrolled lists displaying:
10438 Smalltalk or NeXT style multi-column hierarchical browser.
10443 * Tools/idle/ScrolledList.py: - White background.
10444 - Display "(None)" (or text of your choosing) when empty.
10445 - Don't set the focus.
10458 Always test for an error return (usually NULL or -1) without setting
10464 I had an off-by-1000 error in floatsleep(),
10506 re-start the connection.
10516 empty content-transfer-encoding header, the code used to
10524 own routines ;-)
10529 Make sure that the exception tuples ("base-classes" when
10530 string-based exceptions are used) reflect the real class hierarchy,
10550 -- someone tried to pass in sys.maxint and got bitten by the bogus
10555 LIBM (from --with-libm=...); this actually broke the customizability
10567 length of a list, but the largest C int is -- sys.maxint is the
10577 According to Jeffrey Honig, bsd/os 2.0 - 4.0 should be added to the
10597 * Modules/Setup.in: Document *static* -- in two places!
10600 We don't support leap seconds, so the seconds field of a time 9-tuple
10601 should be in the range [0-59]. Noted by Tadayoshi Funaba.
10605 converted was a "digit" -- use isalnum(). This test is there only to
10606 guard against "+" or "-" being interpreted as a valid int literal.
10616 Typo: "apparentlt" --> "apparently"
10626 * Lib/lib-old/poly.py:
10633 Bow to font-lock at the end of the docstring, since it throws stuff
10647 -------
10649 - Many memory leaks fixed.
10651 - Many small bugs fixed.
10653 - Command line option -OO (or -O -O) suppresses inclusion of doc
10656 Windows-specific changes
10657 ------------------------
10659 - New built-in module winsound provides an interface to the Win32
10662 - Re-enable the audioop module in the config.c file.
10664 - On Windows, support spawnv() and associated P_* symbols.
10666 - Fixed the conversion of times() return values on Windows.
10668 - Removed freeze from the installer -- it doesn't work without the
10671 - On Windows 95/98, the Tkinter module now is smart enough to find
10672 Tcl/Tk even when the PATH environment variable hasn't been set -- when
10678 - The -i option doesn't make any calls to set[v]buf() for stdin --
10681 - The ntpath module (and hence, os.path on Windows) now parses out UNC
10686 - Added a hack to the exit code so that if (1) the exit status is
10691 - Updated the installer to WISE 5.0g. Added a dialog warning about
10697 ---------------------
10699 - The repr() or str() of a module object now shows the __file__
10701 "(built-in)" if there is no __file__ attribute.
10703 - The range() function now avoids overflow during its calculations (if
10706 - New info string sys.hexversion, which is an integer encoding the
10711 ---------------------
10713 - Support for Nextstep descendants (future Mac systems).
10715 - Improved BeOS support.
10717 - Support dynamic loading of shared libraries on NetBSD platforms that
10721 ---------------------------
10723 - The Lib/test directory is no longer included in the default module
10724 search path (sys.path) -- "test" has been a package ever since 1.5.
10726 - Now using autoconf 2.13.
10729 -------------------
10731 - New library modules asyncore and asynchat: these form Sam Rushing's
10735 - New module statvfs contains indexing constants for [f]statvfs()
10739 ----------------------
10741 - The wave module (platform-independent support for Windows sound
10744 - The sunau module (platform-independent support for Sun/NeXT sound
10749 - Fix a bug in the urllib module that occasionally tripped up
10752 - ConfigParser's get() method now accepts an optional keyword argument
10753 (vars) that is substituted on top of the defaults that were setup in
10757 - Some improvements to the Queue module, including a put_nowait()
10761 - The updated xmllib module is once again compatible with the version
10764 - The bdb module (base class for the debugger) now supports
10770 - In sgmllib (and hence htmllib), recognize attributes even if they
10774 - In the debugger (pdb), change clear syntax to support three
10777 - The os.path module now pretends to be a submodule within the os
10780 - The standard exceptions now have doc strings.
10782 - In the smtplib module, exceptions are now classes. Also avoid
10783 inserting a non-standard space after "TO" in rcpt() command.
10785 - The rfc822 module's getaddrlist() method now uses all occurrences of
10791 - Fixed bug in urlparse in the common-case code for HTTP URLs; it
10794 - The sndhdr module no longer supports whatraw() -- it depended on a
10797 - The UserList module/class now supports the extend() method, like
10800 - The uu module now deals better with trailing garbage generated by
10803 - The telnet module now has a my_interact() method which uses threads
10805 Windows (where the single-threaded version doesn't work).
10807 - Add a class to mailbox.py for dealing with qmail directory
10812 ----------------------------
10814 - Support for the [f]statvfs() system call, where it exists.
10816 - Fixed some bugs in cPickle where bad input could cause it to dump
10819 - Fixed cStringIO to make the writelines() function actually work.
10821 - Added strop.expandtabs() so string.expandtabs() is now much faster.
10823 - Added fsync() and fdatasync(), if they appear to exist.
10825 - Support for "long files" (64-bit seek pointers).
10827 - Fixed a bug in the zlib module's flush() function.
10829 - Added access() system call. It returns 1 if access granted, 0 if
10832 - The curses module implements an optional nlines argument to
10836 ----------------
10838 - Some changes to IDLE; see Tools/idle/NEWS.txt.
10840 - Latest version of Misc/python-mode.el included.
10843 ------------------
10845 - Avoid tracebacks when an image is deleted after its root has been
10849 ---------------------------
10851 - When parentheses are used in a PyArg_Parse[Tuple]() call, any
10855 - Added PyModule_GetFilename().
10857 - In PyNumber_Power(), remove unneeded and even harmful test for float
10861 - New version identification symbols; read patchlevel.h for info. The
10864 - Rolled back the API version change -- it's back to 1007!
10866 - The frozenmain.c function calls PyInitFrozenExtensions().
10868 - Added 'N' format character to Py_BuildValue -- like 'O' but doesn't
10879 ---------------------
10881 - New extension NotImplementedError, derived from RuntimeError. Not
10884 - The parser will now spit out a warning or error when -t or -tt is
10887 - The code generator now inserts extra SET_LINENO opcodes when
10888 compiling multi-line argument lists.
10890 - When comparing bound methods, use identity test on the objects, not
10894 ---------------------
10896 - Chris Herborth has redone his BeOS port; it now works on PowerPC
10900 --------
10902 - Thanks to Chris Herborth, the thread primitives now have proper Py*
10904 through some smart macros; but the source still had the old, un-Py
10908 ---------------------------
10910 - Improved support for FreeBSD/3.
10912 - Check for pthread_detach instead of pthread_create in libc.
10914 - The makesetup script now searches EXECINCLUDEPY before INCLUDEPY.
10916 - Misc/Makefile.pre.in now also looks at Setup.thread and Setup.local.
10920 -------------------
10922 - shlex.py by Eric Raymond provides a lexical analyzer class for
10923 simple shell-like syntaxes.
10925 - netrc.py by Eric Raymond provides a parser for .netrc files. (The
10928 - codeop.py is a new module that contains the compile_command()
10931 higher-level classes in code.py.
10933 - turtle.py is a new module for simple turtle graphics. I'm still
10938 -------------------------
10940 - poly.py and zmod.py have been moved to Lib/lib-old to emphasize
10945 ---------
10947 - I've added IDLE: my Integrated DeveLopment Environment for Python.
10955 - New tools by Barry Warsaw:
10962 ---------
10964 - Demo/scripts/beer.py prints the lyrics to an arithmetic drinking
10967 - Demo/tkinter/guido/optionmenu.py shows how to do an option menu in
10968 Tkinter. (By Fredrik Lundh -- not by me!)
10971 ----------------------
10973 - compileall.py now avoids recompiling .py files that haven't changed;
10974 it adds a -f option to force recompilation.
10976 - New version of xmllib.py by Sjoerd Mullender (0.2 with latest
10979 - nntplib.py: statparse() no longer lowercases the message-id.
10981 - types.py: use type(__stdin__) for FileType.
10983 - urllib.py: fix translations for filenames with "funny" characters.
10986 your subclass may stop working. A long-term solution is to provide
10989 - cgi.py: In read_multi, allow a subclass to override the class we
10996 - UserList.py: In __getslice__, use self.__class__ instead of
10999 - In SimpleHTTPServer.py, the server specified in test() should be
11005 - In CGIHTTPServer.py, the list of acceptable formats is -split-
11006 on spaces but -joined- on commas, resulting in double commas
11009 - SocketServer.py, patch by Jeff Bauer: a minor change to declare two
11013 - bdb.py: fix bomb on deleting a temporary breakpoint: there's no
11016 - getopt.py: accept a non-list sequence for the long options (request
11022 - tempfile.py: improvements to avoid security leaks.
11024 - code.py: moved compile_command() to new module codeop.py.
11026 - pickle.py: support pickle format 1.3 (binary float added). By Jim
11030 - uu.py: Move 'import sys' to top of module, as noted by Tim Peters.
11032 - imaplib.py: fix problem with some versions of IMAP4 servers that
11035 - cmp.py: use (f1, f2) as cache key instead of f1 + ' ' + f2. Noted
11039 ----------------------------
11041 - More doc strings for several modules were contributed by Chris
11044 - Fixed a bug in zlibmodule.c that could cause core dumps on
11047 - cPickle.c: new version from Jim Fulton, with Open Source copyright
11048 notice. Also, initialize self->safe_constructors early on to prevent
11051 - cStringIO.c: new version from Jim Fulton, with Open Source copyright
11054 - mpzmodule.c: fix signed character usage in mpz.mpz(stringobjecty).
11056 - readline.c: Bernard Herzog pointed out that rl_parse_and_bind
11060 - sunaudiodev.c: Barry Warsaw added more smarts to get the device and
11061 control pseudo-device, per audio(7I).
11064 ----------------
11066 - New, improved version of Barry Warsaw's Misc/python-mode.el (editing
11069 - tabnanny.py: added a -q ('quiet') option to tabnanny, which causes
11072 - freeze: when printing missing modules, also print the module they
11075 - untabify.py: patch by Detlef Lannert to implement -t option
11079 ------------------
11081 - grid_bbox(): support new Tk API: grid bbox ?column row? ?column2
11084 - _tkinter.c: RajGopal Srinivasan noted that the latest code (1.5.2a2)
11085 doesn't work when running in a non-threaded environment. He added
11089 ---------------------------
11091 - Bumped API version number to 1008 -- enough things have changed!
11093 - There's a new macro, PyThreadState_GET(), which does the same work
11098 - All symbols intended for export from a DLL or shared library are now
11107 ------------------------------
11109 - Fixed a bug in new_buffersize() in fileobject.c which could
11112 - Use PySys_WriteStderr instead of fprintf in most places.
11114 - dictobject.c: remove dead code discovered by Vladimir Marangozov.
11116 - tupleobject.c: make tuples less hungry -- an extra item was
11119 - mymath.h: Metrowerks PRO4 finally fixes the hypot snafu. (Jack
11122 - import.c: Jim Fulton fixes a reference count bug in
11125 - glmodule.c: check in the changed version after running the stubber
11126 again -- this solves the conflict with curses over the 'clear' entry
11128 eons ago, but I never regenrated glmodule.c :-( )
11130 - frameobject.c: fix reference count bug in PyFrame_New. Vladimir
11133 - stropmodule.c: add a missing DECREF in an error exit. Submitted by
11144 -------
11146 - It is now a syntax error to have a function argument without a
11149 - __file__ is now set to the .py file if it was parsed (it used to
11152 - Don't exit with a fatal error during initialization when there's a
11155 - New environment variable PYTHONOPTIMIZE can be used to set -O.
11157 - New version of python-mode.el for Emacs.
11160 ------------------------
11162 - No longer print the (confusing) error message about stack underflow
11165 - Some threading and locking bugs fixed.
11167 - When errno is zero, report "Error", not "Success".
11170 -------------
11172 - Documentation will be released separately.
11174 - Doc strings added to array and md5 modules by Chris Petrilli.
11177 -------------------------
11179 - Stop installing when a move or copy fails.
11181 - New version of the OS/2 port code by Jeff Rush.
11183 - The makesetup script handles absolute filenames better.
11185 - The 'new' module is now enabled by default in the Setup file.
11187 - I *think* I've solved the problem with the Linux build blowing up
11191 Built-in functions
11192 ------------------
11194 - The second argument to apply() can now be any sequence, not just a
11197 Built-in types
11198 --------------
11200 - Lists have a new method: L1.extend(L2) is equivalent to the common
11203 - Better error messages when a sequence is indexed with a non-integer.
11205 - Bettter error message when calling a non-callable object (include
11209 ---------------
11211 - New version of cPickle.c fixes some bugs.
11213 - pickle.py: improved instantiation error handling.
11215 - code.py: reworked quite a bit. New base class
11219 - py_compile.py: print error message and continue on syntax errors.
11222 - pyclbr.py: support submodules of packages.
11225 ---------------
11227 - StringIO.py: raise the right exception (ValueError) for attempted
11230 - re.py: fixed a bug in subn(), which caused .groups() to fail inside
11233 - The struct module has a new format 'P': void * in native mode.
11236 -------------------
11238 - Module time: Y2K robustness. 2-digit year acceptance depends on
11240 default 0. Years 00-68 mean 2000-2068, while 69-99 mean 1969-1999
11243 - os.path: normpath(".//x") should return "x", not "/x".
11245 - getpass.py: fall back on default_getpass() when sys.stdin.fileno()
11248 - tempfile.py: regenerate the template after a fork() call.
11251 --------------------
11253 - In the signal module, disable restarting interrupted system calls
11257 --------
11259 - No longer set __args__; this feature is no longer supported and can
11262 - cmd.py, pdb.py and bdb.py have been overhauled by Richard Wolff, who
11269 --------
11271 - Changes so that JPython can use it. Also fix the calibration code
11275 ------------------------------
11277 - imaplib.py: new version from Piers Lauder.
11279 - smtplib.py: change sendmail() method to accept a single string or a
11282 - poplib.py: LIST with a msg argument fixed.
11284 - urlparse.py: some optimizations for common case (http).
11286 - urllib.py: support content-length in info() for ftp protocol;
11291 ----------------------
11293 - sgmllib.py: support tags with - or . in their name.
11295 - mimetypes.py: guess_type() understands 'data' URLs.
11298 --------------------
11300 - The classes rexec.RModuleLoader and rexec.RModuleImporter no
11304 -------
11306 - When reporting an exception, store its info in sys.last_*. Also,
11309 - Added NS, EW, and NSEW constants, for grid's sticky option.
11311 - Fixed last-minute bug in 1.5.2a1 release: need to include "mytime.h".
11313 - Make bind variants without a sequence return a tuple of sequences
11316 - Add image commands to the Text widget (these are new in Tk 8.0).
11318 - Added new listbox and canvas methods: {xview,yview}_{scroll,moveto}.)
11320 - Improved the thread code (but you still can't call update() from
11323 - Fixed unnecessary references to _default_root in the new dialog
11326 - Miscellaneous problems fixed.
11330 ---------------
11332 - Call LoadLibraryEx(..., ..., LOAD_WITH_ALTERED_SEARCH_PATH) to
11335 - In debugging mode, call DebugBreak() in Py_FatalError().
11338 -----------------
11340 - Install zlib.dll in the DLLs directory instead of in the win32
11345 ----------
11347 - test_long.py: new test for long integers, by Tim Peters.
11349 - regrtest.py: improved so it can be used for other test suites as
11352 - test_strftime.py: use re to compare test results, to support legal
11356 ---------------
11358 - Four new scripts in Tools/scripts: crlf.py and lfcr.py (to
11362 - Improvements to Tools/freeze/. Each Python module is now written to
11366 line options -x and -i.
11368 - Much improved (and smaller!) version of Tools/scripts/mailerdaemon.py.
11371 ------------
11373 - New mechanism to support extensions of the type object while
11378 - Addition to the buffer API to differentiate access to bytes and
11379 8-bit characters (in anticipation of Unicode characters).
11381 - New argument parsing format t# ("text") to indicate 8-bit
11382 characters; s# simply means 8-bit bytes, for backwards compatibility.
11384 - New object type, bufferobject.c is an example and can be used to
11387 - Some support for 64-bit longs, including some MS platforms.
11389 - Many calls to fprintf(stderr, ...) have been replaced with calls to
11392 - The calling context for PyOS_Readline() has changed: it must now be
11397 - New APIs PyLong_FromVoidPtr() and PyLong_AsVoidPtr().
11399 - Renamed header file "thread.h" to "pythread.h".
11401 - The code string of code objects may now be anything that supports the
11412 -------
11414 - When searching for the library, a landmark that is a compiled module
11417 - When following symbolic links to the python executable, use a loop
11420 - Added a hack so that when you type 'quit' or 'exit' at the
11421 interpreter, you get a friendly explanation of how to press Ctrl-D (or
11422 Ctrl-Z) to exit.
11424 - New and improved Misc/python-mode.el (Python mode for Emacs).
11426 - Revert a new feature in Unix dynamic loading: for one or two
11431 ------------------------
11433 - All patches on the patch page have been integrated. (But much more
11436 - Several memory leaks plugged (e.g. the one for classes with a
11439 - Removed the only use of calloc(). This triggered an obscure bug on
11442 - Fix a peculiar bug that would allow "import sys.time" to succeed
11443 (believing the built-in time module to be a part of the sys package).
11445 - Fix a bug in the overflow checking when converting a Python long to
11446 a C long (failed to convert -2147483648L, and some other cases).
11449 -------------
11451 - Doc strings have been added to many extension modules: __builtin__,
11457 - The documentation has been expanded and the formatting improved.
11461 - Added Misc/Porting -- a mini-FAQ on porting to a new platform.
11464 -------------------------
11466 - The BeOS port is now integrated. Courtesy Chris Herborth.
11468 - Symbol files for FreeBSD 2.x and 3.x have been contributed
11469 (Lib/plat-freebsd[23]/*).
11471 - Support HPUX 10.20 DCE threads.
11473 - Finally fixed the configure script so that (on SGI) if -OPT:Olimit=0
11474 works, it won't also use -Olimit 1500 (which gives a warning for every
11477 - The makesetup script now understands absolute pathnames ending in .o
11478 in the module -- it assumes it's a file for which we have no source.
11480 - Other miscellaneous improvements to the configure script and
11483 - The test suite now uses a different sound sample.
11485 Built-in functions
11486 ------------------
11488 - Better checks for invalid input to int(), long(), string.atoi(),
11492 - Changes to map() and filter() to use the length of a sequence only
11493 as a hint -- if an IndexError happens earlier, take that. (Formerly,
11496 - Experimental feature in getattr(): a third argument can specify a
11499 - Implement round() slightly different, so that for negative ndigits
11502 - The open() function now adds the filename to the exception when it
11505 Built-in exceptions
11506 -------------------
11508 - New standard exceptions EnvironmentError and PosixError.
11512 The built-in function open() and most os/posix functions that take a
11515 Built-in types
11516 --------------
11518 - List objects now have an experimental pop() method; l.pop() returns
11524 - Changes to comparisons: numbers are now smaller than any other type.
11531 - Instance methods may now have other callable objects than just
11536 - Assignment to __name__, __dict__ or __bases__ of a class object is
11539 recomputed after such assignments (but not for derived classes :-( ).
11541 - Allow assignment to some attributes of function objects: func_code,
11546 ---------------
11548 - New tests (in Lib/test): reperf.py (regular expression benchmark),
11552 - Generalized test/regrtest.py so that it is useful for testing other
11555 - The ihooks.py module now understands package imports.
11557 - In code.py, add a class that subsumes Fredrik Lundh's
11560 - In rlcompleter.py, in completer(), return None instead of raising an
11563 - Fixed the marshal module to test for certain common kinds of invalid
11566 - In the operator module, add an alias (now the preferred name)
11570 ---------------
11572 - In the string and strop modules, in the replace() function, treat an
11575 - Some speedups to re.py, especially the string substitution and split
11579 - In cStringIO, add better argument type checking and support the
11582 - In the struct module, unsigned 1-2 byte sized formats no longer
11586 ----------------------
11588 - In whrandom.py, added new method and function randrange(), same as
11594 - Add some semi-thread-safety to random.gauss() (it used to be able to
11598 - Some restructuring and generalization done to cmd.py.
11600 - Major upgrade to ConfigParser.py; converted to using 're', added new
11604 - In getpass.py, don't use raw_input() to ask for the password -- we
11606 interrupts (the try-finally already does all necessary cleanup).
11609 -------------------
11611 - New functions in os.py: makedirs(), removedirs(), renames(). New
11617 - Changes to the 'os.path' submodule of os.py: added getsize(),
11618 getmtime(), getatime() -- these fetch the most popular items from the
11621 - In the time module, add strptime(), if it exists. (This parses a
11622 time according to a format -- the inverse of strftime().) Also,
11623 remove the call to mktime() from strftime() -- it messed up the
11624 formatting of some non-local times.
11626 - In the socket module, added a new function gethostbyname_ex().
11631 --------------------
11633 - Some fixes to gzip.py. In particular, the readlines() method now
11638 - In whichdb.py, support byte-swapped dbhash (bsddb) files.
11640 - In anydbm.py, look at the type of an existing database to determine
11645 -------------
11647 - In the termios module, in tcsetattr(), initialize the structure vy
11650 - Added some of the "wait status inspection" macros as functions to
11654 - In the syslog module, make the default facility more intuitive
11658 --------
11660 - In pdb.py, support for setting breaks on files/modules that haven't
11664 ------------------------------
11666 - Changes in urllib.py; sped up unquote() and quote(). Fixed an
11667 obscure bug in quote_plus(). Added urlencode(dict) -- convenience
11671 Use -t to run the self-test. Made the proxy code work again.
11673 - In cgi.py, treat "HEAD" the same as "GET", so that CGI scripts don't
11675 default content-type to application/x-www-form-urlencoded. Also, in
11677 string from environ['QUERY_STRING'] or sys.argv[1] -- ignore an
11680 - The smtplib.py module now supports ESMTP and has improved standard
11683 - Improved imaplib.py.
11685 - Fixed UDP support in SocketServer.py (it never worked).
11687 - Fixed a small bug in CGIHTTPServer.py.
11690 ----------------------
11692 - In rfc822.py, add a new class AddressList. Also support a new
11698 - In sgmllib.py, restore the call to report_unbalanced() that was lost
11700 instructions >, allow . and - in entity names, and allow \r\n as line
11703 - Some restructuring and generalization done to multifile.py; support
11707 --------------------
11709 - Improvements to rexec.py: package support; support a (minimal)
11714 -------
11716 - On Unix, Tkinter can now safely be used from a multi-threaded
11723 - An interactive interpreter that uses readline and Tkinter no longer
11726 - Even if readline is not used, Tk windows created in an interactive
11730 - New demos in Demo/tkinter/guido/: brownian.py, redemo.py, switch.py.
11732 - No longer register Tcl_finalize() as a low-level exit handler. It
11735 - Allow binding of Tcl commands (given as a string).
11737 - Some minor speedups; replace explicitly coded getint() with int() in
11740 - In FileDialog.py, remember the directory of the selected file, if
11743 - Change the names of all methods in the Wm class: they are now
11747 - Add a new method of interpreter objects, interpaddr(). This returns
11755 ---------------
11757 - Don't insist on proper case for module source files if the filename
11763 ---------------
11765 - os.environ is now all uppercase, but accesses are case insensitive,
11769 - Removed samefile(), sameopenfile(), samestat() from os.path (aka
11770 ntpath.py) -- these cannot be made to work reliably (at least I
11773 - Fixed os.pipe() so that it returns file descriptors acceptable to
11777 - Added a table of WSA error codes to socket.py.
11779 - In the select module, put the (huge) file descriptor arrays on the
11782 - The getpass module now raises KeyboardInterrupt when it sees ^C.
11784 - In mailbox.py, fix tell/seek when using files opened in text mode.
11786 - In rfc822.py, fix tell/seek when using files opened in text mode.
11788 - In the msvcrt extension module, release the interpreter lock for
11794 -----------------
11796 - The registry key used is now "1.5" instead of "1.5.x" -- so future
11801 -------------
11803 - Several improvements to freeze specifically for Windows.
11806 -----------------------
11808 - The VC++ project files and the WISE installer have been moved to the
11812 - New project files for Windows 3.1 port by Jim Ahlstrom.
11814 - Got rid of the obsolete subdirectory PC/setup_nt/.
11816 - The projects now use distinct filenames for the .exe, .dll, .lib and
11823 - The installer now installs more files (e.g. config.h). The idea is
11828 ---------------
11830 - New script nm2def.py by Marc-Andre Lemburg, to construct
11833 - New tool ndiff.py: Tim Peters' text diffing tool.
11835 - Various and sundry improvements to the freeze script.
11837 - The script texi2html.py (which was part of the Doc tree but is no
11840 - Some generalizations in the webchecker code. There's now a
11843 - The ftpmirror.py script now handles symbolic links properly, and
11846 - The 1.5.1 tabnanny.py suffers an assert error if fed a script whose
11850 ------------
11852 - Added missing prototypes for PyEval_CallFunction() and
11855 - New macro PyList_SET_ITEM().
11857 - New macros to access object members for PyFunction, PyCFunction
11860 - New APIs PyImport_AppendInittab() and PyImport_ExtendInittab() to
11861 dynamically add one or many entries to the table of built-in modules.
11863 - New macro Py_InitModule3(name, methods, doc) which calls
11864 Py_InitModule4() with appropriate arguments. (The -4 variant requires
11867 - New APIs PySys_WriteStdout() and PySys_WriteStderr() to write to
11868 sys.stdout or sys.stderr using a printf-like interface. (Used in
11871 - New APIs for conversion between Python longs and C 'long long' if
11874 - PySequence_In() is now called PySequence_Contains().
11878 - PyDict_GetItem() and PyDict_GetItemString() are changed so that they
11879 *never* raise an exception -- (even if the hash() fails, simply clear
11883 - Changes to PySequence_Tuple() and PySequence_List() to use the
11884 length of a sequence only as a hint -- if an IndexError happens
11887 - Reformatted abstract.c to give it a more familiar "look" and fixed
11890 - Add NULL pointer checks to all calls of a C function through a type
11893 - The code that initializes sys.path now calls Py_GetPythonHome()
11899 - Fixed a very old bug in the parsing of "O?" format specifiers.
11913 -------
11915 - The documentation is now unbundled. It has also been extensively
11920 course, the unbundled documentation sources still released -- just not
11923 - All bugs noted on the errors page (and many unnoted) are fixed. All
11926 - No longer a core dump when attempting to print (or repr(), or str())
11934 -------------
11936 - The raise statement can now be used without arguments, to re-raise
11942 --------------------------
11944 - The implementation of import has changed to use a mutex (when
11949 - Rewrote the finalization code almost completely, to be much more
11951 will now generally be able to reference built-in names such as None
11954 - Case-insensitive platforms such as Mac and Windows require the case
11958 - The code for figuring out the default path now distinguishes between
11963 ------------------------
11965 - The tokenizer can now warn you when your source code mixes tabs and
11967 worth in spaces. Use "python -t" or "python -v" to enable this
11968 option. Use "python -tt" to turn the warnings into errors. (See also
11971 - Return unsigned characters from tok_nextc(), so '\377' isn't
11974 - Fixed two pernicious bugs in the tokenizer that only affected AIX.
11980 ------------------------------------
11982 - There's a new version of Misc/python-mode.el (the Emacs mode for
11986 - There are two new tools in Tools/scripts: tabnanny.py and
11991 - Some new demo programs:
11993 Demo/tkinter/guido/paint.py -- Dave Mitchell
11994 Demo/sockets/unixserver.py -- Piet van Oostrum
11997 - Much better freeze support. The freeze script can now freeze
12002 - Version 1.0 of the faq wizard is included (only very small changes
12005 - New feature for the ftpmirror script: when removing local files
12006 (i.e., only when -r is used), do a recursive delete.
12009 -------------------------------
12011 - Get rid of the check for -linet -- recent Sequent Dynix systems don't
12014 - Some changes because gcc on SGI doesn't support '-all'.
12016 - Changed the build rules to use $(LIBRARY) instead of
12017 -L.. -lpython$(VERSION)
12020 - Fix the bug where the '# dgux is broken' comment in the Makefile
12023 - Changes for AIX: install the python.exp file; properly use
12027 - Deleted some Makefile targets only used by the (long obsolete)
12031 -----------------
12033 - Performance and threading improvements to the socket and bsddb
12036 - Added operator.__not__ and operator.not_.
12038 - In the thread module, when a thread exits due to an unhandled
12042 - Fixed a number of small bugs in the cPickle module.
12044 - Changed find() and rfind() in the strop module so that
12045 find("x","",2) returns -1, matching the implementation in string.py.
12047 - In the time module, be more careful with the result of ctime(), and
12050 - Doc strings contributed by Mitch Chapman to the termios, pwd, gdbm
12053 - Added the LOG_SYSLOG constant to the syslog module, if defined.
12056 ------------------------
12058 - All standard library modules have been converted to an indentation
12059 style using either only tabs or only spaces -- never a mixture -- if
12061 that the new -t option (see above) won't complain about standard
12064 - New standard library modules:
12066 threading -- GvR and the thread-sig
12067 Java style thread objects -- USE THIS!!!
12069 getpass -- Piers Lauder
12073 imaplib -- Piers Lauder
12076 poplib -- David Ascher, Piers Lauder
12079 smtplib -- Dragon De Monsyne
12082 - Some obsolete modules moved to a separate directory (Lib/lib-old)
12095 - New version of the PCRE code (Perl Compatible Regular Expressions --
12100 - Interface change in the copy module: a __deepcopy__ method is now
12103 - Feature change in the tokenize module: differentiate between NEWLINE
12107 - Several bugfixes to the urllib module. It is now truly thread-safe,
12113 - New version of the xmllib module (this time with a test suite!) by
12116 - Added debugging code to the telnetlib module, to be able to trace
12119 - In the rfc822 module, added support for deleting a header (still no
12125 - The normpath() function in the dospath and ntpath modules no longer
12126 does case normalization -- for that, use the separate function
12131 - New command supported by the ftplib module: rmd(); also fixed some
12134 - The profile module now uses a different timer function by default --
12138 - The tempfile module now recovers when os.getcwd() raises an
12141 - Fixed some bugs in the random module; gauss() was subtly wrong, and
12145 - Better default seed in the whrandom module, courtesy Andrew Kuchling.
12147 - Fix slow close() in shelve module.
12149 - The Unix mailbox class in the mailbox module is now more robust when
12154 - Added a rmtree() function to the copy module.
12156 - Fixed several typos in the pickle module. Also fixed problems when
12159 - Added docstrings and fixed a typo in the py_compile and compileall
12165 - Some performance tweaks by Jeremy Hylton to the gzip module.
12167 - Fixed a bug in the merge order of dictionaries in the ConfigParser
12170 - In the multifile module, support the optional second parameter to
12173 - Several fixes to the gopherlib module by Lars Marius Garshol. Also,
12176 - Fixed a tiny bug in format_exception() in the traceback module.
12180 - The httplib module is more robust when servers send a short response
12181 -- courtesy Tim O'Malley.
12184 -------------------
12186 - Various typos and bugs fixed.
12188 - New module Tkdnd implements a drag-and-drop protocol (within one
12191 - The event_*() widget methods have been restructured slightly -- they
12194 - The interfaces for the bind*() and unbind() widget methods have been
12201 - Variable objects now have trace methods to interface to Tcl's
12204 - Image objects now have an optional keyword argument, 'master', to
12208 - There's a new global call, Tkinter.NoDefaultRoot(), which disables
12214 - The 'exit' command is deleted from the Tcl interpreter, since it
12218 - Tcl_Finalize() is now registered as a Python low-level exit handle,
12222 ----------------
12224 - New function PyThreadState_GetDict() returns a per-thread dictionary
12225 intended for storing thread-local global variables.
12227 - New functions Py_ReprEnter() and Py_ReprLeave() use the per-thread
12231 - New function PyObject_Not(x) calculates (not x) according to Python's
12234 - New function _PyModule_Clear(), which clears a module's dictionary
12239 - New function PyImport_ExecCodeModuleEx(), which extends
12243 - New functions Py_GetPythonHome() and Py_SetPythonHome(), intended to
12246 - New global flag Py_FrozenFlag is set when this is a "frozen" Python
12250 - New global flag Py_TabcheckFlag is incremented by the -t option and
12255 -----------------------------------------
12257 - Improved the error message when an attribute of an attribute-less
12258 object is requested -- include the name of the attribute and the type
12261 - Sped up int(), long(), float() a bit.
12263 - Fixed a bug in list.sort() that would occasionally dump core.
12265 - Fixed a bug in PyNumber_Power() that caused numeric arrays to fail
12268 - Fixed a number of bugs in the file reading code, at least one of
12273 - Performance hack by Vladimir Marangozov for stack frame creation.
12275 - Make sure setvbuf() isn't used unless HAVE_SETVBUF is defined.
12278 -------------
12280 - The .lib files are now part of the distribution; they are collected
12283 - The extension modules (.pyd files) are now collected in a separate
12286 - The case of a module's filename must now match the case of the
12288 experimental feature -- if it turns out to break in too many
12290 It can be disabled on a per-case basis by setting the environment
12305 - Newly documentated module: BaseHTTPServer.py, thanks to Greg Stein.
12307 - Added doc strings to string.py, stropmodule.c, structmodule.c,
12310 - Many nits fixed in the manuals, thanks to Fred Drake and many others
12318 - New module: telnetlib.py (a simple telnet client library).
12320 - New tool: Tools/versioncheck/, by Jack Jansen.
12322 - Ported zlibmodule.c and bsddbmodule.c to NT; The project file for MS
12326 - Many small changes again to Tkinter.py -- mostly bugfixes and adding
12330 - The re module and its documentation are up to date with the latest
12331 version released to the string-sig (Dec. 22).
12333 - Stop test_grp.py from failing when the /etc/group file is empty
12336 - Fix bug in integer conversion (mystrtoul.c) that caused
12339 - The VC++ 4.2 project file should be complete again.
12341 - In tempfile.py, use a better template on NT, and add a new optional
12346 - Fixed some bugs in the FAQ wizard, and converted it to use re
12349 - Fixed a mysteriously undetected error in dlmodule.c (it was using a
12352 - Fixed bug in import.c which wasn't using the new "dos-8x3" name yet.
12354 - Hopefully harmless changes to the build process to support shared
12358 - Fixed a bug in the new format string error checking in getargs.c.
12360 - A simple fix for infinite recursion when printing __builtins__:
12364 - Fixed lib-tk/SimpleDialog.py to keep the dialog visible even if the
12367 - Fixed the two most annoying problems with ftp URLs in
12379 - Fixed a bug in cPickle.c that caused it to crash right away because
12382 - Changes in pickle.py and cPickle.c: when unpickling an instance of a
12392 - Locale support in he "re" (Perl regular expressions) module. Use
12393 the flag re.L (or re.LOCALE) to enable locale-specific matching
12394 rules for \w and \b. The in-line syntax for this flag is (?L).
12396 - The built-in function isinstance(x, y) now also succeeds when y is
12399 - repr() and str() of class and instance objects now reflect the
12402 - Module "ni" has been removed. (If you really need it, it's been
12408 - The thread module is now automatically included when threads are
12412 - New command line option "-x" to skip the first line of the script;
12413 handy to make executable scripts on non-Unix platforms.
12415 - In importdl.c, add the RTLD_GLOBAL to the dlopen() flags. I
12419 - The Windows installer now installs in the "Program Files" folder on
12422 - The Windows configuration adds a new main program, "pythonw", and
12430 - Lots of improvements to emacs-mode.el again. See Barry's web page:
12433 - Lots of improvements and additions to the library reference manual;
12436 - Doc strings for the following modules: rfc822.py, posixpath.py,
12439 - Some more regression testing.
12441 - An optional 4th (maxsplit) argument to strop.replace().
12443 - Fixed handling of maxsplit in string.splitfields().
12445 - Tweaked os.environ so it can be pickled and copied.
12447 - The portability problems caused by indented preprocessor commands
12450 - In random.py, added Pareto and Weibull distributions.
12452 - The crypt module is now disabled in Modules/Setup.in by default; it
12456 - Some improvements to the _tkinter build line suggested by Case Roole.
12458 - A full suite of platform specific files for NetBSD 1.x, submitted by
12461 - New Solaris specific header STROPTS.py.
12463 - Moved a confusing occurrence of *shared* from the comments in
12467 - Changed the default mode for directories to be group-writable when
12470 - Check for pthread support in "-l_r" for FreeBSD/NetBSD, and support
12473 - Support FreeBSD and NetBSD in posixfile.py.
12475 - Support for the "event" command, new in Tk 4.2. By Case Roole.
12477 - Add Tix_SafeInit() support to tkappinit.c.
12479 - Various bugs fixed in "re.py" and "pcre.c".
12481 - Fixed a bug (broken use of the syntax table) in the old "regexpr.c".
12483 - In frozenmain.c, stdin is made unbuffered too when PYTHONUNBUFFERED
12486 - Provide default blocksize for retrbinary in ftplib.py (Skip
12489 - In NT, pick the username up from different places in user.py (Jeff
12492 - Patch to urlparse.urljoin() for ".." and "..#1", Marc Lemburg.
12494 - Many small improvements to Jeff Rush' OS/2 support.
12496 - ospath.py is gone; it's been obsolete for so many years now...
12498 - The reference manual is now set up to prepare better HTML (still
12501 - Add special handling to /Tools/freeze for Python modules that are
12504 - Tools/faqwiz 0.8.3 -- add an option to suppress URL processing
12507 - Added ConfigParser.py, a generic parser for sectioned configuration
12510 - In _localemodule.c, LC_MESSAGES is not always defined; put it
12513 - Typo in resource.c: RUSAGE_CHILDERN -> RUSAGE_CHILDREN.
12515 - Demo/scripts/newslist.py: Fix the way the version number is gotten
12518 - PyArg_Parse[Tuple] now explicitly check for bad characters at the
12521 - Revamped PC/example_nt to support VC++ 5.x.
12523 - <listobject>.sort() now uses a modified quicksort by Raymund Galvin,
12527 - Added "uue" as an alias for "uuencode" to mimetools.py. (Hm, the
12529 :-( ).
12531 - pickle.py requires integers in text mode to be in decimal notation
12535 - In string.atof(), don't fail when the "re" module is unavailable.
12539 - A bunch of small fixes and improvements to Tkinter.py.
12541 - Fixed a buffer overrun in PC/getpathp.c.
12550 - The Windows NT/95 installer now includes full HTML of all manuals.
12557 - sys.ps1 and sys.ps2 can now arbitrary objects; their str() is
12560 - The reference manual is brought up to date (more or less -- it still
12563 - The icons used by latex2html are now included in the Doc
12568 - For all you would-be proselytizers out there: a new version of
12574 - A new version of the Python mode for Emacs is included as
12575 Misc/python-mode.el. There are too many new features to list here.
12578 - New module fileinput makes iterating over the lines of a list of
12582 - There's full OS/2 support, courtesy Jeff Rush. To build the OS/2
12587 - On Linux, the configure script now uses '-Xlinker -export-dynamic'
12588 instead of '-rdynamic' to link the main program so that it exports its
12593 - Some Tkinter resstructuring: the geometry methods that apply to a
12602 - New, RFC-822 conformant parsing of email addresses and address lists
12605 - New, revamped tkappinit.c with support for popular packages (PIL,
12609 using the cool line-breaking feature of most Bourne shells.
12611 - New socket method connect_ex() returns the error code from connect()
12615 - New "locale" module with (still experimental) interface to the
12623 "C") after locale-changing calls.) See the library manual. (Alas, the
12627 - Memory leak plugged in Py_BuildValue when building a dictionary.
12629 - Shared modules can now live inside packages (hierarchical module
12632 - Improved policy for __builtins__: this is a module in __main__ and a
12635 - Python no longer catches SIGHUP and SIGTERM by default. This was
12640 - New Python/C API PyNumber_CoerceEx() does not return an exception
12643 rather than return false as in Python 1.4 -- it once again will return
12646 - The errno module is changed again -- the table of error messages
12650 - New module xmllib, to parse XML files. By Sjoerd Mullender.
12652 - New C API PyOS_AfterFork() is called after fork() in posixmodule.c.
12657 - Fixed most occurrences of fatal errors due to missing thread state.
12659 - For vgrind (a flexible source pretty printer) fans, there's a simple
12662 - Fixed memory leak in exec statement.
12664 - The test.pystone module has a new function, pystones(loops=LOOPS),
12668 - Package directories now *require* the presence of an __init__.py (or
12673 - Fixed some strange exceptions in __del__ methods in library modules
12674 (e.g. urllib). This happens because the built-in names are already
12678 - The table of built-in module initializers is replaced by a pointer
12685 - The warning about a thread still having a frame now only happens in
12688 - Change the signal finalization so that it also resets the signal
12692 - New version of tokenize.py (by Ka-Ping Yee) recognizes raw string
12695 - The copy module now also uses __dict__.update(state) instead of
12699 - New module reconvert translates old-style (regex module) regular
12700 expressions to new-style (re module, Perl-style) regular expressions.
12702 - Most modules that used to use the regex module now use the re
12704 Perl-style regular expressions.
12706 - The (very old, backwards compatibility) regexp.py module has been
12709 - Restricted execution (rexec): added the pcre module (support for the
12712 - New version of Jim Fulton's CObject object type, adds
12715 - Some patches to Lee Busby's fpectl mods that accidentally didn't
12718 - In the string module, add an optional 4th argument to count(),
12721 - Patch for the nntplib module by Charles Waldman to add optional user
12725 - The str() function for class objects now returns
12728 - The parsing of \xXX escapes no longer relies on sscanf().
12730 - The "sharedmodules" subdirectory of the installation is renamed to
12731 "lib-dynload". (You may have to edit your Modules/Setup file to fix
12734 - Fixed Don Beaudry's mess-up with the OPT test in the configure
12739 - Fixed Barry's mess-up with {}.get(), and added test cases for it.
12741 - Shared libraries didn't quite work under AIX because of the change
12752 - faqwiz.py: version 0.8; Recognize https:// as URL; <html>...</html>
12756 - nntplib.py: Fixed some bugs reported by Lars Wirzenius (to Debian)
12760 - struct module: ignore most whitespace in format strings.
12762 - urllib.py: close the socket and temp file in URLopener.retrieve() so
12765 - All standard exceptions are now classes by default; use -X to make
12768 - There's a new standard exception hierarchy, defined in the standard
12774 - Three new C API functions:
12776 - int PyErr_GivenExceptionMatches(obj1, obj2)
12781 - int PyErr_ExceptionMatches(obj)
12787 - void PyErr_NormalizeException(typeptr, valptr, tbptr)
12800 - Another new C API function: PyErr_NewException() creates a new
12801 exception class derived from Exception; when -X is given, it creates a
12804 - core interpreter: remove the distinction between tuple and list
12809 - classes: Allow assignments to an instance's __dict__ or __class__,
12810 so you can change ivars (including shared ivars -- shock horror) and
12811 change classes dynamically. Also make the check on read-only
12812 attributes of classes less draconic -- only the specials names
12816 - Two new built-in functions: issubclass() and isinstance(). Both
12823 - configure: Added configuration tests for presence of alarm(),
12826 - Doc/Makefile: changed latex2html targets.
12828 - classes: Reverse the search order for the Don Beaudry hook so that
12831 - Changed the checks made in Py_Initialize() and Py_Finalize(). It is
12838 - Completely disable the declarations for malloc(), realloc() and
12843 - *Before* (instead of after) signalmodule.o is added, remove both
12847 - Added reop to PC/config.c
12849 - configure: Decided to use -Aa -D_HPUX_SOURCE on HP-UX platforms.
12850 Removed outdated HP-UX comments from README. Added Cray T3E comments.
12852 - Various renames of statically defined functions that had name
12856 - urllib.py: Interpret three slashes in file: URL as local file (for
12859 - copy.py: Make sure the objects returned by __getinitargs__() are
12865 - Added definition of AR to toplevel Makefile. Renamed @buildno temp
12868 - Moved Include/assert.h to Parser/assert.h, which seems to be the
12871 - Tweaked the dictionary lookup code again for some more speed
12874 - NT build: Changed the way python15.lib is included in the other
12878 - regrtest.py: Change default verbosity so that there are only three
12879 levels left: -q, default and -v. In default mode, the name of each
12880 test is now printed. -v is the same as the old -vv. -q is more quiet
12883 - Removed the old FAQ from the distribution. You now have to get it
12886 - Removed the PC/make_nt.in file from the distribution; it is no
12889 - Changed the build sequence so that shared modules are built last.
12892 - Improved test for GNU MP v1 in mpzmodule.c
12894 - fileobject.c: ftell() on Linux discards all buffered data; changed
12897 - configure.in, configure, importdl.c: NeXT sharedlib fixes
12899 - tupleobject.c: PyTuple_SetItem asserts refcnt==1
12901 - resource.c: Different strategy regarding whether to declare
12902 getrusage() and getpagesize() -- #ifdef doesn't work, Linux has
12906 - importdl.c, configure*: set sharedlib extensions properly for NeXT
12908 - configure*, Makefile.in, Modules/Makefile.pre.in: AIX shared libraries
12911 - reopmodule.c, regexmodule.c, regexpr.c, zlibmodule.c: needed casts
12914 - _tkinter.c: removed buggy mac #ifndef
12916 - Doc: various Mac documentation changes, added docs for 'ic' module
12918 - PC/make_nt.in: deleted
12920 - test_time.py, test_strftime.py: tweaks to catch %Z (which may return
12923 - test_rotor.py: print b -> print `b`
12925 - Tkinter.py: (tagOrId) -> (tagOrId,)
12927 - Tkinter.py: the Tk class now also has a configure() method and
12930 - dict.get(key[, default]) returns dict[key] if it exists, or default
12935 - Tools/webchecker/: some small changes to webchecker.py; added
12938 - Dictionary objects now have a get() method (also in UserDict.py).
12942 - Tools/scripts/logmerge.py: print the author, too.
12944 - Changes to import: support for "import a.b.c" is now built in. See
12949 changed to match this -- it is simply declared obsolete (while at the
12950 same time, it is documented...:-( ).
12955 - More changes to import: the site.py module is now imported by
12956 default when Python is initialized; use -S to disable it. The site.py
12957 module extends the path with several more directories: site-packages
12958 inside the lib/python1.5/ directory, site-python in the lib/
12964 - Changes to standard library subdirectory names: those subdirectories
12966 e.g. lib-tk, lib-stdwin, plat-win, plat-linux2, plat-sunos5, dos-8x3.
12967 The test suite is now a package -- to run a test, you must now use
12970 - A completely new re.py module is provided (thanks to Andrew
12974 module and underlying parser and engine are still present -- while
12978 - The posix module now has a strerror() function which translates an
12981 - The emacs.py module (which was long obsolete) has been removed.
12983 - The universal makefile Misc/Makefile.pre.in now features an
12985 $exec_prefix/lib/python$VERSION/site-packages/.
12987 - The install-sh script is installed with the other configuration
12990 - It turns out whatsound.py and sndhdr.py were identical modules.
12995 - Class objects have a new attribute, __module__, giving the name of
12999 - Many extension modules no longer issue a fatal error when their
13004 - Most extension modules now raise class-based exceptions (except when
13005 -X is used).
13007 - Subtle changes to PyEval_{Save,Restore}Thread(): always swap the
13008 thread state -- just don't manipulate the lock if it isn't there.
13010 - Fixed a bug in Python/getopt.c that made it do the wrong thing when
13011 an option was a single '-'. Thanks to Andrew Kuchling.
13013 - New module mimetypes.py will guess a MIME type from a filename's
13016 - Windows: the DLL version is now settable via a resource rather than
13020 - urllib.py is now threadsafe -- it now uses re instead of regex, and
13023 - Many other library modules that used to use
13024 sys.exc_{type,value,traceback} are now more thread-safe by virtue of
13027 - The functions in popen2 have an optional buffer size parameter.
13031 - Alas, the thread support for _tkinter released with 1.5a3 didn't
13034 must compile with a -I option pointing to the standard Tcl source
13037 - The errno extension module adds two tables: errorcode maps errno
13040 posix.strerror() now does the same, but alla...) (Marc-Andre Lemburg)
13042 - The readline extension module now provides some interfaces to
13047 built-ins and globals in __main__; when completing
13059 - The traceback.py module has a new function tb_lineno() by Marc-Andre
13062 right linenumber when -O is used. Rather than guessing whether -O is
13065 - Fixed Demo/tkinter/matt/canvas-moving-or-creating.py: change bind()
13068 - The pystone script is now a standard library module. Example use:
13071 - The import of the readline module in interactive mode is now also
13072 attempted when -i is specified. (Yes, I know, giving in to Marc-Andre
13073 Lemburg, who asked for this. :-)
13075 - rfc822.py: Entirely rewritten parseaddr() function by Sjoerd
13080 - pprint.py: correctly emit trailing "," in singleton tuples.
13082 - _tkinter.c: export names for its type objects, TkappType and
13085 - pickle.py: use __module__ when defined; fix a particularly hard to
13095 - config.h is now installed (at last) in
13101 - The imp module now supports parts of the functionality to implement
13104 added for those functions in the built-in imp module that are still
13109 - The % operator on string objects now allows arbitrary nested parens
13112 - Reverse the order in which Setup and Setup.local are passed to the
13116 modules need non-standard options.)
13118 - Added PyImport_ImportModuleEx(name, globals, locals, fromlist); this
13123 - The 'p' format in the struct extension module alloded to above is
13126 - The types.py module now uses try-except in a few places to make it
13132 - In urllib.py: added separate administration of temporary files
13135 the user had passed a non-temp file into it. Also, in basejoin(),
13139 - The Windows build procedure and project files are now based on
13144 - Added casts and changed some return types in regexpr.c to avoid
13147 - The AIX build tools for shared libraries now supports VPATH. (Donn
13150 - By default, disable the "portable" multimedia modules audioop,
13151 imageop, and rgbimg, since they don't work on 64-bit platforms.
13153 - Fixed a nasty bug in cStringIO.c when code was actually using the
13157 - For those who think they need it, there's a "user.py" module. This
13158 is *not* imported by default, but can be imported to run user-specific
13161 - Various speedups suggested by Fredrik Lundh, Marc-Andre Lemburg,
13164 - Added os.altsep; this is '/' on DOS/Windows, and None on systems
13167 - os.py: Write out the dynamic OS choice, to avoid exec statements.
13171 - The obsolete exception AccessError is now really gone.
13173 - Tools/faqwiz/: New installation instructions show how to maintain
13180 - Documentation for the relatively new modules "keyword" and "symbol"
13184 - In module bisect.py, but functions have two optional argument 'lo'
13188 - In ftplib.py, changed most methods to return their status (even when
13191 - main() now calls setlocale(LC_ALL, ""), if setlocale() and
13194 - Changes to configure.in, the configure script, and both
13206 --------
13208 - If you are using the setuid script C wrapper (Misc/setuid-prog.c),
13212 -------------
13214 - Because of various (small) incompatible changes in the Python
13218 - The default module search path is now much saner. Both on Unix and
13226 - A new version of python-mode.el for Emacs has been included. Also,
13227 a new file ccpy-style.el has been added to configure Emacs cc-mode for
13230 - On Unix, when using sys.argv[0] to insert the script directory in
13238 - It is now recommended to use ``#!/usr/bin/env python'' instead of
13241 is more portable than that of /usr/local/bin/python -- scripts almost
13243 non-standard place. Note that this doesn't work for CGI scripts since
13247 - The silly -s command line option and the corresponding
13251 - Most problems on 64-bit platforms should now be fixed. Andrew
13255 - Fixed a bug where multiple anonymous tuple arguments would be mixed up
13260 - The hacks that the dictionary implementation used to speed up
13265 - All traces of support for the long dead access statement have been
13268 - Plugged the two-byte memory leak in the tokenizer when reading an
13271 - There's a -O option to the interpreter that removes SET_LINENO
13277 (pdb) can't set breakpoints on lines in -O mode. The traceback module
13282 consider the -O option a "teaser". Without -O, the assert statement
13284 is false, the assertion is not checked. __debug__ is a built-in
13285 variable whose value is initialized to track the -O flag (it's true
13286 iff -O is not specified). With -O, no code is generated for assert
13292 -----------
13294 - It's much faster (almost twice for pystone.py -- see
13297 - Some speedup by using separate free lists for method objects (both
13300 - Big speedup by allocating frame objects with a single malloc() call.
13304 - Significant speedup by inlining some common opcodes for common operand
13305 types (e.g. i+i, i-i, and list[i]). Fredrik Lundh.
13307 - Small speedup by reordering the method tables of some common
13310 - Big optimization to the read() method of file objects. A read()
13318 -------------
13320 - Many new pieces of library documentation were contributed, mostly by
13326 pressure to document their own contributed modules :-). Note that
13327 printing the documentation now kills fewer trees -- the margins have
13330 - I have started documenting the Python/C API. Unfortunately this project
13335 - The posix module (and hence os.py) now has doc strings! Thanks to Neil
13341 ----------------
13343 - Private variables with leading double underscore are now a permanent
13348 - There's new string literal syntax for "raw strings". Prefixing a string
13350 string; for example, r'\n' is a two-character string consisting of a
13355 included in the string; for example, r'\'' is a two-character string
13360 - There's a simple assert statement, and a new exception
13367 - The raise statement has a new feature: when using "raise SomeClass,
13373 - Duplicate keyword arguments are now detected at compile time;
13377 Changes to built-in features
13378 ----------------------------
13380 - There's a new exception FloatingPointError (used only by Lee Busby's
13383 - The obsolete exception ConflictError (presumably used by the long
13386 - There's a new function sys.exc_info() which returns the tuple
13387 (sys.exc_type, sys.exc_value, sys.exc_traceback) in a thread-safe way.
13389 - There's a new variable sys.executable, pointing to the executable file
13392 - The sort() methods for lists no longer uses the C library qsort(); I
13398 - The semantics of comparing two dictionaries have changed, to make
13406 - The semantics of try-except have changed subtly so that calling a
13411 -- the sys.exc_* variables are restored to their previous value when
13414 - There's a new "buffer" interface. Certain objects (e.g. strings and
13422 - String interning: dictionary lookups are faster when the lookup
13426 automatically interned, and there's a new built-in function intern(s)
13432 - Dictionary objects have several new methods; clear() and copy() have
13438 - The intrinsic function dir() is much smarter; it looks in __dict__,
13441 - The intrinsic functions int(), long() and float() can now take a
13446 - When a module is deleted, its globals are now deleted in two phases.
13453 - It is no longer an error for a function to be called without a
13454 global variable __builtins__ -- an empty directory will be provided
13457 - Guido's corollary to the "Don Beaudry hook": it is now possible to
13461 class. Jim Fulton will love it -- it also works with instances of his
13467 - Another change is that the Don Beaudry hook is now invoked when
13472 - New optional parameter to the readlines() method of file objects.
13478 - Complex numbers no longer have the ".conj" pseudo attribute; use
13479 z.conjugate() instead, or complex(z.real, -z.imag). Complex numbers
13482 - The complex() function now looks for a __complex__() method on class
13485 - Long integers now support arbitrary shift counts, so you can now
13489 - The hex() and oct() functions have been changed so that for regular
13490 integers, they never emit a minus sign. For example, on a 32-bit
13491 machine, oct(-1) now returns '037777777777' and hex(-1) returns
13494 the result in memory :-)
13496 - The hash() function computes better hashes for several data types,
13501 ---------------------
13503 - New extension modules cStringIO.c and cPickle.c, written by Jim
13510 - New extension module zlibmodule.c, interfacing to the free zlib
13515 - New module readline; see the "miscellaneous" section above.
13517 - New Unix extension module resource.c, by Jeremy Hylton, provides
13521 - New extension puremodule.c, by Barry Warsaw, which interfaces to the
13528 ----------------------------
13530 - The struct extension module has several new features to control byte
13537 big-endian data and '<' forces little-endian data; these also select
13541 - The array module supports uppercase format codes for unsigned data
13544 - The fcntl extension module now exports the needed symbolic
13548 - The extension modules dbm, gdbm and bsddb now check that the
13551 - The dbhash module is no more. Use bsddb instead. (There's a third
13555 - The gdbm module now supports a sync() method.
13557 - The socket module now has some new functions: getprotobyname(), and
13560 - Various modules now export their type object: socket.SocketType,
13563 - The socket module's accept() method now returns unknown addresses as
13567 - The pthread support for the thread module now works on most platforms.
13569 - STDWIN is now officially obsolete. Support for it will eventually
13572 - The binascii extension module is now hopefully fully debugged.
13573 (XXX Oops -- Fredrik Lundh promised me a uuencode fix that I never
13576 - audioop.c: added a ratecv() function; better handling of overflow in
13579 - posixmodule.c: now exports the O_* flags (O_APPEND etc.). On
13581 exception is raises) is renamed -- its string value is now "os.error",
13586 - A new version of the al (audio library) module for SGI was
13589 - The regex module has a new function get_syntax() which retrieves the
13594 - The "new" module (which creates new objects of various types) once
13598 - A problem has been fixed in the rotor module: on systems with signed
13599 characters, rotor-encoded data was not portable when the key contained
13600 8-bit characters. Also, setkey() now requires its argument rather
13603 - The sys.builtin_module_names variable is now a tuple. Another new
13607 - The specs for time.strftime() have undergone some revisions. It
13615 - The nis module seems broken when used with NIS+; unfortunately
13620 -------------------
13622 - New (still experimental) Perl-style regular expression module,
13624 syntax; the new interface avoids the thread-unsafety of the regex
13631 - New module gzip.py; see zlib above.
13633 - New module keyword.py exports knowledge about Python's built-in
13634 keywords. (New version by Ka-Ping Yee.)
13636 - New module pprint.py (with documentation) which supports
13637 pretty-printing of lists, tuples, & dictionaries recursively. By Fred
13640 - New module code.py. The function code.compile_command() can
13647 - There is now a library module xdrlib.py which can read and write the
13653 --------------------------
13655 - Module codehack.py is now completely obsolete.
13657 - The pickle.py module has been updated to make it compatible with the
13659 old all-ASCII format compatible with the old pickle.py, still much
13663 - A new helper module, copy_reg.py, is provided to register extensions
13666 - Revamped module tokenize.py is much more accurate and has an
13668 source code. Contributed by Ka-Ping Yee.
13670 - In ihooks.py, ModuleLoader.load_module() now closes the file under
13673 - The tempfile.py module has a new class, TemporaryFile, which creates
13678 - Changes to the cgi.py module: Most imports are now done at the
13692 - httplib.py: the socket object is no longer closed; all HTTP/1.*
13693 responses are now accepted; and it is now thread-safe (by not using
13696 - BaseHTTPModule.py: treat all HTTP/1.* versions the same.
13698 - The popen2.py module is now rewritten using a class, which makes
13702 - Added timezone support to the rfc822.py module, in the form of a
13704 Also added recognition of some non-standard date formats, by Lars
13707 - mhlib.py: various enhancements, including almost compatible parsing
13711 - The StringIO.StringIO class now supports readline(nbytes). (Lars
13714 - UserDict.py supports the new dictionary methods as well.
13716 - Improvements for whrandom.py by Tim Peters: use 32-bit arithmetic to
13720 - Module ftplib.py: added support for parsing a .netrc file (Fred
13726 - urllib.py: the ftp cache is now limited to 10 entries. Added
13738 - In urlparse.py, there is a cache for results in urlparse.urlparse();
13742 - shelve.py: use cPickle and cStringIO when available. Also added
13746 - The mimetools.py module now uses the available Python modules for
13747 decoding quoted-printable, uuencode and base64 formats, rather than
13750 - The python debugger (pdb.py, and its base class bdb.py) now support
13753 - The modules base64.py, uu.py and quopri.py can now be used as simple
13756 - Various small fixes to the nntplib.py module that I can't bother to
13759 - Sjoerd Mullender's mimify.py module now supports base64 encoding and
13763 - mailbox.py: Added BabylMailbox. Improved the way the mailbox is
13766 - Many more modules now correctly open files in binary mode when this
13767 is necessary on non-Unix platforms.
13769 - The copying functions in the undocumented module shutil.py are
13772 - The Writer classes in the formatter.py module now have a flush()
13775 - The sgmllib.py module accepts hyphens and periods in the middle of
13779 - The interface for the Python bytecode disassembler module, dis.py,
13786 - The imghdr.py module recognizes new image types: BMP, PNG.
13788 - The string.py module has a new function replace(str, old, new,
13793 (Remember, never import strop -- import string uses strop when
13796 - The string.join() function now accepts any sequence argument, not
13799 - The string.maketrans() requires its first two arguments to be
13804 - The regsub.py module has a function clear_cache(), which clears its
13807 is now obsolete -- use the sub() or subn() functions or methods in the
13810 - The undocumented module Complex.py has been removed, now that Python
13811 has built-in complex numbers. A similar module remains as
13816 ----------------------------
13818 - The way GNU readline is configured is totally different. The
13819 --with-readline configure option is gone. It is now an extension
13829 - New build procedure: a single library, libpython1.5.a, is now built,
13830 which contains absolutely everything except for a one-line main()
13836 - As far as I can tell, neither gcc -Wall nor the Microsoft compiler
13839 - A number of new Makefile variables have been added for special
13844 - A set of patches from Lee Busby has been integrated that make it
13846 --with-fpectl to enable the patches; the extension modules fpectl and
13850 - The support for shared libraries under AIX is now simpler and more
13853 - The Modules/makesetup script now reads a file Setup.local as well as
13858 - The Modules/makesetup script now copies any "include" lines it
13862 - The configure script is smarter about C compiler options; e.g. with
13863 gcc it uses -O2 and -g when possible, and on some other platforms it
13864 uses -Olimit 1500 to avoid a warning from the optimizer about the main
13867 - The configure script now detects whether malloc(0) returns a NULL
13871 - The configure script has a new option, --with-dec-threads, to enable
13872 DEC threads on DEC Alpha platforms. Also, --with-threads is now an
13873 alias for --with-thread (this was the Most Common Typo in configure
13876 - Many changes in Doc/Makefile; amongst others, latex2html is now used
13881 --------------------------
13883 - Because some interfaces have changed, the PYTHON_API macro has been
13887 serious problem :-)
13889 - I've completed the Grand Renaming, with the help of Roger Masse and
13894 Tools/scripts/fixcid.py -s Misc/RENAME on your source, so you can omit
13897 - Various and sundry small bugs in the "abstract" interfaces have been
13902 - New API functions PyLong_FromUnsignedLong() and
13905 - The API functions in the file cgensupport.c are no longer
13909 - PyObject_Compare() can now raise an exception. Check with
13913 - The slice interface uses an upper bound of INT_MAX when no explicit
13917 - Support for multiple independent interpreters. See Doc/api.tex,
13923 - There is now a Py_Finalize() function which "de-initializes"
13928 The old, half-hearted Py_Cleanup() routine is gone. Use of Py_Exit()
13932 - There are no known memory leaks left. While Py_Finalize() doesn't
13937 - There is now explicit per-thread state. (Inspired by, but not the
13940 - There is now better support for threading C applications. There are
13945 - The test macro DEBUG has changed to Py_DEBUG, to avoid interference
13949 - New wrappers around malloc() and friends: Py_Malloc() etc. call
13955 - New C API PyImport_Import() which uses whatever __import__() hook
13959 - It is now possible for an extension module's init function to fail
13960 non-fatally, by calling one of the PyErr_* functions and returning.
13962 - The PyInt_AS_LONG() and PyFloat_AS_DOUBLE() macros now cast their
13964 did. (Suggestion by Marc-Andre Lemburg.) Similar for PyList_GET_SIZE
13967 - Some of the Py_Get* function, like Py_GetVersion() (but not yet
13971 - Changed the run-time library to check for exceptions after object
13975 - PyFile_WriteString() and Py_Flushline() now return error indicators
13979 - There's a new function, PyArg_ParseTupleAndKeywords(), which parses
13983 - PyArg_GetInt() is gone.
13985 - It's no longer necessary to include graminit.h when calling one of
13990 - The CObject interface has a new function,
13996 -------
13998 - On popular demand, _tkinter once again installs a hook for readline
14002 - A patch by Craig McPheeters plugs the most obnoxious memory leaks,
14006 - New standard dialog modules: tkColorChooser.py, tkCommonDialog.py,
14012 - Tkinter.py: when the first Tk object is destroyed, it sets the
14017 - The Image class now has a configure method.
14019 - Added a bunch of new winfo options to Tkinter.py; we should now be
14024 - The broken bind() method on Canvas objects defined in the Canvas.py
14028 - The problem with Tkinter.py falling back to trying to import
14029 "tkinter" when "_tkinter" is not found has been fixed -- it no longer
14034 - The ScrolledText module once again supports the 'cnf' parameter, to
14038 - The _tkinter.c extension module has been revamped. It now support
14041 platforms). It also supports threading -- it is safe for one
14042 (Python-created) thread to be blocked in _tkinter.mainloop() while
14046 which requires access to the Tcl sources to get it to work -- hence it
14049 - A bug in _tkinter.c has been fixed, where Split() with a string
14052 - Unfortunately, on Windows and Mac, Tk 8.0 no longer supports
14055 how to interface with Tcl's lower-level event mechanism, or with its
14056 channels (which are like Python's file-like objects). Jack Jansen has
14062 ---------------
14064 - A new regression test suite is provided, which tests most of the
14065 standard and built-in modules. The regression test is run by invoking
14069 - New tool: faqwiz -- the CGI script that is used to maintain the
14070 Python FAQ (http://grail.cnri.reston.va.us/cgi-bin/faqw.py). In
14073 - New tool: webchecker -- a simple extensible web robot that, when
14078 Languages (Vol 2, No 2); Scripting the Web with Python (pp 97-120).
14081 - New small tools: cvsfiles.py (prints a list of all files under CVS
14082 n a particular directory tree), treesync.py (a rather Guido-specific
14087 - The freeze script now also works under Windows (NT). Another
14088 feature allows the -p option to be pointed at the Python source tree
14092 - New examples (Demo/extend) that show how to use the generic
14095 - Tools/scripts/h2py.py now supports C++ comments.
14097 - Tools/scripts/pystone.py script is upgraded to version 1.1; there
14101 - Demo/classes/Rat.py completely rewritten by Sjoerd Mullender.
14105 -------------------
14107 - New project files for Developer Studio (Visual C++) 5.0 for Windows
14108 NT (the old VC++ 4.2 Makefile is also still supported, but will
14111 - See the note on the new module search path in the "Miscellaneous" section
14114 - Support for Win32s (the 32-bit Windows API under Windows 3.1) is
14117 - There's a new extension module, msvcrt.c, which provides various
14118 low-level operations defined in the Microsoft Visual C++ Runtime Library.
14122 - The -u option not only sets the standard I/O streams to unbuffered
14126 - The, sys.prefix and sys.exec_prefix variables point to the directory
14130 - The various os.path modules (posixpath, ntpath, macpath) now support
14135 - The ntpath module (normally used as os.path) supports ~ to $HOME
14138 - The freeze tool now works on Windows.
14140 - See also the Tkinter category for a sad note on
14143 - The truncate() method for file objects now works on Windows.
14145 - Py_Initialize() is no longer called when the DLL is loaded. You
14148 - The time module's clock() function now has good precision through
14151 - Mark Hammond will release Python 1.5 versions of PythonWin and his
14157 ---
14159 - As always, the Macintosh port will be done by Jack Jansen. He will
14173 - Changed disclaimer notice.
14175 - Added SHELL=/bin/sh to Misc/Makefile.pre.in -- some Make versions
14178 - In Lib/tkinter/Tkinter.py, removed bogus binding of <Delete> in Text
14181 - In Lib/cgi.py, bumped __version__ to 2.0 and restored a truncated
14184 - Fixed the NT Makefile (PC/vc40.mak) for VC 4.0 to set /MD for all
14188 - In Lib/py_compile.py, cast mtime to long() so it will work on Mac
14190 - Set self.rfile unbuffered (like self.wfile) in SocketServer.py, to
14193 - Version 2.83 of Misc/python-mode.el for Emacs is included.
14195 - In Modules/regexmodule.c, fixed symcomp() to correctly handle a new
14198 - In Lib/SocketServer.py, changed the mode for rfile to unbuffered.
14200 - In Objects/stringobject.c, fixed the compare function to do the
14204 - In Lib/tkinter/Tkinter.py, fixed Scale.get() to support floats.
14206 - In Lib/urllib.py, fix another case where openedurl wasn't set.
14210 - SyntaxError exceptions detected during code generation
14213 - Don't leave trailing / or \ in script directory inserted in front of
14216 - Added a note to Tools/scripts/classfix.py abouts its historical
14219 - Added Misc/Makefile.pre.in, a universal Makefile for extensions
14222 - Rewritten Misc/faq2html.py, by Ka-Ping Yee.
14224 - Install shared modules with mode 555 (needed for performance on some
14227 - Some changes to standard library modules to avoid calling append()
14228 with more than one argument -- while supported, this should be
14231 - bdb.py (and hence pdb.py) supports calling run() with a code object
14234 - Fixed an embarrassing bug cgi.py which prevented correct uploading
14239 - Added default writer to constructor of NullFormatter class.
14241 - Use binary mode for socket.makefile() calls in ftplib.py.
14243 - The ihooks module no longer "installs" itself upon import -- this
14249 - The test program for mailbox.py is now more useful.
14251 - Added getparamnames() to Message class in mimetools.py -- it returns
14252 the names of parameters to the content-type header.
14254 - Fixed a typo in ni that broke the loop stripping "__." from names.
14256 - Fix sys.path[0] for scripts run via pdb.py's new main program.
14258 - profile.py can now also run a script, like pdb.
14260 - Fix a small bug in pyclbr -- don't add names starting with _ when
14263 - Fixed a series of embarrassing typos in rexec's handling of standard
14264 I/O redirection. Added some more "safe" built-in modules: cmath,
14267 - Fixed embarrassing typo in shelve.py.
14269 - Added SliceType and EllipsisType to types.py.
14271 - In urllib.py, added handling for error 301 (same as 302); added
14274 - Fixed embarrassing typo in xdrlib.py. Also fixed typo in Setup.in
14277 - Fixed bsddbmodule.c to add binary mode indicator on platforms that
14280 - Changed last uses of #ifdef NT to #ifdef MS_WINDOWS or MS_WIN32,
14284 - Added the sources for the NT installer script used for Python
14287 - A compromise in pickle's defenses against Trojan horses: a
14288 user-defined function is now okay where a class is expected. A
14289 built-in function is not okay, to prevent pickling something that
14290 will execute os.system("rm -f *") when unpickling.
14292 - dis.py will print the name of local variables referenced by local
14295 - Improved portability of SimpleHTTPServer module to non-Unix
14298 - The thread.h interface adds an extra argument to down_sema(). This
14304 - Fixed some typos in abstract.h; corrected signature of
14308 - apply(classname, (), {}) now works even if the class has no
14311 - Implemented complex remainder and divmod() (these would dump core!).
14316 - Fixed bug in built-in complex() function which gave the wrong result
14319 - Change the hash algorithm for strings -- the multiplier is now
14322 - New default path for Windows NT, the registry structure now supports
14323 default paths for different install packages. (Mark Hammond -- the
14326 - Added more symbols to the python_nt.def file.
14328 - When using GNU readline, set rl_readline_name to "python".
14330 - The Ellipses built-in name has been renamed to Ellipsis -- this is
14331 the correct singular form. Thanks to Ka-Ping Yee, who saved us from
14334 - Bumped the PYTHON_API_VERSION to 1006, due to the Ellipses ->
14337 - Updated the library reference manual. Added documentation of
14342 - The reference manual is now maintained in FrameMaker.
14344 - Upgraded scripts Doc/partparse.py and Doc/texi2html.py.
14346 - Slight improvements to Doc/Makefile.
14348 - Added fcntl.lockf(). This should be used for Unix file locking
14351 - The getopt module now supports long option names, thanks to Lars
14354 - Plenty of changes to Tkinter and Canvas, mostly due to Fred Drake
14357 - Use more bits of time.time() in whrandom's default seed().
14359 - Performance hack for regex module's regs attribute.
14361 - Don't close already closed socket in socket module.
14363 - Correctly handle separators containing embedded nulls in
14367 - Moved fallback definition for hypot() to Python/hypot.c.
14369 - Added fallback definition for strdup, in Python/strdup.c.
14371 - Fixed some bugs where a function would return 0 to indicate an error
14372 where it should return -1.
14374 - Test for error returned by time.localtime(), and rationalized its MS
14377 - Added Modules/Setup.local file, which is processed after Setup.
14379 - Corrected bug in toplevel Makefile.in -- execution of regen script
14382 - Various and sundry NeXT configuration changes (sigh).
14384 - Support systems where libreadline needs neither termcap nor curses.
14386 - Improved ld_so_aix script and python.exp file (for AIX).
14388 - More stringent test for working <stdarg.h> in configure script.
14390 - Removed Demo/www subdirectory -- it was totally out of date.
14392 - Improved demos and docs for Fred Drake's parser module; fixed one
14406 -------------------------------------
14408 - Name mangling to implement a simple form of class-private variables.
14413 - In urllib.urlopen(): HTTP URLs containing user:passwd@host are now
14416 - In ntpath.normpath(): don't truncate to 8+3 format.
14418 - In mimetools.choose_boundary(): don't die when getuid() or getpid()
14421 - Module urllib: some optimizations to (un)quoting.
14423 - New module MimeWriter for writing MIME documents.
14425 - More changes to formatter module.
14427 - The freeze script works once again and is much more robust (using
14428 sys.prefix etc.). It also supports a -o option to specify an
14431 - New module whichdb recognizes dbm, gdbm and bsddb/dbhash files.
14433 - The Doc/Makefile targets have been reorganized somewhat to remove the
14436 - The texinfo to html filter (Doc/texi2html.py) has been improved somewhat.
14438 - "errors.h" has been renamed to "pyerrors.h" to resolve a long-standing
14441 - Linking a module compiled with a different setting for Py_TRACE_REFS now
14444 - The cgi module has a new convenience function print_exception(), which
14449 - A subtle change in the unpickling of class instances makes it possible
14453 - Documentation for os.path.splitext() (== posixpath.splitext()) has been
14456 - posixfile locking is now also correctly supported on AIX.
14458 - The tempfile module once again honors an initial setting of tmpdir. It
14461 - The traceback module has some new functions to extract, format and print
14464 - Some translation functions in the urllib module have been made a little
14467 - The addtag_* methods for Canvas widgets in Tkinter as well as in the
14471 - A tiny _test() function has been added to Tkinter.py.
14473 - A generic Makefile for dynamically loaded modules is provided in the Misc
14476 - A new version of python-mode.el for Emacs is provided. See
14479 into python-mode.el.
14481 - The configure script can finally correctly find the readline library in a
14482 non-standard location. The LDFLAGS variable is passed on the Makefiles
14485 - Shared libraries are now installed as programs (i.e. with executable
14486 permission). This is required on HP-UX and won't hurt on other systems.
14488 - The objc.c module is no longer part of the distribution. Objective-C
14491 - The sybase module is no longer part of the distribution. A much
14495 - _tkinter is now compatible with Tcl 7.5 / Tk 4.1 patch1 on Windows and
14499 - In Setup, you can now write "*shared*" instead of "*noconfig*", and you
14502 - Some more fidgeting for AIX shared libraries.
14504 - The mpz module is now compatible with GMP 2.x. (Not tested by me.)
14505 (Note -- a complete replacement by Niels Mo"ller, called gpmodule, is
14508 - A warning is written to sys.stderr when a __del__ method raises an
14511 - The configure script now defines HAVE_OLD_CPP if the C preprocessor is
14514 - All source files (except a few platform specific modules) are once again
14516 ANSI-isms have been removed or made conditional in complexobject.c,
14519 - The abstract object API has three new functions, PyObject_DelItem,
14522 - The operator module has new functions delitem and delslice, and the
14526 - The environment module is no longer supported; putenv() is now a function
14529 - Error in filter(<function>, "") has been fixed.
14531 - Unrecognized keyword arguments raise TypeError, not KeyError.
14533 - Better portability, fewer bugs and memory leaks, fewer compiler warnings,
14536 - Bug in float power boundary case (0.0 to the negative integer power)
14539 - The test of negative number to the float power has been moved from the
14540 built-in pow() function to floatobject.c (so complex numbers can yield the
14543 - The bug introduced in beta2 where shared libraries loaded (using
14546 - Modules imported as shared libraries now also have a __file__ attribute,
14548 a __file__ attribute now are built-in modules.
14550 - On the Mac, dynamically loaded modules can end in either ".slb" or
14554 - C API addition: marshal.c now supports
14557 - C API addition: getargs.c now supports
14561 - The PC versioning scheme (sys.winver) has changed once again. the
14564 "1.4.1" for Python 1.4.1 -- the beta level is not included) and
14565 <apiversion> is the four-digit PYTHON_API_VERSION (currently 1005).
14567 - h2py.py accepts whitespace before the # in CPP directives
14569 - On Solaris 2.5, it should now be possible to use either Posix threads or
14571 Python pthreads interface doesn't fully support semaphores yet -- anyone
14574 - Thread support should now work on AIX, using either DCE threads or
14577 - New file Demo/sockets/unicast.py
14579 - Working Mac port, with CFM68K support, with Tk 4.1 support (though not
14582 - New project setup for PC port, now compatible with PythonWin, with
14585 - New module site.py (XXX)
14587 - New module xdrlib.py and optional support module _xdrmodule.c (XXX)
14589 - parser module adapted to new grammar, complete w/ Doc & Demo (XXX)
14591 - regen script fixed (XXX)
14593 - new machdep subdirectories Lib/{aix3,aix4,next3_3,freebsd2,linux2} (XXX)
14595 - testall now also tests math module (XXX)
14597 - string.atoi c.s. now raise an exception for an empty input string.
14599 - At last, it is no longer necessary to define HAVE_CONFIG_H in order to
14602 - Unrecognized keyword arguments now raise TypeError rather than KeyError.
14604 - The makesetup script recognizes files with extension .so or .sl as
14607 - 'access' is no longer a reserved word, and all code related to its
14611 - Performance enhancements suggested by Sjoerd Mullender. This includes
14616 - New operations in string module: lstrip(s) and rstrip(s) strip whitespace
14624 - regsub.split() has the same addition as string.split(). regsub.splitx(s,
14628 - Final touch for AIX loading, rewritten Misc/AIX-NOTES.
14630 - In Modules/_tkinter.c, when using Tk 4.1 or higher, use className
14634 - Add #undef fabs to Modules/mathmodule.c for macintosh.
14636 - Added some macro renames for AIX in Modules/operator.c.
14638 - Removed spurious 'E' from Doc/liberrno.tex.
14640 - Got rid of some cruft in Misc/ (dlMakefile, pyimenu.el); added new
14641 Misc/gMakefile and new version of Misc/python-mode.el.
14643 - Fixed typo in Lib/ntpath.py (islink has "return false" which gives a
14646 - Added missing "from types import *" to Lib/tkinter/Canvas.py.
14648 - Added hint about using default args for __init__ to pickle docs.
14650 - Corrected typo in Inclide/abstract.h: PySequence_Lenth ->
14653 - Some improvements to Doc/texi2html.py.
14655 - In Python/import.c, Cast unsigned char * in struct _frozen to char *
14658 - In doc/ref4.tex, added note about scope of lambda bodies.
14661 -------------------------------------
14663 - Portability bug in the md5.h header solved.
14665 - The PC build procedure now really works, and sets sys.platform to a
14669 - More improvements to the installation procedure. Typing "make install"
14676 - New modules: errno, operator (XXX).
14678 - Changes for use with Numerical Python: built-in function slice() and
14684 - New documentation for errno and cgi modules.
14686 - The directory containing the script passed to the interpreter is
14690 - Optional third string argument to string.translate() specifies
14694 - Module posix (and hence module os under Unix) now supports putenv().
14700 - pdb.py can now be invoked from the command line to debug a script:
14703 - Much improved parseaddr() in rfc822.
14705 - In cgi.py, you can now pass an alternative value for environ to
14708 - You can now assign to instance variables whose name begins and ends
14711 - New version of Fred Drake's parser module and associates (token,
14714 - New PYTHON_API_VERSION value and .pyc file magic number (again!).
14716 - The "complex" internal structure type is now called "Py_complex" to
14719 - Numerous small bugs fixed.
14721 - Slight pickle speedups.
14723 - Some slight speedups suggested by Sjoerd (more coming in 1.4 final).
14725 - NeXT portability mods by Bill Bumgarner integrated.
14727 - Modules regexmodule.c, bsddbmodule.c and xxmodule.c have been
14732 -----------------------------------
14734 - Added sys.platform and sys.exec_platform for Bill Janssen.
14736 - Installation has been completely overhauled. "make install" now installs
14737 everything, not just the python binary. Installation uses the install-sh
14740 - New functions in the posix module: mkfifo, plock, remove (== unlink),
14743 - New function in the fcntl module: flock.
14745 - Shared library support for FreeBSD.
14747 - The --with-readline option can now be used without a DIRECTORY argument,
14751 - The extension tkinter has been renamed to _tkinter, to avoid confusion
14755 - Author's change of address from CWI in Amsterdam, The Netherlands, to
14758 - The math.hypot() function is now always available (if it isn't found in
14761 - The latex documentation is now compatible with latex2e, thanks to David
14764 - The expression x**y is now equivalent to pow(x, y).
14766 - The indexing expression x[a, b, c] is now equivalent to x[(a, b, c)].
14768 - Complex numbers are now supported. Imaginary constants are written with
14772 possible to create complex numbers with the new built-in function
14773 complex(re, [im]). For the footprint-conscious, complex number support can
14776 - New built-in function list() is the long-awaited counterpart of tuple().
14778 - There's a new "cmath" module which provides the same functions as the
14780 good reasons why math.sqrt(-1) still raises an exception -- you have to use
14781 cmath.sqrt(-1) to get 1j for an answer.)
14783 - The Python.h header file (which is really the same as allobjects.h except
14787 - The NDEBUG symbol is no longer used. Code that used to be dependent on
14793 - Several symbols that didn't follow the new naming scheme have been
14799 - There are now typedefs for the structures defined in config.c and
14802 - New PYTHON_API_VERSION value and .pyc file magic number.
14804 - New module Bastion. (XXX)
14806 - Improved performance of StringIO module.
14808 - UserList module now supports + and * operators.
14810 - The binhex and binascii modules now actually work.
14812 - The cgi module has been almost totally rewritten and documented.
14816 - The formatter module (for use with htmllib) has been overhauled (again).
14818 - The ftplib module now supports passive mode and has doc strings.
14820 - In (ideally) all places where binary files are read or written, the file
14824 - Dummy versions of os.path.expandvars() and expanduser() are now provided
14825 on non-Unix platforms.
14827 - Module urllib now has two new functions url2pathname and pathname2url
14833 - Micro improvements to urlparse. Added urlparse.urldefrag() which
14836 - The mailbox module now supports MH style message delimiters as well.
14838 - The mhlib module contains some new functionality: setcontext() to set the
14840 to MH commands (e.g. 1-10 or last:5).
14842 - New module mimify for conversion to and from MIME format of email
14845 - Module ni now automatically installs itself when first imported -- this
14850 - Some small performance enhancements in module pickle.
14852 - Small interface change to the profile.run*() family of functions -- more
14855 - The officially registered Mac creator for Python files is 'Pyth'. This
14858 - Added regsub.capwords(). (XXX)
14860 - Added string.capwords(), string.capitalize() and string.translate().
14863 - Fixed an interface bug in the rexec module: it was impossible to pass a
14868 - Module rfc822 now caches the headers in a dictionary for more efficient
14871 - The sgmllib module now understands a limited number of SGML "shorthands"
14874 - The tempfile module actually tries a number of different places to find a
14877 the implementation that would ignore a pre-existing tmpdir global has been
14880 - Much improved and enhanved FileDialog module for Tkinter.
14882 - Many small changes to Tkinter, to bring it more in line with Tk 4.0 (as
14885 - New socket interfaces include ntohs(), ntohl(), htons(), htonl(), and
14886 s.dup(). Sockets now work correctly on Windows. On Windows, the built-in
14891 - Bugs in bsddb module fixed (e.g. missing default argument values).
14893 - The curses extension now includes <ncurses.h> when available.
14895 - The gdbm module now supports opening databases in "fast" mode by
14898 - new variables sys.prefix and sys.exec_prefix pass corresponding
14901 - The ``new'' module now supports creating new user-defined classes as well
14904 - The soundex module now sports get_soundex() to get the soundex value for an
14905 arbitrary string (formerly it would only do soundex-based string
14908 - New object type "cobject" to safely wrap void pointers for passing them
14911 - More efficient computation of float**smallint.
14913 - The mysterious bug whereby "x.x" (two occurrences of the same
14914 one-character name) typed from the commandline would sometimes fail
14917 - The initialization of the readline function can now be invoked by a C
14920 - There's now an externally visible pointer PyImport_FrozenModules which
14923 - The argument parsing functions now support a new format character 'D' to
14926 - Various memory leaks plugged and bugs fixed.
14928 - Improved support for posix threads (now that real implementations are
14931 - Some various and sundry improvements and new entries in the Tools
14954 but including all ISO-8859-1 entity definitions), and easy to use.
14985 The tokenizer is now more tolerant of alien whitespace. Control-L in
14987 while Control-R just before the end of the line is ignored.
14989 Changes to Built-in Operations
14999 The built-in functions "input()" and "raw_input()" now use the GNU
15006 Two new built-in functions, "globals()" and "locals()", provide access
15008 respectively. (These augment rather than replace "vars()", which
15013 The built-in function "compile()" now takes a third possible value for
15039 The optional built-in modules "dbm" and "gdbm" are more coordinated
15040 --- their "open()" functions now take the same values for their "flag"
15046 A new dbm-like module, "bsddb", has been added, which uses the BSD DB
15049 A portable (though slow) dbm-clone, implemented in Python, has been
15057 for conversion of text-encoded binary data.
15063 A module to handle the MIME encoding quoted-printable has also been
15081 the run-time API. For more detailes, read the files
15086 Numerous things I have forgotten or that are so obscure no-one will
15087 notice them anyway :-)
15094 - Changes to Misc/python-mode.el:
15095 - Wrapping and indentation within triple quote strings should work
15097 - `Standard' bug reporting mechanism (use C-c C-b)
15098 - py-mark-block was moved to C-c C-m
15099 - C-c C-v shows you the python-mode version
15100 - a basic python-font-lock-keywords has been added for Emacs 19
15101 font-lock colorizations.
15102 - proper interaction with pending-del and del-sel modes.
15103 - New py-electric-colon (:) command for improved outdenting. Also
15104 py-indent-line (TAB) should handle outdented lines better.
15105 - New commands py-outdent-left (C-c C-l) and py-indent-right (C-c C-r)
15107 - The Library Reference has been restructured, and many new and
15112 - All known bugs have been fixed. For example the pow(2,2,3L) bug on
15113 Linux has been fixed. Also the re-entrancy problems with __del__ have
15116 - All known memory leaks have been fixed.
15118 - Phase 2 of the Great Renaming has been executed. The header files
15126 - The hooks for implementing "safe-python" (better called "restricted
15128 implemented by calling the built-in function __import__, and the
15129 built-in names used in a particular scope are taken from the
15133 - The import statement now supports the syntax "import a.b.c" and
15135 exists, but one can be prototyped by replacing the built-in __import__
15138 - All machinery used by the import statement (or the built-in
15139 __import__ function) is now exposed through the new built-in module
15143 - Persistent storage is supported through the use of the modules
15148 - Documentation strings for many object types are accessible through
15153 None. Documentation strings are also supported for built-in
15160 - The __coerce__ and __cmp__ methods for user-defined classes once
15164 - The functions posix.popen() and posix.fdopen() now have an optional
15166 (mode) argument to 'r' -- in analogy to the built-in open() function.
15169 - The thread.exit_thread() function now raises SystemExit so that
15172 - Improved X11 and Motif support, by Sjoerd Mullender. This extension
15175 - Improved support for the Apple Macintosh, in part by Jack Jansen,
15181 - Improved version for Windows NT, by Mark Hammond. This is being
15184 - Used autoconf 2.0 to generate the configure script. Adapted
15187 - It now builds on the NeXT without intervention, even on the 3.3
15188 Sparc pre-release.
15190 - Characters passed to isspace() and friends are masked to nonnegative
15193 - Correctly compute pow(-3.0, 3).
15195 - Fix portability problems with getopt (configure now checks for a
15196 non-GNU getopt).
15198 - Don't add frozenmain.o to libPython.a.
15200 - Exceptions can now be classes. ALl built-in exceptions are still
15203 - The socket module exports a long list of socket related symbols.
15204 (More built-in modules will export their symbolic constants instead of
15207 - When a module object is deleted, it clears out its own dictionary.
15211 - Changed the error handling by [new]getargs() e.g. for "O&".
15213 - Dynamic loading of modules using shared libraries is supported for
15216 - Support "O&", "[...]" and "{...}" in mkvalue().
15218 - Extension to findmethod(): findmethodinchain() (where a chain is a
15221 methodlist structure rather than just to the function name -- this
15222 saves copying flags etc. into the (short-lived) method object.
15224 - The callable() function is now public.
15226 - Object types can define a few new operations by setting function
15249 ever -- including Windows NT. Makefiles or projects for a variety of
15250 non-UNIX platforms are provided.
15253 the choice -- postpone the new release indefinitely, or release it
15256 bugs, and send me patches based on the previous release -- which I
15261 documentation (if you're anxious enough :-). In this case it was not
15267 by Matt Conway, is available as tkinter-doc.tar.gz from the Python
15278 - More flexible operator overloading for user-defined classes
15281 - Classes can define methods named __getattr__, __setattr__ and
15284 - Classes can define method __call__ so instances can be called
15290 - The Makefiles (for the base interpreter as well as for extensions)
15294 - Passing the interpreter a .pyc file as script argument will execute
15295 the code in that file. (On the Mac such files can be double-clicked!)
15297 - New Freeze script, to create independently distributable "binaries"
15298 of Python programs -- look in Demo/freeze
15300 - Improved h2py script (in Demo/scripts) follows #includes and
15303 - New module compileall generates .pyc files for all modules in a
15306 - Threads should work on more platforms
15309 New built-in modules:
15311 - tkinter (support for Tcl's Tk widget set) is now part of the base
15314 - signal allows catching or ignoring UNIX signals (unfortunately still
15315 undocumented -- any taker?)
15317 - termios provides portable access to POSIX tty settings
15319 - curses provides an interface to the System V curses library
15321 - syslog provides an interface to the (BSD?) syslog daemon
15323 - 'new' provides interfaces to create new built-in object types
15326 - sybase provides an interface to SYBASE database
15329 New/obsolete built-in methods:
15331 - callable(x) tests whether x can be called
15333 - sockets now have a setblocking() method
15335 - sockets no longer have an allowbroadcast() method
15337 - socket methods send() and sendto() return byte count
15342 - types.py defines standard names for built-in types, e.g. StringType
15344 - urlparse.py parses URLs according to the latest Internet draft
15346 - uu.py does uuencode/uudecode (not the fastest in the world, but
15347 quicker than installing uuencode on a non-UNIX machine :-)
15349 - New, faster and more powerful profile module.py
15351 - mhlib.py provides interface to MH folders and messages
15357 - newgetargs() supports optional arguments and improved error messages
15359 - O!, O& O? formats for getargs allow more versatile type checking of
15360 non-standard types
15362 - can register pending asynchronous callback, to be called the next
15365 - can register cleanup routines to be called when Python exits
15368 - makesetup script understands C++ files in Setup file (use file.C
15371 - Make variable OPT is passed on to sub-Makefiles
15373 - An init<module>() routine may signal an error by not entering
15376 - For long module names, instead of foobarbletchmodule.c you can
15379 - getintvalue() and getfloatvalue() try to convert any object
15382 - All the [new]getargs() formats that retrieve an integer value
15385 - C function listtuple() converts list to tuple, fast
15387 - You should now call sigcheck() instead of intrcheck();
15398 - Sometimes the format operator (string%expr) would drop the last
15401 - Tokenizer looped when last line did not end in \n
15403 - Bug when triple-quoted string ended in quote plus newline
15405 - Typo in socketmodule (listen) (== instead of =)
15407 - typing vars() at the >>> prompt would cause recursive output
15418 ------
15428 ------
15434 * The try-except statement has an optional else clause, which is
15438 -----------
15440 * The result of a statement-level expression is no longer printed,
15441 except_ for expressions entered interactively. Consequently, the -k
15448 an always-failing dictionary lookup in the dictionary of local
15451 * There is a new command line option, -u, to force stdout and stderr
15457 * Fewer chances of dumping core when trying to reload or re-import
15458 static built-in, dynamically loaded built-in, or frozen modules.
15464 for loops, the (not) in operator, and the built-in functions filter(),
15467 Changed Built-in operations
15468 ---------------------------
15470 * The '%' operator on strings (printf-style formatting) supports a new
15474 vars()).
15482 New Built-in Functions
15483 ----------------------
15485 * vars() returns a dictionary containing the local variables; vars(m)
15487 dir(x) is now equivalent to vars(x).keys().
15489 Changed Built-in Functions
15490 --------------------------
15500 New Built-in Modules
15501 --------------------
15503 Changed Built-in Modules
15504 ------------------------
15509 ------------------
15515 World-Wide-Web files specified by their URL.
15518 by World-Wide-Web servers.
15537 ----------------------
15551 -------------
15557 ---------
15562 * Demo/scripts/newslist.py, by Quentin Stafford-Fraser, generates a
15574 -------------
15586 ----------------
15593 ----------
15596 consequently the variable py-continuation-offset is gone.
15606 * Fixed test for <stdarg.h> -- this broke on some platforms.
15608 * Fixed test for shared library dynalic loading -- this broke on SunOS
15612 -lsocket -linet -lnsl, if these libraries exist).
15621 * The built-in module strop now defines fast versions of three more
15625 explicitly import strop to use the faster versions -- the string
15673 be complete in these release notes, but I'll try anyway :-)
15679 -------------------------------------
15689 distribution contains a placeholder Ext-dummy with a description of
15712 totally autoconf-unaware :-). One problem has been solved: typing
15713 Control-C to a readline prompt will now work. The distribution no
15714 longer contains a "super-level" directory (above the python toplevel
15715 directory), and dl, dl-dld and GNU dld are no longer part of the
15729 * All files needed to use the built-in module md5 are now contained in
15734 -------------
15746 * The entire documentation is now also available on-line for those who
15752 ------
15759 * There is a new keyword 'exec'. This replaces the exec() built-in
15781 Built-in functions
15782 ------------------
15784 * The built-in module containing the built-in functions is called
15787 * New built-in functions map(), filter() and reduce() perform standard
15790 - map(f, seq) returns a new sequence whose items are the items from
15793 - filter(f, seq) returns a subsequence of seq consisting of those
15796 - reduce(f, seq, initial) returns a value computed as follows:
15813 * Built-in function exec() has been replaced by the exec statement --
15818 ---------------
15835 module of the same name further down the path -- the new interpreter
15840 the names of a few hardwired built-in modules (sys, __main__ and
15864 Built-in objects
15865 ----------------
15872 Built-in modules
15873 ----------------
15886 * A new built-in module parser provides a rudimentary interface to the
15888 defines the numeric values of tokens and non-terminal symbols.
15893 * The array module is extended with 8-byte object swaps, the 'i'
15910 sub-expressions by name. Thanks to Tracy Tims for these changes!
15917 ------------------------
15949 * The (undocumented) module lambda has gone -- you couldn't import it
15954 ---------------------
15956 * The optional built-in modules audioop and imageop are now standard
15962 * There's a new built-in module called rgbimg which supports portable
15966 * The module aifc is gone -- you should now always use aifc, which has
15979 -------------
15981 * Most optimizations below can be configured by compile-time flags.
15984 * Small integers (default -1..99) are shared -- i.e. if two different
15995 * There is a compile-time option to cache a string's hash function,
16001 ----------------
16011 ---------------------------------------
16034 --------------
16036 * One problem with 64-bit machines remains -- since .pyc files are
16037 portable and use only 4 bytes to represent an integer object, 64-bit
16039 Work-around: use eval('123456789101112').
16052 I *believe* these are the main user-visible changes in this release,
16059 --------------------------------------------------
16077 ----------------
16104 it, which can contain a richer set of built-in modules. Don't even
16109 ---------------------
16128 clean-up possible in this case.
16132 -------------------------------------
16136 * New option -i enters interactive mode after executing a script --
16139 * New option -k raises an exception when an expression statement
16147 ------------------------------------
16155 ------------------
16164 ---------------------
16169 python-mode.el in the misc directory which knows about this as well.
16193 -----------------------------------------------
16202 -------------------------------------------------
16208 * If a class attribute is a user-defined function, a new kind of
16223 possible to implement clean-up of external resources attached to the
16231 to be used as dictionary keys. This must return a 32-bit integer.
16235 ------------------
16243 Additions to built-in operations
16244 --------------------------------
16256 * Built-in methods are now compared properly: when comparing x.meth1
16261 Additions to built-in functions
16262 -------------------------------
16277 * hash(x) returns a hash code (32-bit integer) of an arbitrary
16280 * id(x) returns a unique identifier (32-bit integer) of an arbitrary
16289 ----------------------------------------------------------------
16296 returns -1 instead of raising string.index_error.
16299 Changes to built-in modules
16300 ---------------------------
16323 * Module strop (the fast built-in version of standard module string)
16333 defined -- sys and builtin).
16349 ----------
16363 * Many portability bugs fixed (and undoubtedly new ones added :-).
16367 ------------------------------
16381 -----------------------
16384 stand-alone executable binary file. See the script
16385 demo/scripts/freeze.py. It will require some site-specific tailoring
16390 MS-DOS
16391 ------
16393 * A new MS-DOS port has been done, using MSC 6.0 (I believe). Thanks,
16402 -------------------------------------------
16408 --------------------
16424 --Guido
16428 ------------------------------
16431 argument lists (of user-defined functions only) is stricter. Earlier,
16448 Case (a) was needed to accommodate variable-length argument lists;
16469 should!) be done using the built-in function apply() instead, it isn't
16474 that if x is an instance of a user-defined class and has a method m,
16479 mentioned in the NEWS file: user-defined classes can now define types
16485 ----------------------------
16488 bullet-proof, after reports of (minor) trouble on certain platforms.
16491 optional built-in module: Addmodule.sh. Read the script before using!
16502 -----------------------------
16514 ------------------------------------
16521 There is a new clean-up mechanism, complementing try...finally: if you
16538 The limit on the size of the *run-time* stack has completely been
16539 removed -- this means that tuple or list displays can contain any
16544 Changes to existing built-in functions and methods
16545 --------------------------------------------------
16547 The built-in functions int(), long(), float(), oct() and hex() now
16552 New built-in functions
16553 ----------------------
16556 The function repr(x) is in all respects equivalent to `x` -- some
16558 except if x is already a string -- then it returns x unchanged
16561 The new function cmp(x, y) returns -1 if x<y, 0 if x==y, 1 if x>y.
16564 Changes to general built-in modules
16565 -----------------------------------
16591 Changes to SGI-specific built-in modules
16592 ----------------------------------------
16610 -----------------------------------
16635 New built-in modules
16636 --------------------
16644 Optional module fcntl defines interfaces to fcntl() and ioctl() --
16645 UNIX only. (Not yet properly documented -- see however src/fcntl.doc.)
16660 ----------------------------
16671 <-> YUV)
16683 test_types: test operations on the built-in types of Python
16693 New SGI-specific library modules
16694 --------------------------------
16696 CL: constants for use with the built-in compression library interface (cl)
16698 Queue: a multi-producer, multi-consumer queue class implemented for
16699 use with the built-in thread module
16701 SOCKET: constants for use with built-in module socket, e.g. to set/get
16702 socket options. This is SGI-specific because the constants to be
16703 passed are system-dependent. You can generate a version for your own
16713 ---------
16731 the RSA public-key cryptosystem!
16741 to run a diff and note the differences -- you can do this yourself if
16747 ----------------------------
16756 ----------------------------------------------------------
16773 ------------------------------
16775 User-defined classes can now implement operations invoked through
16781 ----------------------------
16784 compile-time options, you can now run a Configure.py script.
16792 on the Sun the provided strtod.c dumps core :-(
16799 -----------------------------
16804 Dynamic loading is now supported for Sun (and other non-COFF systems)
16805 throug dld-3.2.3, as well as for SGI (a new version of Jack Jansen's
16808 The system-dependent code for the use of the select() system call is
16816 ------------------------------------
16822 Changes to existing built-in functions and methods
16823 --------------------------------------------------
16832 New built-in function
16833 ---------------------
16839 Changes to built-in modules
16840 ---------------------------
16859 ---------------------------
16868 New built-in modules
16869 --------------------
16884 audioop: operations useful for audio programs, e.g. u-LAW and ADPCM
16898 pc: a minimal set of MS-DOS interfaces (MS-DOS only)
16904 --------------------
16914 profile: print run-time statistics of Python code
16916 readcd, cdplayer: companion modules for built-in module cd (sgi only)
16918 emacs: interface to Emacs using py-connect.el (see below).
16930 ---------
16932 scripts/pp.py: execute Python as a filter with a Perl-like command
16943 ----------------------------
16945 The last-minute syntax changes of release 0.9.6 are now reflected
16953 Slightly restructured the system-dependent chapters of the library
16965 ---------------------
16967 Incorporated Tim Peters' changes to python-mode.el, it's now version
16973 misc/py-connect.el (it needs some external Emacs lisp code)
16977 ----------------------------------------------------------
16990 improve the parallellism of multi-threaded programs by letting other
17005 - Restructured the misc subdirectory
17006 - Reference manual completed, library manual much extended (with indexes!)
17007 - the GNU Readline library is now distributed standard with Python
17008 - the script "../demo/scripts/classfix.py" fixes Python modules using old
17010 - Emacs python-mode.el (was python.el) vastly improved (thanks, Tim!)
17011 - Because of the GNU copyleft business I am not using the GNU regular
17012 expression implementation but a free re-implementation by Tatu Ylonen
17016 - stricter try stmt syntax: cannot mix except and finally clauses on 1 try
17017 - New module 'os' supplants modules 'mac' and 'posix' for most cases;
17019 - os.path.split() return value differs from that of old path.split()
17020 - sys.exc_type, sys.exc_value, sys.exc_traceback are set to the exception
17022 - sys.last_type, sys.last_value, sys.last_traceback remember last unhandled
17024 - New function string.expandtabs() expands tabs in a string
17025 - Added times() interface to posix (user & sys time of process & children)
17026 - Added uname() interface to posix (returns OS type, hostname, etc.)
17027 - New built-in function execfile() is like exec() but from a file
17028 - Functions exec() and eval() are less picky about whitespace/newlines
17029 - New built-in functions getattr() and setattr() access arbitrary attributes
17030 - More generic argument handling in built-in functions (see "./EXTENDING")
17031 - Dynamic loading of modules written in C or C++ (see "./DYNLOAD")
17032 - Division and modulo for long and plain integers with negative operands
17034 as a-(a/b)*b. So now the outcome of divmod(a,b) is the same as
17037 - A function with explicit variable-length argument list can be declared
17039 - Code tracing and profiling features have been added, and two source
17040 code debuggers are provided in the library (pdb.py, tty-oriented,
17041 and wdb, window-oriented); you can now step through Python programs!
17043 - '==' is now the only equality operator; "../demo/scripts/eqfix.py" is
17045 - Plain integer right shift now uses sign extension
17046 - Long integer shift/mask operations now simulate 2's complement
17048 - Changed/added range checks for long/plain integer shifts
17049 - Options found after "-c command" are now passed to the command in sys.argv
17050 (note subtle incompatibility with "python -c command -- -options"!)
17051 - Module stdwin is better protected against touching objects after they've
17053 - Stdwin now uses its own exception (stdwin.error)
17056 - dictionary objects can now be compared properly; e.g., {}=={} is true
17057 - new exception SystemExit causes termination if not caught;
17060 - new module "regex" implements GNU Emacs style regular expressions;
17062 - formal parameter lists may contain trailing commas
17065 - assigning to or deleting a list item with a negative index dumped core
17066 - divmod(-10L,5L) returned (-3L, 5L) instead of (-2L, 0L)
17069 - masking operations involving negative long integers gave wrong results
17076 - new function argument handling (see below)
17077 - built-in apply(func, args) means func(args[0], args[1], ...)
17078 - new, more refined exceptions
17079 - new exception string values (NameError = 'NameError' etc.)
17080 - better checking for math exceptions
17081 - for sequences (string/tuple/list), x[-i] is now equivalent to x[len(x)-i]
17082 - fixed list assignment bug: "a[1:1] = a" now works correctly
17083 - new class syntax, without extraneous parentheses
17084 - new 'global' statement to assign global variables from within a function
17088 ----------------
17111 ----------------------
17114 want to change from within a function in that module -- say, a count
17145 --------------
17152 AttributeError reference to non-existing attribute NameError
17154 ImportError import of non-existing module or name NameError
17162 The string value of each exception is now its name -- this makes it
17172 ------------------------------
17174 Off-line discussions with Steve Majewski and Daniel LaLiberte have
17178 provisions, would only break a very small amount of existing code --
17187 always implemented as a tuple, and it is a (run-time) error if a
17191 you want to write variadic functions -- functions that may be called
17197 tuple, and check its length -- it will be of size 0 if there are no
17200 Another anomaly of the old system was the way multi-argument methods
17229 arguments go undetected at first -- when the function tries to use the
17234 Two other rules and a new built-in function handle conversion between
17247 A new built-in function, apply(), was added to support functions that
17254 function(tuple[0], tuple[1], ..., tuple[len(tuple)-1])
17259 values (as in C++ or Modula-3), or a "rest" argument to receive the
17260 remaining arguments of a variable-length argument list.
17267 - string sys.version shows current version (also printed on interactive entry)
17268 - more detailed exceptions, e.g., IOError, ZeroDivisionError, etc.
17269 - 'global' statement to declare module-global variables assigned in functions.
17270 - new class declaration syntax: class C(Base1, Base2, ...): suite
17271 (the old syntax is still accepted -- be sure to convert your classes now!)
17272 - C shifting and masking operators: << >> ~ & ^ | (for ints and longs).
17273 - C comparison operators: == != (the old = and <> remain valid).
17274 - floating point numbers may now start with a period (e.g., .14).
17275 - definition of integer division tightened (always truncates towards zero).
17276 - new builtins hex(x), oct(x) return hex/octal string from (long) integer.
17277 - new list method l.count(x) returns the number of occurrences of x in l.
17278 - new SGI module: al (Indigo and 4D/35 audio library).
17279 - the FORMS interface (modules fl and FL) now uses FORMS 2.0
17280 - module gl: added lrect{read,write}, rectzoom and pixmode;
17281 added (non-GL) functions (un)packrect.
17282 - new socket method: s.allowbroadcast(flag).
17283 - many objects support __dict__, __methods__ or __members__.
17284 - dir() lists anything that has __dict__.
17285 - class attributes are no longer read-only.
17286 - classes support __bases__, instances support __class__ (and __dict__).
17287 - divmod() now also works for floats.
17288 - fixed obscure bug in eval('1 ').
17296 ----------
17298 - tutorial now (almost) complete; library reference reorganized
17299 - new syntax: continue statement; semicolons; dictionary constructors;
17301 - dramatically improved module load time through precompiled modules
17302 - arbitrary precision integers: compute 2 to the power 1000 and more...
17303 - arithmetic operators now accept mixed type operands, e.g., 3.14/4
17304 - more operations on list: remove, index, reverse; repetition
17305 - improved/new file operations: readlines, seek, tell, flush, ...
17306 - process management added to the posix module: fork/exec/wait/kill etc.
17307 - BSD socket operations (with example servers and clients!)
17308 - many new STDWIN features (color, fonts, polygons, ...)
17309 - new SGI modules: font manager and FORMS library interface
17313 ---------------------------------
17315 Here is a summary of the most important user-visible changes in 0.9.2,
17322 - Simple statements can now be separated by semicolons.
17325 - The 'continue' statement was added, with semantics as in C.
17326 - Dictionary displays are now allowed on input: {key: value, ...}.
17327 - Blank lines and lines bearing only a comment no longer need to
17328 be indented properly. (A completely empty line still ends a multi-
17330 - Mixed arithmetic is supported, 1 compares equal to 1.0, etc.
17331 - Option "-c command" to execute statements from the command line
17332 - Compiled versions of modules are cached in ".pyc" files, giving a
17333 dramatic improvement of start-up time
17334 - Other, smaller speed improvements, e.g., extracting characters from
17335 strings, looking up single-character keys, and looking up global
17337 - Interrupting a print operation raises KeyboardInterrupt instead of
17339 - Fixed various portability problems (it now passes gcc with only
17340 warnings -- more Standard C compatibility will be provided in later
17342 - Source is prepared for porting to MS-DOS
17343 - Numeric constants are now checked for overflow (this requires
17344 standard-conforming strtol() and strtod() functions; a correct
17349 2. Changes to the built-in types, functions and modules
17351 - New module socket: interface to BSD socket primitives
17352 - New modules pwd and grp: access the UNIX password and group databases
17353 - (SGI only:) New module "fm" interfaces to the SGI IRIX Font Manager
17354 - (SGI only:) New module "fl" interfaces to Mark Overmars' FORMS library
17355 - New numeric type: long integer, for unlimited precision
17356 - integer constants suffixed with 'L' or 'l' are long integers
17357 - new built-in function long(x) converts int or float to long
17358 - int() and float() now also convert from long integers
17359 - New built-in function:
17360 - pow(x, y) returns x to the power y
17361 - New operation and methods for lists:
17362 - l*n returns a new list consisting of n concatenated copies of l
17363 - l.remove(x) removes the first occurrence of the value x from l
17364 - l.index(x) returns the index of the first occurrence of x in l
17365 - l.reverse() reverses l in place
17366 - New operation for tuples:
17367 - t*n returns a tuple consisting of n concatenated copies of t
17368 - Improved file handling:
17369 - f.readline() no longer restricts the line length, is faster,
17371 - f.read() without arguments reads the entire (rest of the) file
17372 - mixing of print and sys.stdout.write() has different effect
17373 - New methods for files:
17374 - f.readlines() returns a list containing the lines of the file,
17376 - f.flush(), f.tell(), f.seek() call their stdio counterparts
17377 - f.isatty() tests for "tty-ness"
17378 - New posix functions:
17379 - _exit(), exec(), fork(), getpid(), getppid(), kill(), wait()
17380 - popen() returns a file object connected to a pipe
17381 - utime() replaces utimes() (the latter is not a POSIX name)
17382 - New stdwin features, including:
17383 - font handling
17384 - color drawing
17385 - scroll bars made optional
17386 - polygons
17387 - filled and xor shapes
17388 - text editing objects now have a 'settext' method
17393 - Name change: the functions path.cat and macpath.cat are now called
17395 - Added new modules: formatter, mutex, persist, sched, mainloop
17396 - Added some modules and functionality to the "widget set" (which is
17399 - Fixed module testall to work non-interactively
17400 - Module string:
17401 - added functions join() and joinfields()
17402 - fixed center() to work correct and make it "transitive"
17403 - Obsolete modules were removed: util, minmax
17404 - Some modules were moved to the demo directory
17409 - Added new useful scipts: byteyears, eptags, fact, from, lfact,
17411 - Added a bunch of socket demos
17412 - Doubled the speed of ptags
17413 - Added new stdwin demos: microedit, miniedit
17414 - Added a windowing interface to the Python interpreter: python (most
17416 - Added a browser for Emacs info files: demo/stdwin/ibrowse
17423 - An Emacs Lisp file "python.el" is provided to facilitate editing
17426 - Some info on writing an extension in C is provided
17427 - Some info on building Python on non-UNIX platforms is provided
17434 - Micro changes only
17435 - Added file "patchlevel.h"