diff options
Diffstat (limited to 'Misc/NEWS')
-rw-r--r-- | Misc/NEWS | 267 |
1 files changed, 267 insertions, 0 deletions
@@ -14,6 +14,273 @@ credit, let me know and I'll add you to the list! ====================================================================== +From 1.5.1 to 1.5.2a1 +===================== + +General/Miscellaneous +--------------------- + +- All patches on the patch page have been integrated. (But much more +has been done!) + +- Several memory leaks plugged (e.g. the one for classes with a +__getattr__ method). + +- Better checks for invalid input to int(), long(), string.atoi(), +string.atol(). (Formerly, a sign without digits would be accepted as +a legal ways to spell zero.) + +- New standard exceptions EnvironmentError and PosixError; +EnvironmentError is the base class for IOError and PosixError; +PosixError is the same as os.error. All this so that either exception +class can be instantiated with a third argument indicating a filename. +The built-in function open() and most os/posix functions that take a +filename argument now use this. + +- When searching for the library, a landmark that is a compiled module +(string.pyc or string.pyo) is also accepted. + +- Removed the only use of calloc(). This triggered an obscure bug on +multiprocessor Sparc Solaris 2.6. + +- Changes to map() and filter() to use the length of a sequence only +as a hint -- if an IndexError happens earlier, take that. (Formerly, +this was considered an error.) + +- Instance methods may now have other callable objects than just +Python functions as their im_func. Use new.instancemethod() or write +your own C code to create them; new.instancemethod() may be called +with None for the instance to create an unbound method. + +- Assignment to __dict__ or __bases__ of a class object is now +allowed (with stringent type checks). The cached values for +__getattr__ etc. are recomputed after such assignments (but not for +derived classes :-( ). + +- New and improved Misc/python-mode.el (Python mode for Emacs). + +- New, better performing sort() method for list objects. + +- List objects now have an experimental pop() method; l.pop() returns +and removes the last item; l.pop(i) returns and removes the item at i. + +- Experimental feature in getattr(): a third argument can specify a +default (instead of raising AttributeError). + +Documentation +------------- + +- The documentation has been expanded and the formatting improved. +(Remember that the documentation is now unbundled and has its own +release cycle though; see http://www.python.org/doc/.) + +- Doc strings have been added to many modules: socket, signal, select, +time, thread, sys, __builtin__. Also to methods of list objects (try +[].append.__doc__). A doc string on a type will now automatically be +propagated to an instance if the instance has methods that are +accessed in the usual way. + +Ports +----- + +- The BeOS port is now integrated. Courtesy Chris Herborth. + +- Symbol files for FreeBSD 2.x and 3.x have been contributed +(Lib/plat-freebsd[23]/*). + +Windows +------- + +- The project files have been moved so they are distributed in the +same subdirectory (PCbuild) where they must be used; this avoids +confusion. + +- New project files for Windows 3.1 port by Jim Ahlstrom. + +- Got rid of the obsolete subdirectory PC/setup_nt/. + +- os.environ is now all uppercase, but accesses are case insensitive. + +- Don't insist on proper case for module source files if the filename +is all uppercase (e.g. FOO.PY now matches foo; but FOO.py still +doesn't). This should address problems with this feature on +oldfashioned filesystems (Novell servers?). + +Library modules +--------------- + +- New tests (in Lib/test): reperf.py (regular expression benchmark), +sortperf.py (list sorting benchmark), test_MimeWriter.py (test case +for the MimeWriter module). + +- Changes to os.py: os.environ now upcases keys before storing them on +Windows, DOS and OS/2; new functions makedirs(), removedirs(), +renames(). + +- Changes to the 'os.path' submodule of os.py: added getsize(), +getmtime(), getatime() -- these fetch the most popular items from the +stat return tuple. + +- The smtplib.py module now supports ESMTP and has improved standard +compliance, for picky servers. + +- Some fixes to gzip.py. In particular, the readlines() method now +returns the lines *with* trailing newline characters, like readlines() +of regular file objects. + +- In whrandom.py, added new method and function randrange(), same as +choice(range(start, stop, step)) but faster. This addresses the +problem that randint() was accidentally defined as taking an inclusive +range. Also, randint(a, b) is now redefined as randrange(a, b+1), +adding extra range and type checking to its arguments! + +- In getpass.py, don't use raw_input() to ask for the password -- we +don't want it to show up in the readline history! + +- Generalized test/regrtest.py so that it is useful for testing other +packages. + +- Some small changes in urllib.py; sped up unquote() and quote(), +fixed an obscure bug in quote_plus(). Added urlencode(dict) -- +convenience function for sending a POST request with urlopen(). +Rewrote the (test) main program so that when used as a script, it can +retrieve one or more URLs to stdout. Use -t to run the self-test. + +- In pdb.py, support for setting breaks on files/modules that haven't +been loaded yet. + +- In rfc822.py, fix tell/seek when using files opened in text mode on +Windows. Also add a new class AddressList. + +- In mailbox.py, fix tell/seek when using files opened in text mode on +Windows. + +- Some speedups to re.py, especially the string substitution and split +functions. Also added new function/method findall(), to find all +occurrences of a given substring. + +- Improvements to rexec.py: package support; support a (minimal) +sys.exc_info(). Also made the (test) main program a bit fancier (you +can now use it to run arbitrary Python scripts in restricted mode). + +- In sgmllib.py, restore the call to report_unbalanced() that was lost +long ago. + +- Major upgrade to ConfigParser.py; converted to using 're', added new +exceptions, support underscore in section header and option name, no +longer add 'name' option to every section. + +- The ihooks.py module now understands package imports. + +- Some restructuring and generalization done to cmd.py. + +- Some restructuring and generalization done to multifile.py. + +- In cgi.py, treat "HEAD" the same as "GET", so that CGI scripts don't +fail when someone asks for their HEAD. + +- Improved imaplib.py. + +- In code.py, add a class that subsumes Fredrik Lundh's +PythonInterpreter class. The interact() function now uses this. + +- In multifile.py, support a seekable flag. + +- Fixed UDP support in SocketServer.py, which never worked. + +- In rlcompleter.py, in completer(), return None instead of raising an +IndexError when there are no more completions left. + + +Tkinter +------- + +- New demos in Demo/tkinter/guido/: brownian.py, redemo.py, switch.py. + +- No longer register Tcl_finalize() as a low-level exit handler. It +may call back into Python, and that's a bad idea. + +- On Unix, Tkinter can now safely be used from a multi-threaded +application. (Formerly, no threads would make progress while +Tkinter's mainloop() was active, because it didn't release the Python +interpreter lock.) Unfortunately, on Windows, threads other than the +main thread should not call update() or update_idletasks() because +this will deadlock the application. + +- Allow binding of Tcl commands (given as a string). + +- Some minor speedups. + +Extension modules +----------------- + +- In the socket module: new function gethostbyname_ex(). + +- Added some of the "wait status inspection" macros as functions: +WEXITSTATUS(), WIFEXITED(), WIFSIGNALED(), WIFSTOPPED(), WSTOPSIG(), +WTERMSIG(). + +- In cStringIO, add better argument type checking and support the +readonly 'closed' attribute (like regular files). + +- On Windows, in select, put the (huge) file descriptor arrays on the +heap. + +- In the struct module, unsigned 1-2 byte sized formats no longer +result in long integer values. + +Build procedure +--------------- + +- Finally fixed the configure script so that (on SGI) if -OPT:Olimit=0 +works, it won't also use -Olimit 1500 (which gives a warning for every +file). + +- Other miscellaneous improvements to the configure script. + +Tools +----- + +- Some improvements to the freeze script. + +- New tool ndiff.py: Tim Peters' text diffing tool. + +- The script texi2html.py (which was part of the Doc tree but is no +longer used there) has been moved to the Tools/scripts subdirectory. + +- Some generalizations in the webchecker code. There's now a +primnitive gui for websucker.py: wsgui.py. (In Tools/webchecker/.) + +- Some improvements to freeze (made it more robust on Windows). + +- The ftpmirror.py script now handles symbolic links properly. + +Python/C API +------------ + +- New APIs for conversion between Python longs and C 'long long' if +your compiler supports it. + +- The code that initializes sys.path now calls Py_GetPythonHome() +instead of getenv("PYTHONHOME"). This, together with the new API +Py_SetPythonHome(), makes it easier for embedding applications to +change the notion of Python's "home" directory (where the libraries +etc. are sought). + +- Changes to PySequence_Tuple() and PySequence_List() to use the +length of a sequence only as a hint -- if an IndexError happens +earlier, take that. (Formerly, this was considered an error.) + +- New macros to access object members for PyFunction, PyCFunction +objects. + +- New APIs PyImport_AppendInittab() an PyImport_ExtendInittab() to +dynamically add one or many entries to the table of built-in modules. + +- New macro Py_InitModule3(name, methods, doc) which calls +Py_InitModule4() with appropriate arguments. (The -4 variant requires +you to pass an obscure version number constant which is always the same.) + From 1.5 to 1.5.1 ================= |