| THIS LIST DOES NOT CLAIM COMPLETENESS. |
| |
| ==> Status indicators: (-) not fixed; (*) fixed; (?) not sure. |
| |
| ====================================================================== |
| |
| Problems that are difficult to solve |
| ------------------------------------ |
| |
| (-) "f()=0" generates syntax error msg without line number |
| |
| (-) tkinter seems to leave an exception around sometime which breaks |
| unmarshalling code objects [hard to reproduce, have added a trap to |
| 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 -- |
| 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...] |
| |
| (-) doneimport() should be called *before* the Py_AtExit code is |
| called [problem: what if other threads are still active?] |
| |
| Known portability problems |
| -------------------------- |
| |
| (-) arraymodule doesn't compile under Ultrix (FPROTO macro) |
| |
| (-) makesetup assumes CCC is the C++ compiler -- not portable |
| |
| (-) "make depend" assumes mkdep exists -- not portable |
| |
| (-) regen calls h2py which isn't defined by default |
| |
| (-) 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] |
| |
| ====================================================================== |
| BUGS present in 1.1.1 and fixed in 1.2 |
| -------------------------------------- |
| |
| (*) extraneous fclose() in run_script() in pythonrun.c for .pyc file |
| |
| (*) __str__ is called if it exists (and then fails) when applying |
| str() to a class |
| |
| (*) mem leaks in inittime() in timemodule.c |
| |
| (*) mem leak in optimize() in compile.c |
| |
| (*) mem leak in func_dealloc() in funcobject.c |
| |
| (*) missing DECREF for result of run_string in exec_statement() in |
| ceval.c |
| |
| (*) missing INCREF in RAISE_EXCEPTION case after gettupleitem() in |
| ceval.c |
| |
| (*) posix.utime gives problems on problems on platforms where struct |
| utime members are bitfields |
| |
| (*) leak in regex module.c:reg_dealloc() -- should free compiled pattern |
| |
| (*) many uses of macros from <ctype.h> fail with signed characters |
| |
| (*) compilation on NeXT requires manual editing of the Makefile |
| |
| (*) tkinter should cast malloc() result |
| |
| (*) marshal.c (w_object()) triggers GCC bug on DEC Alpha |
| |
| (*) int/long size bug in range() and xrange() on DEC Alpha |
| |
| (*) memory leaks in dbm and gdbm modules |
| |
| (*) refcnt bug in select.select([f], [f], [f]) |
| |
| (*) Should fflush(stdout) before printing traceback to stderr |
| |
| (*) Linux uses GNU getopt by default which is broken |
| |
| (*) make sharedinstall references to machdep directory but doesn't |
| create it |
| |
| (*) a file with unmatched triple quotes causes a loop in the scanner |
| |
| (*) [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. |
| |
| (*) 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 assigns unaligned doubles when compiled with -DDEBUG |
| on sparc |
| |
| (*) 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 |
| |
| (*) 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.) |
| |
| (*) tkinter dereferences NULL if timer callback raises an exception |
| |
| (*) must link with -lieee for linux |
| |
| (*) if a timer handler routine raises an exception, the interpreter |
| dereferences NULL |
| |
| (*) __getattr__ doesn't clear error |
| |
| (*) '%s' % a, where a is a class instance, fails |
| |
| (*) "make test" won't find freshly built dynamically loaded modules -- |
| should add ./Modules to TESTPATH |
| |
| (*) lshift calls __rshift__ instead of __rlshift__ |
| |
| (*) memory leak in creation of sys.builtin_module_names |
| |
| (*) Bugs in instance_dealloc(): (a) memory leak for exception |
| type+value; (2) should save+restore traceback as well |
| |
| (*) modsupport.c(vmkvalue): on systems where va_list is an array, the |
| calls to do_mkvalue and do_mktuple don't want an "&" before va. |
| |
| ====================================================================== |
| BUGS found in 1.1 and fixed in 1.1.1 |
| ------------------------------------ |
| |
| (*) printing name of lambda in traceback dereferences NULL |
| |
| (*) A built-in function using getargs() and expecting >= 1 argument |
| may dump core when called without arguments |
| |
| (*) newgetargs() dumps core in compat mode when NULL is passed in but |
| max is >0 |
| |
| (*) pow() should be declared varargs since it uses newgetargs |
| |
| (*) newmodule.c doesn't compile on SunOS 4.1.3 due to non-K&R backslashes |
| |
| (*) some typos in tut.tex |
| |
| (*) test for broken static forward is not strong enough |
| |
| (*) Doc/Makefile assumes . is in $PATH in call to whichlibs |
| |
| (*) math module misses hypot() function |
| |
| (*) structmember.h should include stddef.h (for offsetof macro) |
| |
| (*) gdbmmodule.c frees the wrong structures |
| |
| (*) makesetup script misses some dollars and backslashes |
| |
| (*) getargs.obj missing from NT makefile |
| |
| (*) sorting class instances broken if no __cmp__ defined |
| |
| ====================================================================== |
| BUGS found in 1.0.3 and fixed in 1.1 |
| ------------------------------------ |
| |
| (*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc |
| |
| (*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and |
| [a,b].sort() will fail |
| |
| (*) Syntax errors are reported in a silly way if multi-line tokens are |
| involved. |
| |
| (*) SyntaxError exception for compile('...') are reported wrongly |
| (lineno is always zero and offset is offset into the whole string). |
| |
| (*) freeze script needs major rewrite to cope with multiple extensions |
| (Jack seems to have fixed it now -- where is it?) |
| |
| (*) unwanted entries in stack trace if err_clear() clears an error |
| that also set a stack trace |
| |
| (*) i, x[i] = a, b assigns b to x[a] rather than to x[i] as expected |
| (documented with a warning in ref6.tex!) |
| |
| (*) etags no longer supports -t flag |
| |
| (*) compile.c:com_argdefs() references unalloc'ed memory for def |
| f(a=1,): ... |
| |
| (*) If you have a python binary in your path like |
| /ufs/guido/bin/sgi/python then the default prefix option computed by |
| the configure script is bogus! |
| |
| (*) Make rule for making lib*.a should remove the lib*.a file first. |
| |
| (*) vars() error message is wrong (copied from dir() obviously). |
| |
| (*) socket.gethostname() is undocumented. |
| |
| (*) rfc822.py: getfirst* dies when multiple headers occur |
| |
| (*) urllib caching is wrong (should use date from Expires header) |
| |
| (*) On a related matter: regexpr.c still has two malloc()s the results |
| of which are not tested for being NULL (lines 1253 and 1530). There |
| are also some in rgbimagemodule.c. Am I overlooking something or is |
| this a crasher? |
| |
| (*) strop.rindex('abc', '') returns 0 instead of 3 |
| |
| (*) sunaudiodevmodule.o is too long! |
| |
| (*) toplevel README needs new text on PC and Mac builds |
| |
| (*) long(0x80000000) has wrong value! |
| |
| ====================================================================== |
| Bugs found in 1.0.2 and not yet fixed |
| ------------------------------------- |
| |
| (?) compiler warnings about argument type of uname() on ULTRIX |
| machines (don't know what to do about it) [could be fixed by fix for |
| bitfields in struct uname] |
| |
| (?) syntax error for interactive input prints garbage instead of last |
| source line on some systems (e.g. AIX) (impossible to test/reproduce) |
| [I think I've found this one -- a missing INCREF in print_error] |
| |
| (?) (maybe) a bad .pyc file (with old magic number) causes the .py |
| file to be ignored [should be fixed by rewrite of import.c] |
| |
| (?) Sunos4.0.2 / 386 configure bugs: |
| - timelocal instead of mktime |
| - unistd.h doesn't declare some functions |
| (don't know what to do about this) |
| |
| Bugs found in 1.0.2 and fixed in 1.0.3 |
| -------------------------------------- |
| |
| (*) nasty bug in string formatting (see test_types.py, search for %) |
| |
| (*) if a triple-quoted string ends in a quote followed by a newline |
| (followed immediately by the terminating 3 quotes) then a syntax error |
| or system error ensues |
| |
| (*) bug in socket.listen: clipping backlog to >= 1 doesn't work |
| |
| (*) two bogus XDEL's in Modules/regexmodule.reg_dealloc() |
| |
| (*) Parser/myreadline.my_fgets: #endif EINTR misplaced |
| |
| (*) new IP address for ftp.cwi.nl !!! |
| |
| (*) typing vars() to interactive prompt runs into infinite loop |
| because of '_' |
| |
| (*) tokenizer/tok_nextc() runs into infinite loop when file does not |
| end in linefeed |
| |
| (*) Sunos4.0.2 / 386 configure bugs: |
| (*) - use size_t at some places without including sys/types.h |
| (*) - missing clock_t |
| (*) - uses SEEK_SET in some places that don't include unistd.h |
| |
| ====================================================================== |
| Bugs found in 1.0.1 and not yet fixed |
| ------------------------------------- |
| |
| (?) threads are slow on Solaris 2 |
| (so what?) |
| |
| (*) threads cause myreadline.c's readline() to think it sees an EOF. |
| (I *think* I've fixed this, by testing for EINTR) |
| |
| (?) min() on PC version generates wrong result (i.e. same as max()) |
| [this happens on SoftPC -- don't know about other systems] |
| (can't find the reason -- may be SoftPC bug) |
| |
| (*) flp.py cache bug: if the cache only contains one form, asking for |
| all forms returns only the cached form |
| |
| Bugs found in 1.0.1 and fixed in 1.0.2 |
| -------------------------------------- |
| |
| (*) core dump when parser.parsefile() called |
| |
| (*) man page contains a mess before -d option |
| |
| (*) threads don't work on IRIX 4 |
| |
| (*) wrong cast of svideo_getattr in svmodule.c |
| |
| (*) bad return value in runpython.c's run_tty_1() |
| |
| (*) creating dict of 100,000 objects gets MemoryError or dumps core |
| |
| (*) freeze script doesn't work |
| |
| ====================================================================== |
| BUGS found in 1.0.0 and not yet fixed |
| ------------------------------------- |
| |
| (*) On NeXT, need to define _POSIX_SOURCE. |
| |
| (?) there appears to be something wrong with gcc and -ldl on some |
| SunOS 4.1.3 systems |
| |
| (?) jredfords reports core dump with float literals |
| |
| BUGS found in 1.0.0 and fixed in 1.0.1 |
| -------------------------------------- |
| |
| (*) On SGI IRIX 4 using cc, compilation errors in md5module.c. |
| |
| (*) In cdmodule.c, getattr initialized with (destructor)! |
| |
| (*) Lib/tzparse.py runs test() on import |
| |
| (*) Lib/filewin.py belongs in Lib/stdwin |
| |
| (*) lib and man install targets don't use $(srcdir) |
| |
| (*) Modules/rgbimgmodule.c: exception name contains comma instead of dot |
| |
| (*) The FAQ still references misc/EXTENDING and misc/DYNLOAD etc |
| |
| (*) The FAQ still describes how to work around a problem in 0.9.9 exec() |
| |
| (*) Lib/aifc.py, returns float rate, should be int |
| |
| (*) Lib/sunau.py, incorrectly cumputes byte count from frame rate |
| |
| (*) README should mention possibility of passing OPT=-g to make |
| |
| (*) dynamic loading on sunos 4.1.3 must call dlopen(..., 1) |
| |
| (*) use of <varargs.h> vs. <stdarg.h> should depend on |
| HAVE_STDARG_PROTOTYPES, not on HAVE_STDARG_H |
| |
| (*) Doc/README refers to Misc/FTP which in fact does not exist any more |
| |
| (*) filter(None, 'abcdefg') dumps core |
| |
| (*) once you interrupt time.sleep(), there is no interrupt handler! |
| |
| ====================================================================== |
| end of file |