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