Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 1 | Sorry, this list does not claim completeness. If I fixed a bug |
| 2 | immediately upon receiving the first complaint I usually did not |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 3 | nother to make an entry in this file, unless it was a serious bug |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 4 | (core dump or infinite loop). |
| 5 | |
Guido van Rossum | af5b83e | 1995-01-04 19:02:35 +0000 | [diff] [blame] | 6 | ==> Status indicators: (-) not fixed; (*) fixed; (?) not sure. |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 7 | |
| 8 | ====================================================================== |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 9 | Known BUGS in 1.1.1 and 1.2 |
| 10 | --------------------------- |
| 11 | |
Guido van Rossum | af5b83e | 1995-01-04 19:02:35 +0000 | [diff] [blame] | 12 | (-) C-level coerce() doesn't call __coerce__ when it should (and |
| 13 | similar for __cmp__) |
| 14 | |
| 15 | (-) tkinter seems to leave an exception around sometime which breaks |
| 16 | unmarshalling code objects [hard to reproduce, have added a trap to |
| 17 | catch it] |
| 18 | |
| 19 | (-) destroying all modules may destroy __builtin__ (or other modules) |
| 20 | while destructors of other modules may still need it [hard to fix -- |
| 21 | could maintain a list of all modules in order of importation so we can |
| 22 | destroy them in reverse order??? really hopeless -- would have to |
| 23 | destroy objects in a module in reverse order too...] |
| 24 | |
| 25 | (-) [X]DECREF can cause the interpreter to be called recursively (for |
| 26 | __del__ disciplines) -- so list and dict implementation calls doing |
| 27 | DECREF can cause recursive calls to methods of the object being |
| 28 | modified. Other files too. [Only partially fixed -- listobject.c is |
| 29 | still suspect.] |
| 30 | |
Guido van Rossum | af5b83e | 1995-01-04 19:02:35 +0000 | [diff] [blame] | 31 | (-) if __getattr__ prints something, calling repr(x) from cmd line |
| 32 | forgets a newline |
| 33 | |
Guido van Rossum | 8a30adc | 1995-01-09 17:54:07 +0000 | [diff] [blame] | 34 | (-) doneimport() should be called *before* the Py_AtExit code is |
| 35 | called [problem: what if other threads are still active?] |
Guido van Rossum | af5b83e | 1995-01-04 19:02:35 +0000 | [diff] [blame] | 36 | |
| 37 | Environmental bugs |
| 38 | ------------------ |
| 39 | |
| 40 | (-) tkinter doesn't seem to see any declaration of malloc on sunos 4.1.3 |
| 41 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 42 | (-) arraymodule doesn't compile under Ultrix (FPROTO macro) |
| 43 | |
| 44 | (-) Linux uses GNU getopt by default which is broken |
| 45 | |
| 46 | (-) makesetup assumes CCC is the C++ compiler -- not portable |
| 47 | |
| 48 | (-) "make depend" assumes mkdep exists -- not portable |
| 49 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 50 | (-) regen calls h2py which isn't defined by default |
| 51 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 52 | (-) make libinstall (or similar) references to machdep directory but |
| 53 | doesn't create it |
| 54 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 55 | (-) HP doesn't compile out of the box (needs LIBS=-ldld or |
Guido van Rossum | 8a30adc | 1995-01-09 17:54:07 +0000 | [diff] [blame] | 56 | LIBS=/usr/lib/libdld.sl) [hard to test without a HP machine handy] |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 57 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 58 | ====================================================================== |
| 59 | BUGS present in 1.1.1 and fixed in 1.2 |
| 60 | -------------------------------------- |
| 61 | |
Guido van Rossum | 8a30adc | 1995-01-09 17:54:07 +0000 | [diff] [blame] | 62 | (*) struct module aligns doubles wrongly when compiled with -DDEBUG on |
| 63 | sparc |
| 64 | |
Guido van Rossum | af5b83e | 1995-01-04 19:02:35 +0000 | [diff] [blame] | 65 | (*) memory leak (namebuf) in initmodule2 |
| 66 | |
| 67 | (*) hash() of float values returns bogus values |
| 68 | |
| 69 | (*) pow(int, int, long) does wrong series of DECREF() calls. |
| 70 | |
| 71 | (*) flushline() may clear the exception condition so shouldn't be |
| 72 | called before print_error() |
| 73 | |
| 74 | (*) Everything else that uses err_get() should use err_fetch() |
| 75 | |
| 76 | (*) sockets aren't thread safe (address of static struct returned, |
| 77 | some calls aren't thread safe) |
| 78 | |
| 79 | (*) threadmodule.c leaks LOTS of memory at thread exit |
| 80 | |
| 81 | (*) shared install in Modules still doesn't work for empty list |
| 82 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 83 | (*) threadmodule.c leaks 'res' in t_bootstrap |
| 84 | |
| 85 | (*) errors.c shouldn't declare strerror() on NT |
| 86 | |
| 87 | (*) DECREF can cause the interpreter to be called recursively (for |
| 88 | __del__ disciplines) -- so list and dict implementation calls doing |
| 89 | DECREF can cause recursive calls to methods of the object being |
| 90 | modified. Other files too. (Only partially fixed.) |
| 91 | |
| 92 | (*) tkinter dereferences NULL if timer callback raises an exception |
| 93 | |
| 94 | (*) must link with -lieee for linux |
| 95 | |
| 96 | (*) if a timer handler routine raises an exception, the interpreter |
| 97 | dereferences NULL |
| 98 | |
| 99 | (*) __getattr__ doesn't clear error |
| 100 | |
| 101 | (*) '%s' % a, where a is a class instance, fails |
| 102 | |
| 103 | (*) "make test" won't find freshly built dynamically loaded modules -- |
| 104 | should add ./Modules to TESTPATH |
| 105 | |
| 106 | (*) lshift calls __rshift__ instead of __rlshift__ |
| 107 | |
| 108 | (*) memory leak in creation of sys.builtin_module_names |
| 109 | |
| 110 | (*) Bugs in instance_dealloc(): (a) memory leak for exception |
| 111 | type+value; (2) should save+restore traceback as well |
| 112 | |
| 113 | (*) modsupport.c(vmkvalue): on systems where va_list is an array, the |
| 114 | calls to do_mkvalue and do_mktuple don't want an "&" before va. |
| 115 | |
| 116 | ====================================================================== |
Guido van Rossum | 9444ce0 | 1994-10-20 22:10:23 +0000 | [diff] [blame] | 117 | BUGS found in 1.1 and fixed in 1.1.1 |
| 118 | ------------------------------------ |
| 119 | |
Guido van Rossum | 5dee5e7 | 1994-11-10 23:06:54 +0000 | [diff] [blame] | 120 | (*) printing name of lambda in traceback dereferences NULL |
| 121 | |
| 122 | (*) A built-in function using getargs() and expecting >= 1 argument |
| 123 | may dump core when called without arguments |
| 124 | |
| 125 | (*) newgetargs() dumps core in compat mode when NULL is passed in but |
| 126 | max is >0 |
| 127 | |
Guido van Rossum | 9444ce0 | 1994-10-20 22:10:23 +0000 | [diff] [blame] | 128 | (*) pow() should be declared varargs since it uses newgetargs |
| 129 | |
Guido van Rossum | 5dee5e7 | 1994-11-10 23:06:54 +0000 | [diff] [blame] | 130 | (*) newmodule.c doesn't compile on SunOS 4.1.3 due to non-K&R backslashes |
| 131 | |
| 132 | (*) some typos in tut.tex |
| 133 | |
| 134 | (*) test for broken static forward is not strong enough |
| 135 | |
| 136 | (*) Doc/Makefile assumes . is in $PATH in call to whichlibs |
| 137 | |
| 138 | (*) math module misses hypot() function |
| 139 | |
| 140 | (*) structmember.h should include stddef.h (for offsetof macro) |
| 141 | |
| 142 | (*) gdbmmodule.c frees the wrong structures |
| 143 | |
| 144 | (*) makesetup script misses some dollars and backslashes |
| 145 | |
| 146 | (*) getargs.obj missing from NT makefile |
| 147 | |
| 148 | (*) sorting class instances broken if no __cmp__ defined |
| 149 | |
Guido van Rossum | 5dee5e7 | 1994-11-10 23:06:54 +0000 | [diff] [blame] | 150 | ====================================================================== |
Guido van Rossum | 9444ce0 | 1994-10-20 22:10:23 +0000 | [diff] [blame] | 151 | BUGS found in 1.0.3 and fixed in 1.1 |
| 152 | ------------------------------------ |
| 153 | |
Guido van Rossum | 76be6ed | 1995-01-02 18:33:54 +0000 | [diff] [blame] | 154 | (*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc |
| 155 | |
Guido van Rossum | 9444ce0 | 1994-10-20 22:10:23 +0000 | [diff] [blame] | 156 | (*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and |
| 157 | [a,b].sort() will fail |
| 158 | |
Guido van Rossum | 2b11c61 | 1994-10-06 16:36:15 +0000 | [diff] [blame] | 159 | (*) Syntax errors are reported in a silly way if multi-line tokens are |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 160 | involved. |
| 161 | |
Guido van Rossum | 2b11c61 | 1994-10-06 16:36:15 +0000 | [diff] [blame] | 162 | (*) SyntaxError exception for compile('...') are reported wrongly |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 163 | (lineno is always zero and offset is offset into the whole string). |
| 164 | |
Guido van Rossum | 2b11c61 | 1994-10-06 16:36:15 +0000 | [diff] [blame] | 165 | (*) freeze script needs major rewrite to cope with multiple extensions |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 166 | (Jack seems to have fixed it now -- where is it?) |
| 167 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 168 | (*) unwanted entries in stack trace if err_clear() clears an error |
| 169 | that also set a stack trace |
| 170 | |
| 171 | (*) i, x[i] = a, b assigns b to x[a] rather than to x[i] as expected |
| 172 | (documented with a warning in ref6.tex!) |
| 173 | |
| 174 | (*) etags no longer supports -t flag |
| 175 | |
| 176 | (*) compile.c:com_argdefs() references unalloc'ed memory for def |
| 177 | f(a=1,): ... |
| 178 | |
| 179 | (*) If you have a python binary in your path like |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 180 | /ufs/guido/bin/sgi/python then the default prefix option computed by |
| 181 | the configure script is bogus! |
| 182 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 183 | (*) Make rule for making lib*.a should remove the lib*.a file first. |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 184 | |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 185 | (*) vars() error message is wrong (copied from dir() obviously). |
| 186 | |
| 187 | (*) socket.gethostname() is undocumented. |
| 188 | |
| 189 | (*) rfc822.py: getfirst* dies when multiple headers occur |
| 190 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 191 | (*) urllib caching is wrong (should use date from Expires header) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 192 | |
| 193 | (*) On a related matter: regexpr.c still has two malloc()s the results |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 194 | of which are not tested for being NULL (lines 1253 and 1530). There |
| 195 | are also some in rgbimagemodule.c. Am I overlooking something or is |
Guido van Rossum | fda5fb2 | 1994-08-12 13:18:41 +0000 | [diff] [blame] | 196 | this a crasher? |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 197 | |
| 198 | (*) strop.rindex('abc', '') returns 0 instead of 3 |
| 199 | |
| 200 | (*) sunaudiodevmodule.o is too long! |
| 201 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 202 | (*) toplevel README needs new text on PC and Mac builds |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 203 | |
| 204 | (*) long(0x80000000) has wrong value! |
| 205 | |
| 206 | ====================================================================== |
| 207 | Bugs found in 1.0.2 and not yet fixed |
| 208 | ------------------------------------- |
| 209 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 210 | (?) compiler warnings about argument type of uname() on ULTRIX |
| 211 | machines (don't know what to do about it) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 212 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 213 | (?) syntax error for interactive input prints garbage instead of last |
| 214 | source line on some systems (e.g. AIX) (impossible to test/reproduce) |
| 215 | !!! I think I've found this one -- a missing INCREF in print_error! |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 216 | |
| 217 | (?) (maybe) a bad .pyc file (with old magic number) causes the .py |
| 218 | file to be ignored |
| 219 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 220 | (?) Sunos4.0.2 / 386 configure bugs: |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 221 | - timelocal instead of mktime |
| 222 | - unistd.h doesn't declare some functions |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 223 | (don't know what to do about this) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 224 | |
| 225 | Bugs found in 1.0.2 and fixed in 1.0.3 |
| 226 | -------------------------------------- |
| 227 | |
| 228 | (*) nasty bug in string formatting (see test_types.py, search for %) |
| 229 | |
| 230 | (*) if a triple-quoted string ends in a quote followed by a newline |
| 231 | (followed immediately by the terminating 3 quotes) then a syntax error |
| 232 | or system error ensues |
| 233 | |
| 234 | (*) bug in socket.listen: clipping backlog to >= 1 doesn't work |
| 235 | |
| 236 | (*) two bogus XDEL's in Modules/regexmodule.reg_dealloc() |
| 237 | |
| 238 | (*) Parser/myreadline.my_fgets: #endif EINTR misplaced |
| 239 | |
| 240 | (*) new IP address for ftp.cwi.nl !!! |
| 241 | |
| 242 | (*) typing vars() to interactive prompt runs into infinite loop |
| 243 | because of '_' |
| 244 | |
| 245 | (*) tokenizer/tok_nextc() runs into infinite loop when file does not |
| 246 | end in linefeed |
| 247 | |
| 248 | (*) Sunos4.0.2 / 386 configure bugs: |
| 249 | (*) - use size_t at some places without including sys/types.h |
| 250 | (*) - missing clock_t |
| 251 | (*) - uses SEEK_SET in some places that don't include unistd.h |
| 252 | |
| 253 | ====================================================================== |
| 254 | Bugs found in 1.0.1 and not yet fixed |
| 255 | ------------------------------------- |
| 256 | |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 257 | (?) threads are slow on Solaris 2 |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 258 | (so what?) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 259 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 260 | (*) threads cause myreadline.c's readline() to think it sees an EOF. |
| 261 | (I *think* I've fixed this, by testing for EINTR) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 262 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 263 | (?) min() on PC version generates wrong result (i.e. same as max()) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 264 | [this happens on SoftPC -- don't know about other systems] |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 265 | (can't find the reason -- may be SoftPC bug) |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 266 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 267 | (*) flp.py cache bug: if the cache only contains one form, asking for |
| 268 | all forms returns only the cached form |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 269 | |
| 270 | Bugs found in 1.0.1 and fixed in 1.0.2 |
| 271 | -------------------------------------- |
| 272 | |
| 273 | (*) core dump when parser.parsefile() called |
| 274 | |
| 275 | (*) man page contains a mess before -d option |
| 276 | |
| 277 | (*) threads don't work on IRIX 4 |
| 278 | |
| 279 | (*) wrong cast of svideo_getattr in svmodule.c |
| 280 | |
| 281 | (*) bad return value in runpython.c's run_tty_1() |
| 282 | |
| 283 | (*) creating dict of 100,000 objects gets MemoryError or dumps core |
| 284 | |
| 285 | (*) freeze script doesn't work |
| 286 | |
| 287 | ====================================================================== |
| 288 | BUGS found in 1.0.0 and not yet fixed |
| 289 | ------------------------------------- |
| 290 | |
| 291 | (?) On NeXT, need to define _POSIX_SOURCE. |
| 292 | |
| 293 | (?) there appears to be something wrong with gcc and -ldl on some |
| 294 | SunOS 4.1.3 systems |
| 295 | |
Guido van Rossum | c561e5d | 1994-08-23 13:52:46 +0000 | [diff] [blame] | 296 | (?) jredfords reports core dump with float literals |
Guido van Rossum | 5552eb7 | 1994-08-05 15:51:00 +0000 | [diff] [blame] | 297 | |
| 298 | BUGS found in 1.0.0 and fixed in 1.0.1 |
| 299 | -------------------------------------- |
| 300 | |
| 301 | (*) On SGI IRIX 4 using cc, compilation errors in md5module.c. |
| 302 | |
| 303 | (*) In cdmodule.c, getattr initialized with (destructor)! |
| 304 | |
| 305 | (*) Lib/tzparse.py runs test() on import |
| 306 | |
| 307 | (*) Lib/filewin.py belongs in Lib/stdwin |
| 308 | |
| 309 | (*) lib and man install targets don't use $(srcdir) |
| 310 | |
| 311 | (*) Modules/rgbimgmodule.c: exception name contains comma instead of dot |
| 312 | |
| 313 | (*) The FAQ still references misc/EXTENDING and misc/DYNLOAD etc |
| 314 | |
| 315 | (*) The FAQ still describes how to work around a problem in 0.9.9 exec() |
| 316 | |
| 317 | (*) Lib/aifc.py, returns float rate, should be int |
| 318 | |
| 319 | (*) Lib/sunau.py, incorrectly cumputes byte count from frame rate |
| 320 | |
| 321 | (*) README should mention possibility of passing OPT=-g to make |
| 322 | |
| 323 | (*) dynamic loading on sunos 4.1.3 must call dlopen(..., 1) |
| 324 | |
| 325 | (*) use of <varargs.h> vs. <stdarg.h> should depend on |
| 326 | HAVE_STDARG_PROTOTYPES, not on HAVE_STDARG_H |
| 327 | |
| 328 | (*) Doc/README refers to Misc/FTP which in fact does not exist any more |
| 329 | |
| 330 | (*) filter(None, 'abcdefg') dumps core |
| 331 | |
| 332 | (*) once you interrupt time.sleep(), there is no interrupt handler! |
| 333 | |
| 334 | ====================================================================== |
| 335 | end of file |