Checkpointing news for 1.5.2a1... (Not all done.)
This commit is contained in:
parent
23a163454a
commit
f5475c95a7
267
Misc/NEWS
267
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
|
||||
=================
|
||||
|
||||
|
|
Loading…
Reference in New Issue