blob: ed97f06470a5f04cc25230ca305b3a7e20a68005 [file] [log] [blame]
Guido van Rossum2cc9b2b1995-03-10 15:09:12 +00001*** See the ChangeLog file for bugs fixed since 1.2 BETA 2 ***
2
Guido van Rossum5552eb71994-08-05 15:51:00 +00003Sorry, this list does not claim completeness. If I fixed a bug
4immediately upon receiving the first complaint I usually did not
Guido van Rossumc561e5d1994-08-23 13:52:46 +00005nother to make an entry in this file, unless it was a serious bug
Guido van Rossum5552eb71994-08-05 15:51:00 +00006(core dump or infinite loop).
7
Guido van Rossumaf5b83e1995-01-04 19:02:35 +00008==> Status indicators: (-) not fixed; (*) fixed; (?) not sure.
Guido van Rossum5552eb71994-08-05 15:51:00 +00009
10======================================================================
Guido van Rossum2cc9b2b1995-03-10 15:09:12 +000011
Guido van Rossum7b4d4601995-03-22 12:27:16 +000012(-) "f()=0" generates syntax error msg without line number
13
14======================================================================
15
Guido van Rossum0ddb0281995-01-17 16:46:14 +000016Known BUGS in 1.2 BETA 1, fixed in 1.2 BETA 2
17---------------------------------------------
Guido van Rossum76be6ed1995-01-02 18:33:54 +000018
Guido van Rossum0ddb0281995-01-17 16:46:14 +000019(*) list slice assignment contains reantrancy bug
20
21(*) range() and xrange() break on Alpha's
22
23(*) interactive use of vars() gives barrage of output due to recursive
24inclusion of '_'
25
26(*) configure.in contains bogus name to check for inet library
27
Guido van Rossum2cc9b2b1995-03-10 15:09:12 +000028Known BUGS in 1.1.1 and 1.2 BETA 3
Guido van Rossum0ddb0281995-01-17 16:46:14 +000029----------------------------------
30
Guido van Rossum2cc9b2b1995-03-10 15:09:12 +000031(-) still a memory leak in threads when thread.exit_thread() is used
Guido van Rossum0ddb0281995-01-17 16:46:14 +000032
33Problems in 1.1.1 that are difficult to solve
34---------------------------------------------
Guido van Rossumaf5b83e1995-01-04 19:02:35 +000035
36(-) tkinter seems to leave an exception around sometime which breaks
37unmarshalling code objects [hard to reproduce, have added a trap to
Guido van Rossum79dddcb1995-01-12 12:25:42 +000038marshal.c to catch it]
Guido van Rossumaf5b83e1995-01-04 19:02:35 +000039
40(-) destroying all modules may destroy __builtin__ (or other modules)
41while destructors of other modules may still need it [hard to fix --
42could maintain a list of all modules in order of importation so we can
43destroy them in reverse order??? really hopeless -- would have to
44destroy objects in a module in reverse order too...]
45
Guido van Rossum8a30adc1995-01-09 17:54:07 +000046(-) doneimport() should be called *before* the Py_AtExit code is
47called [problem: what if other threads are still active?]
Guido van Rossumaf5b83e1995-01-04 19:02:35 +000048
Guido van Rossum79dddcb1995-01-12 12:25:42 +000049Known portability problems
50--------------------------
Guido van Rossumaf5b83e1995-01-04 19:02:35 +000051
Guido van Rossum79dddcb1995-01-12 12:25:42 +000052(-) tkinter doesn't seem to see any declaration of malloc on sunos
534.1.3?
Guido van Rossumaf5b83e1995-01-04 19:02:35 +000054
Guido van Rossum76be6ed1995-01-02 18:33:54 +000055(-) arraymodule doesn't compile under Ultrix (FPROTO macro)
56
Guido van Rossum76be6ed1995-01-02 18:33:54 +000057(-) makesetup assumes CCC is the C++ compiler -- not portable
58
59(-) "make depend" assumes mkdep exists -- not portable
60
Guido van Rossum76be6ed1995-01-02 18:33:54 +000061(-) regen calls h2py which isn't defined by default
62
Guido van Rossum76be6ed1995-01-02 18:33:54 +000063(-) HP doesn't compile out of the box (needs LIBS=-ldld or
Guido van Rossum8a30adc1995-01-09 17:54:07 +000064LIBS=/usr/lib/libdld.sl) [hard to test without a HP machine handy]
Guido van Rossum76be6ed1995-01-02 18:33:54 +000065
Guido van Rossum76be6ed1995-01-02 18:33:54 +000066======================================================================
67BUGS present in 1.1.1 and fixed in 1.2
68--------------------------------------
69
Guido van Rossum2cc9b2b1995-03-10 15:09:12 +000070(*) Linux uses GNU getopt by default which is broken
71
72(*) make sharedinstall references to machdep directory but doesn't
73create it
74
75(*) a file with unmatched triple quotes causes a loop in the scanner
76
77(*) [X]DECREF can cause the interpreter to be called recursively (for
78__del__ disciplines) -- so list and dict implementation calls doing
79DECREF can cause recursive calls to methods of the object being
80modified. Other files too.
81
Guido van Rossum79dddcb1995-01-12 12:25:42 +000082(*) if __getattr__ or __repr__ prints something, calling repr(x) from
83cmd line forgets a newline
84
85(*) C-level coerce() doesn't call __coerce__ when it should (and
86similar for __cmp__)
87
Guido van Rossum8a30adc1995-01-09 17:54:07 +000088(*) struct module aligns doubles wrongly when compiled with -DDEBUG on
89sparc
90
Guido van Rossumaf5b83e1995-01-04 19:02:35 +000091(*) memory leak (namebuf) in initmodule2
92
93(*) hash() of float values returns bogus values
94
95(*) pow(int, int, long) does wrong series of DECREF() calls.
96
97(*) flushline() may clear the exception condition so shouldn't be
98called before print_error()
99
100(*) Everything else that uses err_get() should use err_fetch()
101
102(*) sockets aren't thread safe (address of static struct returned,
103some calls aren't thread safe)
104
105(*) threadmodule.c leaks LOTS of memory at thread exit
106
107(*) shared install in Modules still doesn't work for empty list
108
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000109(*) threadmodule.c leaks 'res' in t_bootstrap
110
111(*) errors.c shouldn't declare strerror() on NT
112
113(*) DECREF can cause the interpreter to be called recursively (for
114__del__ disciplines) -- so list and dict implementation calls doing
115DECREF can cause recursive calls to methods of the object being
116modified. Other files too. (Only partially fixed.)
117
118(*) tkinter dereferences NULL if timer callback raises an exception
119
120(*) must link with -lieee for linux
121
122(*) if a timer handler routine raises an exception, the interpreter
123dereferences NULL
124
125(*) __getattr__ doesn't clear error
126
127(*) '%s' % a, where a is a class instance, fails
128
129(*) "make test" won't find freshly built dynamically loaded modules --
130should add ./Modules to TESTPATH
131
132(*) lshift calls __rshift__ instead of __rlshift__
133
134(*) memory leak in creation of sys.builtin_module_names
135
136(*) Bugs in instance_dealloc(): (a) memory leak for exception
137type+value; (2) should save+restore traceback as well
138
139(*) modsupport.c(vmkvalue): on systems where va_list is an array, the
140calls to do_mkvalue and do_mktuple don't want an "&" before va.
141
142======================================================================
Guido van Rossum9444ce01994-10-20 22:10:23 +0000143BUGS found in 1.1 and fixed in 1.1.1
144------------------------------------
145
Guido van Rossum5dee5e71994-11-10 23:06:54 +0000146(*) printing name of lambda in traceback dereferences NULL
147
148(*) A built-in function using getargs() and expecting >= 1 argument
149may dump core when called without arguments
150
151(*) newgetargs() dumps core in compat mode when NULL is passed in but
152max is >0
153
Guido van Rossum9444ce01994-10-20 22:10:23 +0000154(*) pow() should be declared varargs since it uses newgetargs
155
Guido van Rossum5dee5e71994-11-10 23:06:54 +0000156(*) newmodule.c doesn't compile on SunOS 4.1.3 due to non-K&R backslashes
157
158(*) some typos in tut.tex
159
160(*) test for broken static forward is not strong enough
161
162(*) Doc/Makefile assumes . is in $PATH in call to whichlibs
163
164(*) math module misses hypot() function
165
166(*) structmember.h should include stddef.h (for offsetof macro)
167
168(*) gdbmmodule.c frees the wrong structures
169
170(*) makesetup script misses some dollars and backslashes
171
172(*) getargs.obj missing from NT makefile
173
174(*) sorting class instances broken if no __cmp__ defined
175
Guido van Rossum5dee5e71994-11-10 23:06:54 +0000176======================================================================
Guido van Rossum9444ce01994-10-20 22:10:23 +0000177BUGS found in 1.0.3 and fixed in 1.1
178------------------------------------
179
Guido van Rossum76be6ed1995-01-02 18:33:54 +0000180(*) 2 specific leaks: 1 PYTHONPATH; 2 reading code from .pyc
181
Guido van Rossum9444ce01994-10-20 22:10:23 +0000182(*) If class C doesn't define __cmp__, cmp(a,b) will return -2 and
183[a,b].sort() will fail
184
Guido van Rossum2b11c611994-10-06 16:36:15 +0000185(*) Syntax errors are reported in a silly way if multi-line tokens are
Guido van Rossumfda5fb21994-08-12 13:18:41 +0000186involved.
187
Guido van Rossum2b11c611994-10-06 16:36:15 +0000188(*) SyntaxError exception for compile('...') are reported wrongly
Guido van Rossumfda5fb21994-08-12 13:18:41 +0000189(lineno is always zero and offset is offset into the whole string).
190
Guido van Rossum2b11c611994-10-06 16:36:15 +0000191(*) freeze script needs major rewrite to cope with multiple extensions
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000192(Jack seems to have fixed it now -- where is it?)
193
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000194(*) unwanted entries in stack trace if err_clear() clears an error
195that also set a stack trace
196
197(*) i, x[i] = a, b assigns b to x[a] rather than to x[i] as expected
198(documented with a warning in ref6.tex!)
199
200(*) etags no longer supports -t flag
201
202(*) compile.c:com_argdefs() references unalloc'ed memory for def
203f(a=1,): ...
204
205(*) If you have a python binary in your path like
Guido van Rossumfda5fb21994-08-12 13:18:41 +0000206/ufs/guido/bin/sgi/python then the default prefix option computed by
207the configure script is bogus!
208
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000209(*) Make rule for making lib*.a should remove the lib*.a file first.
Guido van Rossumfda5fb21994-08-12 13:18:41 +0000210
Guido van Rossum5552eb71994-08-05 15:51:00 +0000211(*) vars() error message is wrong (copied from dir() obviously).
212
213(*) socket.gethostname() is undocumented.
214
215(*) rfc822.py: getfirst* dies when multiple headers occur
216
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000217(*) urllib caching is wrong (should use date from Expires header)
Guido van Rossum5552eb71994-08-05 15:51:00 +0000218
219(*) On a related matter: regexpr.c still has two malloc()s the results
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000220of which are not tested for being NULL (lines 1253 and 1530). There
221are also some in rgbimagemodule.c. Am I overlooking something or is
Guido van Rossumfda5fb21994-08-12 13:18:41 +0000222this a crasher?
Guido van Rossum5552eb71994-08-05 15:51:00 +0000223
224(*) strop.rindex('abc', '') returns 0 instead of 3
225
226(*) sunaudiodevmodule.o is too long!
227
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000228(*) toplevel README needs new text on PC and Mac builds
Guido van Rossum5552eb71994-08-05 15:51:00 +0000229
230(*) long(0x80000000) has wrong value!
231
232======================================================================
233Bugs found in 1.0.2 and not yet fixed
234-------------------------------------
235
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000236(?) compiler warnings about argument type of uname() on ULTRIX
237machines (don't know what to do about it)
Guido van Rossum5552eb71994-08-05 15:51:00 +0000238
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000239(?) syntax error for interactive input prints garbage instead of last
240source line on some systems (e.g. AIX) (impossible to test/reproduce)
241!!! I think I've found this one -- a missing INCREF in print_error!
Guido van Rossum5552eb71994-08-05 15:51:00 +0000242
243(?) (maybe) a bad .pyc file (with old magic number) causes the .py
244file to be ignored
245
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000246(?) Sunos4.0.2 / 386 configure bugs:
Guido van Rossum5552eb71994-08-05 15:51:00 +0000247 - timelocal instead of mktime
248 - unistd.h doesn't declare some functions
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000249(don't know what to do about this)
Guido van Rossum5552eb71994-08-05 15:51:00 +0000250
251Bugs found in 1.0.2 and fixed in 1.0.3
252--------------------------------------
253
254(*) nasty bug in string formatting (see test_types.py, search for %)
255
256(*) if a triple-quoted string ends in a quote followed by a newline
257(followed immediately by the terminating 3 quotes) then a syntax error
258or system error ensues
259
260(*) bug in socket.listen: clipping backlog to >= 1 doesn't work
261
262(*) two bogus XDEL's in Modules/regexmodule.reg_dealloc()
263
264(*) Parser/myreadline.my_fgets: #endif EINTR misplaced
265
266(*) new IP address for ftp.cwi.nl !!!
267
268(*) typing vars() to interactive prompt runs into infinite loop
269because of '_'
270
271(*) tokenizer/tok_nextc() runs into infinite loop when file does not
272end in linefeed
273
274(*) Sunos4.0.2 / 386 configure bugs:
275(*) - use size_t at some places without including sys/types.h
276(*) - missing clock_t
277(*) - uses SEEK_SET in some places that don't include unistd.h
278
279======================================================================
280Bugs found in 1.0.1 and not yet fixed
281-------------------------------------
282
Guido van Rossum5552eb71994-08-05 15:51:00 +0000283(?) threads are slow on Solaris 2
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000284(so what?)
Guido van Rossum5552eb71994-08-05 15:51:00 +0000285
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000286(*) threads cause myreadline.c's readline() to think it sees an EOF.
287(I *think* I've fixed this, by testing for EINTR)
Guido van Rossum5552eb71994-08-05 15:51:00 +0000288
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000289(?) min() on PC version generates wrong result (i.e. same as max())
Guido van Rossum5552eb71994-08-05 15:51:00 +0000290 [this happens on SoftPC -- don't know about other systems]
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000291(can't find the reason -- may be SoftPC bug)
Guido van Rossum5552eb71994-08-05 15:51:00 +0000292
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000293(*) flp.py cache bug: if the cache only contains one form, asking for
294all forms returns only the cached form
Guido van Rossum5552eb71994-08-05 15:51:00 +0000295
296Bugs found in 1.0.1 and fixed in 1.0.2
297--------------------------------------
298
299(*) core dump when parser.parsefile() called
300
301(*) man page contains a mess before -d option
302
303(*) threads don't work on IRIX 4
304
305(*) wrong cast of svideo_getattr in svmodule.c
306
307(*) bad return value in runpython.c's run_tty_1()
308
309(*) creating dict of 100,000 objects gets MemoryError or dumps core
310
311(*) freeze script doesn't work
312
313======================================================================
314BUGS found in 1.0.0 and not yet fixed
315-------------------------------------
316
317(?) On NeXT, need to define _POSIX_SOURCE.
318
319(?) there appears to be something wrong with gcc and -ldl on some
320SunOS 4.1.3 systems
321
Guido van Rossumc561e5d1994-08-23 13:52:46 +0000322(?) jredfords reports core dump with float literals
Guido van Rossum5552eb71994-08-05 15:51:00 +0000323
324BUGS found in 1.0.0 and fixed in 1.0.1
325--------------------------------------
326
327(*) On SGI IRIX 4 using cc, compilation errors in md5module.c.
328
329(*) In cdmodule.c, getattr initialized with (destructor)!
330
331(*) Lib/tzparse.py runs test() on import
332
333(*) Lib/filewin.py belongs in Lib/stdwin
334
335(*) lib and man install targets don't use $(srcdir)
336
337(*) Modules/rgbimgmodule.c: exception name contains comma instead of dot
338
339(*) The FAQ still references misc/EXTENDING and misc/DYNLOAD etc
340
341(*) The FAQ still describes how to work around a problem in 0.9.9 exec()
342
343(*) Lib/aifc.py, returns float rate, should be int
344
345(*) Lib/sunau.py, incorrectly cumputes byte count from frame rate
346
347(*) README should mention possibility of passing OPT=-g to make
348
349(*) dynamic loading on sunos 4.1.3 must call dlopen(..., 1)
350
351(*) use of <varargs.h> vs. <stdarg.h> should depend on
352 HAVE_STDARG_PROTOTYPES, not on HAVE_STDARG_H
353
354(*) Doc/README refers to Misc/FTP which in fact does not exist any more
355
356(*) filter(None, 'abcdefg') dumps core
357
358(*) once you interrupt time.sleep(), there is no interrupt handler!
359
360======================================================================
361end of file