mirror of https://github.com/python/cpython.git
533 lines
20 KiB
Plaintext
533 lines
20 KiB
Plaintext
=========================================
|
|
==> Release 1.4beta3 (August 26 1996) <==
|
|
=========================================
|
|
|
|
|
|
(XXX This is less readable that it should. I promis to restructure it
|
|
for the final 1.4 release.)
|
|
|
|
|
|
What's new in 1.4beta3 (since beta2)?
|
|
-------------------------------------
|
|
|
|
- In urllib.urlopen(): HTTP URLs containing user:passwd@host are now
|
|
handled correctly when using a proxy server.
|
|
|
|
- In ntpath.normpath(): don't truncate to 8+3 format.
|
|
|
|
- In mimetools.choose_boundary(): don't die when getuid() or getpid()
|
|
aren't defined.
|
|
|
|
- Module urllib: some optimizations to (un)quoting.
|
|
|
|
- New module MimeWriter for writing MIME documents.
|
|
|
|
- More changes to formatter module.
|
|
|
|
- The freeze script works once again and is much more robust (using
|
|
sys.prefix etc.). It also supports a -o option to specify an
|
|
output directory.
|
|
|
|
- New module whichdb recognizes dbm, gdbm and bsddb/dbhash files.
|
|
|
|
- The Doc/Makefile targets have been reorganized somewhat to remove the
|
|
insistence on always generating PostScript.
|
|
|
|
- The texinfo to html filter (Doc/texi2html.py) has been improved somewhat.
|
|
|
|
- "errors.h" has been renamed to "pyerrors.h" to resolve a long-standing
|
|
name conflict on the Mac.
|
|
|
|
- Linking a module compiled with a different setting for Py_TRACE_REFS now
|
|
generates a linker error rather than a core dump.
|
|
|
|
- The cgi module has a new convenience function print_exception(), which
|
|
formats a python exception using HTML. It also fixes a bug in the
|
|
compatibility code and adds a dubious feature which makes it possible to
|
|
have two query strings, one in the URL and one in the POST data.
|
|
|
|
- A subtle change in the unpickling of class instances makes it possible
|
|
to unpickle in restricted execution mode, where the __dict__ attribute is
|
|
not available (but setattr() is).
|
|
|
|
- Documentation for os.path.splitext() (== posixpath.splitext()) has been
|
|
cleared up. It splits at the *last* dot.
|
|
|
|
- posixfile locking is now also correctly supported on AIX.
|
|
|
|
- The tempfile module once again honors an initial setting of tmpdir. It
|
|
now works on Windows, too.
|
|
|
|
- The traceback module has some new functions to extract, format and print
|
|
the active stack.
|
|
|
|
- Some translation functions in the urllib module have been made a little
|
|
less sluggish.
|
|
|
|
- The addtag_* methods for Canvas widgets in Tkinter as well as in the
|
|
separate Canvas class have been fixed so they actually do something
|
|
meaningful.
|
|
|
|
- A tiny _test() function has been added to Tkinter.py.
|
|
|
|
- A generic Makefile for dynamically loaded modules is provided in the Misc
|
|
subdirectory (Misc/gMakefile).
|
|
|
|
- A new version of python-mode.el for Emacs is provided. See
|
|
http://www.python.org/ftp/emacs/pmdetails.html for details. The
|
|
separate file pyimenu.el is no longer needed, imenu support is folded
|
|
into python-mode.el.
|
|
|
|
- The configure script can finally correctly find the readline library in a
|
|
non-standard location. The LDFLAGS variable is passed on the the Makefiles
|
|
from the configure script.
|
|
|
|
- Shared libraries are now installed as programs (i.e. with executable
|
|
permission). This is required on HP-UX and won't hurt on other systems.
|
|
|
|
- The objc.c module is no longer part of the distribution. Objective-C
|
|
support may become available as contributed software on the ftp site.
|
|
|
|
- The sybase module is no longer part of the distribution. May John
|
|
Redford rot in hell. A much improved sybase module is available as
|
|
contributed software from the ftp site.
|
|
|
|
- _tkinter is now compatible with Tcl 7.5 / Tk 4.1 patch1 on Windows and
|
|
Mac (don't use unpatched Tcl/Tk!). The default line in the Setup.in file
|
|
now links with Tcl 7.5 / Tk 4.1 rather than 7.4/4.0.
|
|
|
|
- In Setup, you can now write "*shared*" instead of "*noconfig*", and you
|
|
can use *.so and *.sl as shared libraries.
|
|
|
|
- Some more fidgeting for AIX shared libraries.
|
|
|
|
- The mpz module is now compatible with GMP 2.x. (Not tested by me.)
|
|
(Note -- a complete replacement by Niels Mo"ller, called gpmodule, is
|
|
available from the contrib directory on the ftp site.)
|
|
|
|
- A warning is written to sys.stderr when a __del__ method raises an
|
|
exception (formerly, such exceptions were completely ignored).
|
|
|
|
- The configure script now defines HAVE_OLD_CPP if the C preprocessor is
|
|
incapable of ANSI style token concatenation and stringification.
|
|
|
|
- All source files (except a few platform specific modules) are once again
|
|
compatible with K&R C compilers as well as ANSI compilers. In particular,
|
|
ANSI-isms have been removed or made conditional in complexobject.c,
|
|
getargs.c and operator.c.
|
|
|
|
- The abstract object API has three new functions, PyObject_DelItem,
|
|
PySequence_DelItem, and PySequence_DelSlice.
|
|
|
|
- The operator module has new functions delitem and delslice, and the
|
|
functions "or" and "and" are renamed to "or_" and "and_" (since "or" and
|
|
"and" are reserved words). ("__or__" and "__and__" are unchanged.)
|
|
|
|
- The environment module is no longer supported; putenv() is now a function
|
|
in posixmodule (also under NT).
|
|
|
|
- Error in filter(<function>, "") has been fixed.
|
|
|
|
- Unrecognized keyword arguments raise TypeError, not KeyError.
|
|
|
|
- Better portability, fewer bugs and memory leaks, fewer compiler warnings,
|
|
some more documentation.
|
|
|
|
- Bug in float power boundary case (0.0 to the negative integer power)
|
|
fixed.
|
|
|
|
- The test of negative number to the float power has been moved from the
|
|
built-in pow() functin to floatobject.c (so complex numbers can yield the
|
|
correct result).
|
|
|
|
- The bug introduced in beta2 where shared libraries loaded (using
|
|
dlopen()) from the current directory would fail, has been fixed.
|
|
|
|
- Modules imported as shared libraries now also have a __file__ attribute,
|
|
giving the filename from which they were loaded. The only modules without
|
|
a __file__ attribute now are built-in modules.
|
|
|
|
- On the Mac, dynamically loaded modules can end in either ".slb" or
|
|
".<platform>.slb" where <platform> is either "CFM68K" or "ppc". The ".slb"
|
|
extension should only be used for "fat" binaries.
|
|
|
|
- C API addition: marshal.c now supports
|
|
PyMarshal_WriteObjectToString(object).
|
|
|
|
- C API addition: getargs.c now supports
|
|
PyArg_ParseTupleAndKeywords(args, kwdict, format, kwnames, ...)
|
|
to parse keyword arguments.
|
|
|
|
- The PC versioning scheme (sys.winver) has changed once again. the
|
|
version number is now "<digit>.<digit>.<digit>.<apiversion>", where the
|
|
first three <digit>s are the Python version (e.g. "1.4.0" for Python 1.4,
|
|
"1.4.1" for Python 1.4.1 -- the beta level is not included) and
|
|
<apiversion> is the four-digit PYTHON_API_VERSION (currently 1005).
|
|
|
|
- h2py.py accepts whitespace before the # in CPP directives
|
|
|
|
- On Solaris 2.5, it should now be possible to use either Posix threads or
|
|
Solaris threads (XXX: how do you select which is used???). (Note: the
|
|
Python pthreads interface doesn't fully support semaphores yet -- anyone
|
|
care to fix this?)
|
|
|
|
- Thread support should now work on AIX, using either DCE threads or
|
|
pthreads.
|
|
|
|
- New file Demo/sockets/unicast.py
|
|
|
|
- Working Mac port, with CFM68K support, with Tk 4.1 support (though not
|
|
both) (XXX)
|
|
|
|
- New project setup for PC port, now compatible with PythonWin, with
|
|
_tkinter and NumPy support (XXX)
|
|
|
|
- New module site.py (XXX)
|
|
|
|
- New module xdrlib.py and optional support module _xdrmodule.c (XXX)
|
|
|
|
- parser module adapted to new grammar, complete w/ Doc & Demo (XXX)
|
|
|
|
- regen script fixed (XXX)
|
|
|
|
- new machdep subdirectories Lib/{aix3,aix4,next3_3,freebsd2,linux2} (XXX)
|
|
|
|
- testall now also tests math module (XXX)
|
|
|
|
- string.atoi c.s. now raise an exception for an empty input string.
|
|
|
|
- At last, it is no longer necessary to define HAVE_CONFIG_H in order to
|
|
have config.h included at various places.
|
|
|
|
- Unrecognized keyword arguments now raise TypeError rather than KeyError.
|
|
|
|
- The makesetup script recognizes files with extension .so or .sl as
|
|
(shared) libraries.
|
|
|
|
- 'access' is no longer a reserved word, and all code related to its
|
|
implementation is gone (or at least #ifdef'ed out). This should make
|
|
Python a little speedier too!
|
|
|
|
- Performance enhancements suggested by Sjoerd Mullender. This includes
|
|
the introduction of two new optional function pointers in type object,
|
|
getattro and setattro, which are like getattr and setattr but take a
|
|
string object instead of a C string pointer.
|
|
|
|
- New operations in string module: lstrip(s) and rstrip(s) strip whitespace
|
|
only on the left or only on the right, A new optional third argument to
|
|
split() specifies the maximum number of separators honored (so
|
|
splitfields(s, sep, n) returns a list of at most n+1 elements). (Since
|
|
1.3, splitfields(s, None) is totally equivalent to split(s).)
|
|
string.capwords() has an optional second argument specifying the
|
|
separator (which is passed to split()).
|
|
|
|
- regsub.split() has the same addition as string.split(). regsub.splitx(s,
|
|
sep, maxsep) implements the functionality that was regsub.split(s, 1) in
|
|
1.4beta2 (return a list containing the delimiters as well as the words).
|
|
|
|
- Final touch for AIX loading, rewritten Misc/AIX-NOTES.
|
|
|
|
- In Modules/_tkinter.c, when using Tk 4.1 or higher, use className
|
|
argument to _tkinter.create() to set Tcl's argv0 variable, so X
|
|
resources use the right resource class again.
|
|
|
|
- Add #undef fabs to Modules/mathmodule.c for macintosh.
|
|
|
|
- Added some macro renames for AIX in Modules/operator.c.
|
|
|
|
- Removed spurious 'E' from Doc/liberrno.tex.
|
|
|
|
- Got rid of some cruft in Misc/ (dlMakefile, pyimenu.el); added new
|
|
Misc/gMakefile and new version of Misc/python-mode.el.
|
|
|
|
- Fixed typo in Lib/ntpath.py (islink has "return false" which gives a
|
|
NameError).
|
|
|
|
- Added missing "from types import *" to Lib/tkinter/Canvas.py.
|
|
|
|
- Added hint about using default args for __init__ to pickle docs.
|
|
|
|
- Corrected typo in Inclide/abstract.h: PySequence_Lenth ->
|
|
PySequence_Length.
|
|
|
|
- Some improvements to Doc/texi2html.py.
|
|
|
|
- In Python/import.c, Cast unsigned char * in struct _frozen to char *
|
|
in calls to rds_object().
|
|
|
|
- In doc/ref4.tex, added note about scope of lambda bodies.
|
|
|
|
What's new in 1.4beta2 (since beta1)?
|
|
-------------------------------------
|
|
|
|
- Portability bug in the md5.h header solved.
|
|
|
|
- The PC build procedure now really works, and sets sys.platform to a
|
|
meaningful value (a few things were botched in beta 1). Lib/dos_8x3
|
|
is now a standard part of the distribution (alas).
|
|
|
|
- More improvements to the installation procedure. Typing "make install"
|
|
now inserts the version number in the pathnames of almost everything
|
|
installed, and creates the machine dependent modules (FCNTL.py etc.) if not
|
|
supplied by the distribution. (XXX There's still a problem with the latter
|
|
because the "regen" script requires that Python is installed. Some manual
|
|
intervention may still be required.) (This has been fixed in 1.4beta3.)
|
|
|
|
- New modules: errno, operator (XXX).
|
|
|
|
- Changes for use with Numerical Python: builtin function slice() and
|
|
Ellipses object, and corresponding syntax:
|
|
|
|
x[lo:hi:stride] == x[slice(lo, hi, stride)]
|
|
x[a, ..., z] == x[(a, Ellipses, z)]
|
|
|
|
- New documentation for errno and cgi mdoules.
|
|
|
|
- The directory containing the script passed to the interpreter is
|
|
inserted in from of sys.path; "." is no longer a default path
|
|
component.
|
|
|
|
- Optional third string argument to string.translate() specifies
|
|
characters to delete. New function string.maketrans() creates a
|
|
translation table for translate() or for regex.compile().
|
|
|
|
- Module posix (and hence module os under Unix) now supports putenv().
|
|
Moreover, module os is enhanced so that if putenv() is supported,
|
|
assignments to os.environ entries make the appropriate putenv() call.
|
|
(XXX the putenv() implementation can leak a small amount of memory per
|
|
call.)
|
|
|
|
- pdb.py can now be invoked from the command line to debug a script:
|
|
python pdb.py <script> <arg> ...
|
|
|
|
- Much improved parseaddr() in rfc822.
|
|
|
|
- In cgi.py, you can now pass an alternative value for environ to
|
|
nearly all functions.
|
|
|
|
- You can now assign to instance variables whose name begins and ends
|
|
with '__'.
|
|
|
|
- New version of Fred Drake's parser module and associates (token,
|
|
symbol, AST).
|
|
|
|
- New PYTHON_API_VERSION value and .pyc file magic number (again!).
|
|
|
|
- The "complex" internal structure type is now called "Py_complex" to
|
|
avoid name conflicts.
|
|
|
|
- Numerous small bugs fixed.
|
|
|
|
- Slight pickle speedups.
|
|
|
|
- Some slight speedups suggested by Sjoerd (more coming in 1.4 final).
|
|
|
|
- NeXT portability mods by Bill Bumgarner integrated.
|
|
|
|
- Modules regexmodule.c, bsddbmodule.c and xxmodule.c have been
|
|
converted to new naming style.
|
|
|
|
|
|
What's new in 1.4beta1 (since 1.3)?
|
|
-----------------------------------
|
|
|
|
- Added sys.platform and sys.exec_platform for Bill Janssen.
|
|
|
|
- Installation has been completely overhauled. "make install" now installs
|
|
everything, not just the python binary. Installation uses the install-sh
|
|
script (borrowed from X11) to install each file.
|
|
|
|
- New functions in the posix module: mkfifo, plock, remove (== unlink),
|
|
and ftruncate. More functions are also available under NT.
|
|
|
|
- New function in the fcntl module: flock.
|
|
|
|
- Shared library support for FreeBSD.
|
|
|
|
- The --with-readline option can now be used without a DIRECTORY argument,
|
|
for systems where libreadline.* is in one of the standard places. It is
|
|
also possible for it to be a shared library.
|
|
|
|
- The extension tkinter has been renamed to _tkinter, to avoid confusion
|
|
with Tkinter.py oncase insensitive file systems. It now supports Tk 4.1 as
|
|
well as 4.0.
|
|
|
|
- Author's change of address from CWI in Amsterdam, The Netherlands, to
|
|
CNRI in Reston, VA, USA.
|
|
|
|
- The math.hypot() function is now always available (if it isn't found in
|
|
the C math library, Python provides its own implementation).
|
|
|
|
- The latex documentation is now compatible with latex2e, thanks to David
|
|
Ascher.
|
|
|
|
- The expression x**y is now equivalent to pow(x, y).
|
|
|
|
- The indexing expression x[a, b, c] is now equivalent to x[(a, b, c)].
|
|
|
|
- Complex numbers are now supported. Imaginary constants are written with
|
|
a 'j' or 'J' prefix, general complex numbers can be formed by adding a real
|
|
part to an imaginary part, like 3+4j. Complex numbers are always stored in
|
|
floating point form, so this is equivalent to 3.0+4.0j. It is also
|
|
possible to create complex numbers with the new built-in function
|
|
complex(re, [im]). For the footprint-conscious, complex number support can
|
|
be disabled by defining the symbol WITHOUT_COMPLEX.
|
|
|
|
- New built-in function list() is the long-awaited counterpart of tuple().
|
|
|
|
- There's a new "cmath" module which provides the same functions as the
|
|
"math" library but with complex arguments and results. (There are very
|
|
good reasons why math.sqrt(-1) still raises an exception -- you have to use
|
|
cmath.sqrt(-1) to get 1j for an answer.)
|
|
|
|
- The Python.h header file (which is really the same as allobjects.h except
|
|
it disables support for old style names) now includes several more files,
|
|
so you have to have fewer #include statements in the average extension.
|
|
|
|
- The NDEBUG symbol is no longer used. Code that used to be dependent on
|
|
the presence of NDEBUG is now present on the absence of DEBUG. TRACE_REFS
|
|
and REF_DEBUG have been renamed to Py_TRACE_REFS and Py_REF_DEBUG,
|
|
respectively. At long last, the source actually compiles and links without
|
|
errors when this symbol is defined.
|
|
|
|
- Several symbols that didn't follow the new naming scheme have been
|
|
renamed (usually by adding to rename2.h) to use a Py or _Py prefix. There
|
|
are no external symbols left without a Py or _Py prefix, not even those
|
|
defined by sources that were incorporated from elsewhere (regexpr.c,
|
|
md5c.c). (Macros are a different story...)
|
|
|
|
- There are now typedefs for the structures defined in config.c and
|
|
frozen.c.
|
|
|
|
- New PYTHON_API_VERSION value and .pyc file magic number.
|
|
|
|
- New module Bastion. (XXX)
|
|
|
|
- Improved performance of StringIO module.
|
|
|
|
- UserList module now supports + and * operators.
|
|
|
|
- The binhex and binascii modules now actually work.
|
|
|
|
- The cgi module has been almost totally rewritten and documented.
|
|
It now supports file upload and a new data type to handle forms more
|
|
flexibly.
|
|
|
|
- The formatter module (for use with htmllib) has been overhauled (again).
|
|
|
|
- The ftplib module now supports passive mode and has doc strings.
|
|
|
|
- In (ideally) all places where binary files are read or written, the file
|
|
is now correctly opened in binary mode ('rb' or 'wb') so the code will work
|
|
on Mac or PC.
|
|
|
|
- Dummy versions of os.path.expandvars() and expanduser() are now provided
|
|
on non-Unix platforms.
|
|
|
|
- Module urllib now has two new functions url2pathname and pathname2url
|
|
which turn local filenames into "file:..." URLs using the same rules as
|
|
Netscape (why be different). it also supports urlretrieve() with a
|
|
pathname parameter, and honors the proxy environment variables (http_proxy
|
|
etc.). The URL parsing has been improved somewhat, too.
|
|
|
|
- Micro improvements to urlparse. Added urlparse.urldefrag() which
|
|
removes a trailing ``#fragment'' if any.
|
|
|
|
- The mailbox module now supports MH style message delimiters as well.
|
|
|
|
- The mhlib module contains some new functionality: setcontext() to set the
|
|
current folder and parsesequence() to parse a sequence as commonly passed
|
|
to MH commands (e.g. 1-10 or last:5).
|
|
|
|
- New module mimify for conversion to and from MIME format of email
|
|
messages.
|
|
|
|
- Module ni now automatically installs itself when first imported -- this
|
|
is against the normal rule that modules should define classes and functions
|
|
but not invoke them, but appears more useful in the case that two
|
|
different, independent modules want to use ni's features.
|
|
|
|
- Some small performance enhancements in module pickle.
|
|
|
|
- Small interface change to the profile.run*() family of functions -- more
|
|
sensible handling of return values.
|
|
|
|
- The officially registered Mac creator for Python files is 'Pyth'. This
|
|
replaces 'PYTH' which was used before but never registered.
|
|
|
|
- Added regsub.capwords(). (XXX)
|
|
|
|
- Added string.capwords(), string.capitalize() and string.translate().
|
|
(XXX)
|
|
|
|
- Fixed an interface bug in the rexec module: it was impossible to pass a
|
|
hooks instance to the RExec class. rexec now also supports the dynamic
|
|
loading of modules from shared libraries. Some other interfaces have been
|
|
added too.
|
|
|
|
- Module rfc822 now caches the headers in a dictionary for more efficient
|
|
lookup.
|
|
|
|
- The sgmllib module now understands a limited number of SGML "shorthands"
|
|
like <A/.../ for <A>...</A>. (It's not clear that this was a good idea...)
|
|
|
|
- The tempfile module actually tries a number of different places to find a
|
|
usable temporary directory. (This was prompted by certain Linux
|
|
installations that appear to be missing a /usr/tmp directory.) [A bug in
|
|
the implementation that would ignore a pre-existing tmpdir global has been
|
|
fixed in beta3.]
|
|
|
|
- Much improved and enhanved FileDialog module for Tkinter.
|
|
|
|
- Many small changes to Tkinter, to bring it more in line with Tk 4.0 (as
|
|
well as Tk 4.1).
|
|
|
|
- New socket interfaces include ntohs(), ntohl(), htons(), htonl(), and
|
|
s.dup(). Sockets now work correctly on Windows. On Windows, the built-in
|
|
extension is called _socket and a wrapper module win/socket.py provides
|
|
"makefile()" and "dup()" functionality. On Windows, the select module
|
|
works only with socket objects.
|
|
|
|
- Bugs in bsddb module fixed (e.g. missing default argument values).
|
|
|
|
- The curses extension now includes <ncurses.h> when available.
|
|
|
|
- The gdbm module now supports opening databases in "fast" mode by
|
|
specifying 'f' as the second character or the mode string.
|
|
|
|
- new variables sys.prefix and sys.exec_prefix pass corresponding
|
|
configuration options / Makefile variables to the Python programmer.
|
|
|
|
- The ``new'' module now supports creating new user-defined classes as well
|
|
as instances thereof.
|
|
|
|
- The soundex module now sports get_soundex() to get the soundex value for an
|
|
arbitrary string (formerly it would only do soundex-based string
|
|
comparison) as well as doc strings.
|
|
|
|
- New object type "cobject" to safely wrap void pointers for passing them
|
|
between various extension modules.
|
|
|
|
- More efficient computation of float**smallint.
|
|
|
|
- The mysterious bug whereby "x.x" (two occurrences of the same
|
|
one-character name) typed from the commandline would sometimes fail
|
|
mysteriously.
|
|
|
|
- The initialization of the readline function can now be invoked by a C
|
|
extension through PyOS_ReadlineInit().
|
|
|
|
- There's now an externally visible pointer PyImport_FrozenModules which
|
|
can be changed by an embedding application.
|
|
|
|
- The argument parsing functions now support a new format character 'D' to
|
|
specify complex numbers.
|
|
|
|
- Various memory leaks plugged and bugs fixed.
|
|
|
|
- Improved support for posix threads (now that real implementations are
|
|
beginning to apepar). Still no fully functioning semaphores.
|
|
|
|
- Some various and sundry improvements and new entries in the Tools
|
|
directory.
|