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