README: changed URL format to <URL:...>; added section on Tk.

Makefile.in: run config.status in "make recheck".
configure.in: add test for hypot().
config.h.in, configure: since configure.in changed.
rest: the usual boring stuff.
This commit is contained in:
Guido van Rossum 1995-01-04 19:02:35 +00:00
parent efc8713428
commit af5b83ec4a
8 changed files with 255 additions and 81 deletions

88
BUGS
View File

@ -3,12 +3,44 @@ immediately upon receiving the first complaint I usually did not
nother to make an entry in this file, unless it was a serious bug
(core dump or infinite loop).
==> Status indicators: (-) not fixed; (*) fixed; (?) don't know what to do.
==> Status indicators: (-) not fixed; (*) fixed; (?) not sure.
======================================================================
Known BUGS in 1.1.1 and 1.2
---------------------------
(-) C-level coerce() doesn't call __coerce__ when it should (and
similar for __cmp__)
(-) tkinter seems to leave an exception around sometime which breaks
unmarshalling code objects [hard to reproduce, have added a trap to
catch it]
(-) destroying all modules may destroy __builtin__ (or other modules)
while destructors of other modules may still need it [hard to fix --
could maintain a list of all modules in order of importation so we can
destroy them in reverse order??? really hopeless -- would have to
destroy objects in a module in reverse order too...]
(-) [X]DECREF can cause the interpreter to be called recursively (for
__del__ disciplines) -- so list and dict implementation calls doing
DECREF can cause recursive calls to methods of the object being
modified. Other files too. [Only partially fixed -- listobject.c is
still suspect.]
(-) struct module aligns doubles wrongly when compiled with -DDEBUG on
sparc
(-) if __getattr__ prints something, calling repr(x) from cmd line
forgets a newline
(-) doneimport() should be called *before* the Py_AtExit code is called
Environmental bugs
------------------
(-) tkinter doesn't seem to see any declaration of malloc on sunos 4.1.3
(-) arraymodule doesn't compile under Ultrix (FPROTO macro)
(-) Linux uses GNU getopt by default which is broken
@ -17,54 +49,36 @@ Known BUGS in 1.1.1 and 1.2
(-) "make depend" assumes mkdep exists -- not portable
(-) threadmodule.c leaks LOTS of memory at thread exit
(-) tkinter seems to leave an exception around sometime which breaks
unmarshalling code objects
(-) memory leak (namebuf) in initmodule2
(-) regen calls h2py which isn't defined by default
(-) shared install in Modules still doesn't work for empty list
(-) make libinstall (or similar) references to machdep directory but
doesn't create it
(-) destroying all modules may destroy __builtin__ while destructors
of other modules may still need it
(-) hash() of float values returns suspect values
(-) sockets aren't thread safe (address of static struct returned,
some calls aren't thread safe)
(-) Everything else that uses err_get() should probably use err_get_tb()
(-) struct module aligns doubles wrongly when compiled with -DDEBUG on sparc
(-) pow(int, int, long) (etc.) dumps core on Linux (and other Intel machines?)
(-) C-level coerce() doesn't call __coerce__ when it should (and
similar for __cmp__)
(-) DECREF can cause the interpreter to be called recursively (for
__del__ disciplines) -- so list and dict implementation calls doing
DECREF can cause recursive calls to methods of the object being
modified. Other files too. (Only partially fixed.)
(-) HP doesn't compile out of the box (needs LIBS=-ldld or
LIBS=/usr/lib/libdld.sl)
(-) something fishy with softspace and print_error (flushline clears
the error)
(-) tkinter doesn't seem to see any declaration of malloc on sunos 4.1.3
======================================================================
BUGS present in 1.1.1 and fixed in 1.2
--------------------------------------
(*) memory leak (namebuf) in initmodule2
(*) hash() of float values returns bogus values
(*) pow(int, int, long) does wrong series of DECREF() calls.
(*) flushline() may clear the exception condition so shouldn't be
called before print_error()
(*) Everything else that uses err_get() should use err_fetch()
(*) sockets aren't thread safe (address of static struct returned,
some calls aren't thread safe)
(*) threadmodule.c leaks LOTS of memory at thread exit
(*) shared install in Modules still doesn't work for empty list
(*) threadmodule.c leaks 'res' in t_bootstrap
(*) errors.c shouldn't declare strerror() on NT

