diff --git a/BUGS b/BUGS index 7b285032622d86..10ed20fe3c0931 100644 --- a/BUGS +++ b/BUGS @@ -9,12 +9,11 @@ nother to make an entry in this file, unless it was a serious bug Known BUGS in 1.1.1 and 1.2 --------------------------- -(-) C-level coerce() doesn't call __coerce__ when it should (and -similar for __cmp__) +(-) a file with unmatched triple quotes causes a loop in the scanner (-) tkinter seems to leave an exception around sometime which breaks unmarshalling code objects [hard to reproduce, have added a trap to -catch it] +marshal.c to catch it] (-) destroying all modules may destroy __builtin__ (or other modules) while destructors of other modules may still need it [hard to fix -- @@ -28,16 +27,14 @@ DECREF can cause recursive calls to methods of the object being modified. Other files too. [Only partially fixed -- listobject.c is still suspect.] -(-) if __getattr__ prints something, calling repr(x) from cmd line -forgets a newline - (-) doneimport() should be called *before* the Py_AtExit code is called [problem: what if other threads are still active?] -Environmental bugs ------------------- +Known portability problems +-------------------------- -(-) tkinter doesn't seem to see any declaration of malloc on sunos 4.1.3 +(-) tkinter doesn't seem to see any declaration of malloc on sunos +4.1.3? (-) arraymodule doesn't compile under Ultrix (FPROTO macro) @@ -49,8 +46,8 @@ Environmental bugs (-) regen calls h2py which isn't defined by default -(-) make libinstall (or similar) references to machdep directory but -doesn't create it +(-) make sharedinstall references to machdep directory but doesn't +create it (-) HP doesn't compile out of the box (needs LIBS=-ldld or LIBS=/usr/lib/libdld.sl) [hard to test without a HP machine handy] @@ -59,6 +56,12 @@ LIBS=/usr/lib/libdld.sl) [hard to test without a HP machine handy] BUGS present in 1.1.1 and fixed in 1.2 -------------------------------------- +(*) if __getattr__ or __repr__ prints something, calling repr(x) from +cmd line forgets a newline + +(*) C-level coerce() doesn't call __coerce__ when it should (and +similar for __cmp__) + (*) struct module aligns doubles wrongly when compiled with -DDEBUG on sparc diff --git a/ChangeLog b/ChangeLog index 44d29d03942e81..8fa21517f17e09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,68 @@ +Thu Jan 12 12:27:23 1995 Guido van Rossum + + * Python/ceval.c (eval_code/PRINT_EXPR): fix messed output when + x.__repr__() prints something and repr(x) is called at the prompt + + * Python/pythonrun.c (initmain), Python/import.c + (exec_code_module): use getbuiltins(), not getbuiltindict() to + initialize new modules + + * Python/ceval.c (getbuiltins): return getbuiltindict() instead of + NULL if no current frame + + * Modules/cryptmodule.c: removed redundant include of modsupport.h + + * Modules/signalmodule.c: remove unwanted trigraph from comment + + * Modules/Setup.in: clarify status of dlmodule.c + + * Objects/object.c (cmpobject): properly implement cmp() for class + instances + +Wed Jan 11 10:56:12 1995 Guido van Rossum + + * README: removed references to --with-svr4; added docs for + --without-gcc + + * Modules/mathmodule.c: rearrange declarations somewhat + Tue Jan 10 11:34:23 1995 Guido van Rossum + * Include/*.h, Python/getmtime.c, Modules/.c: THE GREAT + RENAMING (inspired by Jun Hamano). One now either includes + "Python.h" and then uses new names only, or one includes + "allobjects.h" and uses old names. "rename1.h" no longer exists; + instead, "rename2.h" performs the reverse mapping. + + * Python/bltinmodule.c (builtin_filter): fix subtle refcount big + in filter() (Tim MacKenzie) + + * Include/mymalloc.h, Modules/{Makefile.pre.in,config.c.in}: + change to make things palatable for C++ (Tim MacKenzie) + + * Modules/socketmodule.c: only call hstrerror() if it exists + + * Modules/tkintermodule.c: added interface to Tk_DoOneEvent() (R + Lindsay Todd) + + * Objects/longobject.c (long_pow): some defensive programming + (Eric Siegerman) + + * Objects/intobject.c (int_pow): fix memory leak in ternary pow() + (Eric Siegerman) + + * Modules/posixmodule.c (posix_fdopen, posix_popen): add optional + argument to specify buffer size as for __builtin__.open(); also + make mode argument optional (default "r") + + * Objects/classobject.c (instance_coerce): implement coercions + involving instances properly + + * Objects/object.c, Python/bltinmodule.c: moved coerce() to + objects.c, where it belongs + + * Doc/libfuncs.tex: added execfile(); reformulated eval() somewhat + * Python/bltinmodule.c (builtin_{execfile,eval}): fix globals/locals defaults to match the manual again; also allow None to mean the same as the default diff --git a/TODO b/TODO index 3b3bd8102526c6..721d80c2d0ebd4 100644 --- a/TODO +++ b/TODO @@ -1,9 +1,15 @@ +(*) add buffering parameter to fdopen() and popen() + +(-) "f()=0" generates syntax error msg without line number + (-) 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 +(-) check reentrancy in list updates? + (-) speed up regsub.gsub (*) change md5.md5() to md5.new() @@ -20,7 +26,7 @@ (-) modules should be able to define a module destructor hook -(-) destroy modules in reverse order of importation +(-) destroy modules in reverse order of importation? (-) make array a standard built-in object @@ -46,11 +52,11 @@ where found, __version__ string? (-) pass dict of builtins to exec / execfile / eval ??? (?) stack frame correspondence problem (Jim Roskind) -(probably solved by err_setval_tb) +(probably solved by err_fetch / err_restore) (-) make lots of places use newgetargs -(-) no tp_str member in typeobject +(*) no tp_str member in typeobject (-) readline 2.0 on sequent has ^C problem (works only first time) diff --git a/configure b/configure index 7b7435043d60c4..74b6b7740587f3 100755 --- a/configure +++ b/configure @@ -1,6 +1,6 @@ #!/bin/sh -# From configure.in Revision: 1.12 +# From configure.in Revision: 1.14 # Guess values for system-dependent variables and create Makefiles. # Generated automatically using autoconf version 2.0 @@ -1403,14 +1403,80 @@ else echo "$ac_t""no" 1>&4 fi # NIS (== YP) interface for IRIX 4 +echo $ac_n "checking for -lnsl""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_lib_nsl'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + ac_save_LIBS="$LIBS" +LIBS="$LIBS -lnsl " +cat > conftest.$ac_ext <&4 + LIBS="-lnsl $LIBS" +else + echo "$ac_t""no" 1>&4 +fi + # hosts db interface +echo $ac_n "checking for -linet""... $ac_c" 1>&4 +if eval "test \"`echo '${'ac_cv_lib_inet'+set}'`\" = set"; then + echo $ac_n "(cached) $ac_c" 1>&4 +else + ac_save_LIBS="$LIBS" +LIBS="$LIBS -linet " +cat > conftest.$ac_ext <&4 + LIBS="-linet $LIBS" +else + echo "$ac_t""no" 1>&4 +fi + # SVR4 internet??? echo $ac_n "checking for -lsocket""... $ac_c" 1>&4 if eval "test \"`echo '${'ac_cv_lib_socket'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else ac_save_LIBS="$LIBS" -LIBS="$LIBS -lsocket -linet -lnsl" +LIBS="$LIBS -lsocket " cat > conftest.$ac_ext <&4 - LIBS=-lsocket -linet -lnsl + LIBS="-lsocket $LIBS" else echo "$ac_t""no" 1>&4 fi - + # SVR4 sockets echo "checking for --with-readline" 1>&4 # Check whether --with-readline or --without-readline was given. @@ -1457,7 +1523,7 @@ else ac_save_LIBS="$LIBS" LIBS="$LIBS -ltermcap " cat > conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext < conftest.$ac_ext <&4 else cat > conftest.$ac_ext < /* Arbitrary system header to define __stub macros. */ int main() { return 0; } @@ -1758,7 +1824,7 @@ 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 < /* Arbitrary system header to define __stub macros. */ int main() { return 0; } @@ -1801,7 +1867,7 @@ if eval "test \"`echo '${'ac_cv_func_getpgrp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < /* Arbitrary system header to define __stub macros. */ int main() { return 0; } @@ -1832,7 +1898,7 @@ fi if eval "test \"`echo '$ac_cv_func_'getpgrp`\" = yes"; then echo "$ac_t""yes" 1>&4 cat > conftest.$ac_ext < int main() { return 0; } @@ -1858,7 +1924,7 @@ if eval "test \"`echo '${'ac_cv_func_setpgrp'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < /* Arbitrary system header to define __stub macros. */ int main() { return 0; } @@ -1889,7 +1955,7 @@ fi if eval "test \"`echo '$ac_cv_func_'setpgrp`\" = yes"; then echo "$ac_t""yes" 1>&4 cat > conftest.$ac_ext < int main() { return 0; } @@ -1915,7 +1981,7 @@ if eval "test \"`echo '${'ac_cv_func_gettimeofday'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < /* Arbitrary system header to define __stub macros. */ int main() { return 0; } @@ -1946,7 +2012,7 @@ fi if eval "test \"`echo '$ac_cv_func_'gettimeofday`\" = yes"; then echo "$ac_t""yes" 1>&4 cat > conftest.$ac_ext < int main() { return 0; } @@ -1976,7 +2042,7 @@ if eval "test \"`echo '${'ac_cv_header_time'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < #include @@ -2009,7 +2075,7 @@ if eval "test \"`echo '${'ac_cv_struct_tm'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < #include @@ -2041,7 +2107,7 @@ if eval "test \"`echo '${'ac_cv_struct_tm_zone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < #include <$ac_cv_struct_tm> @@ -2072,7 +2138,7 @@ if eval "test \"`echo '${'ac_cv_var_tzname'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < #ifndef tzname /* For SGI. */ @@ -2108,7 +2174,7 @@ if eval "test \"`echo '${'ac_cv_header_time_altzone'+set}'`\" = set"; then echo $ac_n "(cached) $ac_c" 1>&4 else cat > conftest.$ac_ext < int main() { return 0; } @@ -2137,7 +2203,7 @@ fi echo "checking whether sys/select.h and sys/time.h may both be included" 1>&4 cat > conftest.$ac_ext < @@ -2168,7 +2234,7 @@ else if test "$GCC" = yes; then # GCC predefines this symbol on systems where it applies. cat > conftest.$ac_ext <&2; exit 1; } else cat > conftest.$ac_ext <&4 else cat > conftest.$ac_ext <&4 cat > conftest.$ac_ext <&4 cat > conftest.$ac_ext <&4 cat > conftest.$ac_ext <&4 cat > conftest.$ac_ext < @@ -2383,7 +2449,7 @@ rm -f conftest* if test "$have_prototypes"; then echo "checking for bad exec* prototypes" 1>&4 cat > conftest.$ac_ext < int main() { return 0; } @@ -2409,7 +2475,7 @@ if test "$cross_compiling" = yes; then { echo "configure: error: can not run test program while cross compiling" 1>&2; exit 1; } else cat > conftest.$ac_ext <&4 cat > conftest.$ac_ext < conftest.$ac_ext <&4 else cat > conftest.$ac_ext < /* Arbitrary system header to define __stub macros. */ int main() { return 0; }