Lines Matching +full:libbsd +full:- +full:dev
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
339 /dev/null in certain cases; this is now fixed.
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
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.
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
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
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
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
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
15482 New Built-in Functions
15483 ----------------------
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
16894 sunaudiodev: interface to sun's /dev/audio (dynamic only, sun only)
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
17206 dev moveto(self, (x, y)): ...
17215 dev moveto(self, x, y): ...
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"