summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
diff options
context:
space:
mode:
Diffstat (limited to 'Misc/NEWS')
-rw-r--r--Misc/NEWS267
1 files changed, 267 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 920b656..b58f79c 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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
=================