View File

@ -1,3 +1,66 @@
Wed Jan 4 18:23:09 1995 Guido van Rossum <guido@voorn.cwi.nl>
* Python/modsupport.c (initmodule2), Include/methodobject.h,
Objects/methodobject.c: introduced METH_FREENAME bit passed to
newmethodobject to indicate that if the object is freed the name
pointer must also be freed (this saves a long standing memory leak
in initmodule2)
* Modules/structmodule.c (struct_pack, struct_unpack): use memcpy
instead of double precision assignment (since a string isn't
always double-aligned, e.g. when debug fields are present in the
object header)
* Objects/floatobject.c (float_hash): changed a constant to avoid
float->long conversion overflow
* Python/bltinmodule.c (builtin_pow): fix coerce() ref count
nightmare (core dumps on Linux)
* Python/pythonrun.c: call flushline() in print_error(), after
fetching the exception info, since flushline() can mask an
exception; move flushline() calls around so they are not between
the detection and printing of the exception
Tue Jan 3 12:55:28 1995 Guido van Rossum <guido@voorn.cwi.nl>
* Modules/config.c.in (getcopyright): Change copyright to include
1995
Mon Jan 2 20:15:39 1995 Guido van Rossum <guido@voorn.cwi.nl>
* Objects/mappingobject.c (mappingremove): don't call
lookmapping() for empty dictionary
* Doc/libsocket.tex (section{Built-in Module \sectcode{socket}}):
documented gethostbyaddr()
* Modules/mpzmodule.c (mpz_power): made it ternary
* Modules/mathmodule.c: only use hypot() if it exists
* Modules/Makefile.pre.in (sharedinstall): fix bug (sh can't loop
over empty list) when $(SHAREDMODS) is empty
sMon Jan 2 19:35:49 1995 Guido van Rossum <guido@voorn.cwi.nl>
* Python/errors.c: added hook for better mac error messages
* Python/pythonrun.c (run_script): removed extraneous fclose() in
case of .pyc file argument
* Include/{object.h,stringobject.h}: changed refcnt and sizes from
unsigned to int (i.e. signed)
* Objects/fileobject.c (newfileobject): use HAVE_FOPENRF instead
of USE_FOPENRF
* Lib/test/test_b1.py: test eval() and execfile() with globals,
locals arguments
* Lib/mhlib.py: added movemessage(), copymessage(), added copy
fallback for refilemessages(), and updated the docs
Fri Dec 30 16:19:17 1994 Guido van Rossum <guido@voorn.cwi.nl>
* Parser/tokenizer.c (tok_nextc): zap tok->buf after freeing
@ -58,7 +121,7 @@ Tue Dec 13 11:46:03 1994 Guido Van Rossum <guido@tesla>
instead of going through ceval.c:printtraceback()
* Python/modsupport.c: fix vmkvalue() for systems where va_list is
an array; add support for creating lists and dcitionaries; added
an array; add support for creating lists and dictionaries; added
convenience functions for calling functions/methods with format
and argument list
@ -123,7 +186,7 @@ Tue Dec 13 11:46:03 1994 Guido Van Rossum <guido@tesla>
(for QNX); use gethostbyname_r if it exists (since it is
re-entrant); use h_error and hstrerror when they exist; other
changes for re-entrancy; make printable representation more
useful; cosmetic changes in argument lists
useful; cosmetic changes in argument lists; add gethostbyaddr()
* Modules/signalmodule.c: if NSIG undefined, use _SIGMAX + 1

View File

@ -1,17 +1,17 @@
########################################################################
# Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
# Amsterdam, The Netherlands.
#
# Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
# The Netherlands.
#
# All Rights Reserved
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
#
# Permission to use, copy, modify, and distribute this software and its
# documentation for any purpose and without fee is hereby granted,
# provided that the above copyright notice appear in all copies and that
# both that copyright notice and this permission notice appear in
# both that copyright notice and this permission notice appear in
# supporting documentation, and that the names of Stichting Mathematisch
# Centrum or CWI not be used in advertising or publicity pertaining to
# distribution of the software without specific, written prior permission.
#
#
# STICHTING MATHEMATISCH CENTRUM DISCLAIMS ALL WARRANTIES WITH REGARD TO
# THIS SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
# FITNESS, IN NO EVENT SHALL STICHTING MATHEMATISCH CENTRUM BE LIABLE
@ -183,6 +183,7 @@ config.status: $(srcdir)/configure
# provided the config.status script exists
recheck:
$(SHELL) config.status --recheck
$(SHELL) config.status
# Rebuild the configure script from configure.in; also rebuild config.h.in
autoconf:

