Checkpointing news for 1.5.2a1... (Not all done.)

This commit is contained in:
Guido van Rossum 1998-08-06 17:55:46 +00:00
parent 23a163454a
commit f5475c95a7
1 changed files with 267 additions and 0 deletions

267
Misc/NEWS
View File

@ -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
=================