68
README
View File

@ -159,12 +159,12 @@ calling python interactively. You need to configure build the GNU
readline library before running the configure script. Its sources are
not distributed with Python; you can ftp them from any GNU mirror
site, or from its home site:
ftp://slc2.ins.cwru.edu/pub/dist/readline-2.0.tar.gz (or a higher
version number -- using version 1.x is not recommended).
<URL:ftp://slc2.ins.cwru.edu/pub/dist/readline-2.0.tar.gz> (or a
higher version number -- using version 1.x is not recommended).
A GPL-free version was posted to comp.sources.misc in volume 31 and is
widely available from FTP archive sites. One URL for it is:
ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume31/editline/part01.Z
widely available from FTP archive sites, e.g.
<URL:ftp://gatekeeper.dec.com/.b/usenet/comp.sources.misc/volume31/editline/part01.Z>
Pass the Python configure script the option --with-readline=DIRECTORY
where DIRECTORY is the absolute pathname of the directory where you've
@ -209,8 +209,8 @@ Setup.irix4 file to it).
- On SGI IRIX 4, dynamic loading of extension modules is supported by
the "dl" library by Jack Jansen, which is ftp'able from
ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z. This is enabled (after
you've ftp'ed and compiled the dl library!) by passing
<URL:ftp://ftp.cwi.nl/pub/dynload/dl-1.6.tar.Z>. This is enabled
(after you've ftp'ed and compiled the dl library!) by passing
--with-sgi-dl=DIRECTORY where DIRECTORY is the absolute pathname of
the dl library. (Don't bother on IRIX 5, it already has dynamic
linking using SunOS style shared libraries.) Support for this feature
@ -219,9 +219,9 @@ is deprecated.
- Dynamic loading of modules is rumoured to be supported on some other
systems: VAX (Ultrix), Sun3 (SunOS 3.4), Sequent Symmetry (Dynix), and
Atari ST. This is done using a combination of the GNU dynamic loading
package (ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z) and an
package (<URL:ftp://ftp.cwi.nl/pub/dynload/dl-dld-1.1.tar.Z>) and an
emulation of the SGI dl library mentioned above (the emulation can be
found at ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z). To enable
found at <URL:ftp://ftp.cwi.nl/pub/dynload/dld-3.2.3.tar.Z>). To enable
this, ftp and compile both libraries, then call the configure passing
it the option --with-dl-dld=DL_DIRECTORY,DLD_DIRECTORY where
DL_DIRECTORY is the absolute pathname of the dl emulation library and
@ -242,6 +242,44 @@ a separate tar file (currently extensions.tar.Z). See the README file
there.
The Tk extension
----------------
Tk (the user interface component of John Ousterhout's Tcl language) is
also usable from Python. Since this requires that you first build and
install Tcl/Tk, the Tk interface is not enabled by default. It
requires Tcl 7.3 and Tk 3.6. For more info about Tk, including
pointers to the source, see John Ousterhout's home page at
<URL:http://playground.sun.com/~ouster/>.
To enable the Python/Tk interface, once you've built and installed
Tcl/Tk, all you need to do is edit two lines in Modules/Setup; search
for the string "Tk". Un-comment one (normally the first) of the lines
beginning with "#tkinter" and un-comment the line beginning with
"#TKPATH". (If you have installed Tcl/Tk in unusual places you will
have to edit the first line as well to fix the -I and -L options.)
See the Build Instructions above for more details.
There is little documentation. Begin with fetching the "Tk Lifesaver"
document, e.g. <URL:ftp://ftp.cwi.nl/pub/python/tkinter-doc.tar.gz> (a
gzipped tar file containing a PostScript file). There are demos in
the Demo/tkinter directory, in the subdirectories guido, matt and www.
Note that there's a Python module called "Tkinter" (capital T) which
lives in Lib/tkinter/Tkinter.py, and a C module called "tkinter"
(lower case t) which lives in Modules/tkintermodule.c. Demos and
normal Tk applications only import the Python Tkinter module -- only
the latter uses the C tkinter module directly. In order to find the C
tkinter module, it must be compiled and linked into the Python
interpreter -- the tkinter line in the Setup file does this. In order
to find the Python Tkinter module, sys.path must be set correctly --
the TKPATH assignment in the Setup file takes care of this, but only
if you install Python properly ("make install libinstall"). (You can
also use dynamic loading for the C tkinter module, in which case you
must manually fix up sys.path or set $PYTHONPATH for the Python
Tkinter module.)
Building for multiple architectures (using the VPATH feature)
-------------------------------------------------------------
@ -351,11 +389,11 @@ Ftp access
----------
The latest Python source distribution can be ftp'ed from
ftp://ftp.cwi.nl/pub/python/python<version>.tar.gz. You can also find
PostScript of the main Python documentation there, Macintosh and PC
binaries, and the latest STDWIN source distribution (in directory
/pub/stdwin). oFr mirror sites, see the list in the FAQ (Misc/FAQ
this directory).
<URL:ftp://ftp.cwi.nl/pub/python/>. See the INDEX or index.html file
for more information. You can also find PostScript of the main Python
documentation there, Macintosh and PC binaries, and the latest STDWIN
source distribution (in directory /pub/stdwin). oFr mirror sites, see
the list in the FAQ (Misc/FAQ this directory).
Mailing list and Newsgroup
@ -386,8 +424,8 @@ Copyright Notice
The Python source is copyrighted, but you can freely use and copy it
as long as you don't change or remove the copyright:
Copyright 1991, 1992, 1993, 1994 by Stichting Mathematisch Centrum,
Amsterdam, The Netherlands.
Copyright 1991-1995 by Stichting Mathematisch Centrum, Amsterdam,
The Netherlands.
All Rights Reserved

33
TODO
View File

@ -1,24 +1,26 @@
(-) interface to getdtablesize() in posix
(-) reentrancy with global variables vs. decref in
./Modules/cdmodule.c ./Modules/flmodule.c ./Objects/accessobject.c
./Objects/frameobject.c ./Python/traceback.c
(-) speed up regsub.gsub
(-) change md5.md5() to md5.new()
(*) change md5.md5() to md5.new()
(-) try posixenviron.c and merge back into posixmodule.c?
(-) document chown()
(*) document chown()
(-) add and document chroot() ?
(-) use add gethostname_r and release thread lock when it exists
(*) use add gethostname_r and release thread lock when it exists
(-) Add `@CFLAGS@', `@CPPFLAGS@', and `@LDFLAGS@' to `Makefile.in'
(-) modules should be able to define a module destructor hook
(-) goaway() / cleanup() call AtExit funcs *after* donimport()
(-) goaway() / cleanup() should call AtExit funcs *after* doneimport()
(-) destroy modules in reverse order of importation
@ -26,9 +28,7 @@
(-) makesetup should accept .o files without corresponding .c file
(-) use autoconf 2.0
(-) configure(.in ?) contains a line beginning with '+'
(*) use autoconf 2.0
======================================================================
Release 1.1.1 (10 Nov 1994)
@ -36,7 +36,7 @@ Release 1.1.1 (10 Nov 1994)
(-) try Boehm/Dehmers/Weiser conservative garbage collector
(-) implement new 'flatten' module
(*) implement new 'flatten' module
(-) document new Python/C API
@ -47,7 +47,7 @@ where found, __version__ string?
(-) pass dict of builtins to exec / execfile / eval ???
(-) stack frame correspondence problem (Jim Roskind)
(?) stack frame correspondence problem (Jim Roskind)
(probably solved by err_setval_tb)
(-) make lots of places use newgetargs
@ -60,15 +60,12 @@ where found, __version__ string?
like 'cd')
(-) need to add truncate() and ftruncate() to posixmodule.c (Windows:
chsize(fd, size)
chsize(fd, size) (solution: added to file objects instead)
======================================================================
Release 1.1 (11 Oct 1994)
======================================================================
(-) if __getattr__ prints something, calling repr(x) from cmd line
forgets a newline
(-) improve performance of list.append/insert etc. by keeping high/low
watermark instead of realloc'ing each time?
@ -85,7 +82,7 @@ breaks dictlookup caching
(-) whrandom doc needs update
(-) mpz power is still binary insterad of ternary
(*) mpz power is still binary insterad of ternary
(*) design interface to call arbitrary asynchronous routines
@ -93,7 +90,7 @@ breaks dictlookup caching
(*) Lance's latest curses additions
(-) Jack's new code:
(*) Jack's new code:
(*) new xxmodule.c
(*) mac has type for .pyc files
(*) should run .pyc files when passed as command line argument
@ -104,7 +101,7 @@ breaks dictlookup caching
(-) fix signalmodule.c to re-establish SIGC[H]LD handler
(-) try out Kees Blom's railroad diagram generator
(*) try out Kees Blom's railroad diagram generator
(-) redesign error handling (cf. Donald's mail)
@ -173,11 +170,11 @@ instance -- also have separate __delattr__
(-) The Great Renaming!
(-) redo __xxx__ operators for class instances
(*) redo __xxx__ operators for class instances
(-) document __getattr__, __setattr__
(-) add __delattr__ to class instances
(*) add __delattr__ to class instances
(-) many things that take strings should also take arrays of chars

View File

@ -164,6 +164,9 @@
/* Define if you have the getwd function. */
#undef HAVE_GETWD
/* Define if you have the hypot function. */
#undef HAVE_HYPOT
/* Define if you have the link function. */
#undef HAVE_LINK

54
configure vendored
View File

@ -1,6 +1,6 @@
#!/bin/sh
# From configure.in Revision: 1.9
# From configure.in Revision: 1.12
# Guess values for system-dependent variables and create Makefiles.
# Generated automatically using autoconf version 2.0
@ -2536,6 +2536,58 @@ fi
fi
# check for hypot() in math library
LIBS_SAVE=$LIBS
LIBS="$LIBS $LIBM"
for ac_func in hypot
do
echo $ac_n "checking for $ac_func""... $ac_c" 1>&4
if eval "test \"`echo '${'ac_cv_func_$ac_func'+set}'`\" = set"; then
echo $ac_n "(cached) $ac_c" 1>&4
else
cat > conftest.$ac_ext <<EOF
#line 2550 "configure"
#include "confdefs.h"
#include <ctype.h> /* Arbitrary system header to define __stub macros. */
int main() { return 0; }
int t() {
/* The GNU C library defines this for functions which it implements
to always fail with ENOSYS. Some functions are actually named
something starting with __ and the normal name is an alias. */
#if defined (__stub_$ac_func) || defined (__stub___$ac_func)
choke me
#else
/* Override any gcc2 internal prototype to avoid an error. */
char $ac_func(); $ac_func();
#endif
; return 0; }
EOF
if eval $ac_link; then
rm -rf conftest*
eval "ac_cv_func_$ac_func=yes"
else
rm -rf conftest*
eval "ac_cv_func_$ac_func=no"
fi
rm -f conftest*
fi
if eval "test \"`echo '$ac_cv_func_'$ac_func`\" = yes"; then
echo "$ac_t""yes" 1>&4
ac_tr_func=HAVE_`echo $ac_func | tr '[a-z]' '[A-Z]'`
cat >> confdefs.h <<EOF
#define $ac_tr_func 1
EOF
else
echo "$ac_t""no" 1>&4
fi
done
LIBS=$LIBS_SAVE
# generate output files
trap '' 1 2 15
if test -w $cache_file; then

View File

@ -295,5 +295,11 @@ then LIBC=$withval
else AC_ERROR(proper usage is --with-libc=STRING)
fi])
# check for hypot() in math library
LIBS_SAVE=$LIBS
LIBS="$LIBS $LIBM"
AC_CHECK_FUNCS(hypot)
LIBS=$LIBS_SAVE
# generate output files
AC_OUTPUT(Makefile Objects/Makefile Parser/Makefile Python/Makefile Modules/Makefile.pre)