*** empty log message ***
[bpt/guile.git] / BUGS
CommitLineData
c14bde86
TTN
1BUGS
2
3This file contains bugs we haven't fixed yet, and some we have.
4The format is very simple (one bug per page):
5
7d87115c
TTN
6# line regexp
7
81 bug NUMBER -- ONE-LINE-DESCRIPTION ^bug ([0-9]+) -- (.+)$
92 reported-by: SOMEONE / DATE ^reported-by: ([^/]) */ *(.+)$
103 fixed: DATE (for guile VERSION) ^fixed: (.+) .for guile (.+).$
114+ OTHER-NOTES
12
23c06383 13DATE is formatted YYYY-MM-DD, or "not-yet". Line numbering is zero-origin;
7d87115c
TTN
14line 0 is empty (newline always follows newpage (recognizable w/ "\f\n")).
15The suggested regexps can be used in a line-oriented parser.
c14bde86 16
07a245bc
TTN
17You can use "fixed: no-need (EXPLANATION)" if the bug doesn't need to be
18fixed. EXPLANATION might be "not a bug", "user error", etc.
19
c14bde86
TTN
20\f
21bug 0 -- no BUGS file
22reported-by: ttn / 2001-09-25
23fixed: 2001-09-30 (1.5.x, 1.7.x)
24
7d87115c 25bugs are good.
c14bde86
TTN
26
27\f
28bug 1 -- (debug-disable 'debug) has no effect if first form in ~/.guile
29reported-by: Sven.Hartrumpf@fernuni-hagen.de / 2001-08-31
7d87115c 30fixed: not-yet
c14bde86 31
7d87115c
TTN
32ttn sez:
33buggy behavior confirmed on both 1.5.x and 1.7.x.
c14bde86
TTN
34
35on the other hand, when second or later, the expected effect (disabling use of
36debugging evaluator) seems to be reflected when viewing the debug options. it
37could be that the bug is in display and not the actual setting.
38
39\f
7d87115c
TTN
40bug 2 -- documentation mirroring not complete
41reported-by: lord@regexps.com / 2001-08
42fixed: not-yet
43
44ttn sez:
45uncollated mirroring is already available:
46http://savannah.gnu.org/cgi-bin/viewcvs/guile/
47http://mail.gnu.org/pipermail/guile-devel/
48
49\f
50bug 3 -- design decisions not recorded
51reported-by: lord@regexps.com / 2001-08
52fixed: not-yet
53
54changes are made w/ little documentation on their motivation, design and
55consequences. past initiatives and current maintainer discipline to support
56them need shoring up.
57
58ttn sez:
59someone also mentioned that process and product are orthogonal; nastiness can
60result in/from either, and for different reasons. i tend to believe this up
61until a certain point, when the process becomes self-aware and includes its own
62improvement in its considerations. then, hopefully it becomes light.
63
64to change people is difficult, but that's why we have guile...
65
66\f
23c06383
TTN
67bug 4 -- named-let transform evaluates initvalue in the wrong scope
68reported-by: agj@alum.mit.edu / 2001-09-21
302c12b4 69fixed: 2001-11-17 (1.7.x)
23c06383
TTN
70
71currently:
72> (let name ((var init) ...) body ...)
d5b7b584 73>
23c06383 74> to
d5b7b584 75>
23c06383
TTN
76> (letrec ((name (lambda (var ...) body ...)))
77> (name init ...))
78
79should be:
80> ((letrec ((name (lambda (var ...) body ...))) name) init ...)
81
82Dirk Herrmann sez:
83I will do it - no big deal (I hope). But, I won't have time to do it
84before next week. What about adding this code as a test case to the test
85suite? Until it is fixed, it can be tagged as expected to fail.
86
87\f
969182ac
TTN
88bug 5 -- uniform vector read-hash "e" clashes w/ exactness specification
89reported-by: kwright@gis.net / 2001-10-07
1ac8e041 90fixed: 2001-10-14 (1.5.x, 1.7.x)
969182ac
TTN
91
92Keith Wright sez:
93> Before getting into philosophy, I want to mention that while poking
94> around and rethinking I found the following Bug.
d5b7b584 95>
969182ac
TTN
96> guile> (version)
97> "1.5.2"
98> guile> #E3
99> 3
100> guile> #e3
101> ERROR: read:uniform-vector list not found
102> ABORT: (misc-error)
103> guile> 3
d5b7b584
TTN
104>
105> This violates both R5RS 7.1 ``Case is insignificant'' and
106>
969182ac
TTN
107> > From: guile-1.5.2/doc/ref/guile.info-3 Line 568
108> >
109> > The codes for indicating exactness (which can, incidentally, be
110> > applied to all numerical values) are:
111> >
112> > * `#e', `#E' -- the number is exact
dc5ab9af 113
1ac8e041
GH
1142001-10-14 Mikael Djurfeldt <mdj@linnaeus>
115
116 * read.c (scm_lreadr): When user-defined hash procedure returns
117 SCM_UNSPECIFIED: Fall back to standard handling instead of raising
118 an exception. (This prevents parsing of uniform vectors from
119 interfering with parsing of numbers.)
120
dc5ab9af
TTN
121\f
122bug 6 -- exactness prefix doesn't do nothing gracefully
123reported-by: kwright@gis.net / 2001-10-09
1ac8e041 124fixed: 2001-10-14 (1.5.x, 1.7.x) (see bug 5)
dc5ab9af
TTN
125
126[this may be related to bug 5. --ttn]
127
128Keith Wright sez:
129> The saga continues...
d5b7b584 130>
dc5ab9af
TTN
131> > > The codes for indicating exactness (which can, incidentally, be
132> > > applied to all numerical values) are:
133> > >
134> > > * `#e', `#E' -- the number is exact
d5b7b584 135>
dc5ab9af
TTN
136> guile> #E3 ==> 3
137> guile> #E3.0
138> ERROR: In procedure scm_lreadr:
139> ERROR: unknown # object
d5b7b584 140>
dc5ab9af 141> Better change the reference manual s/, incidentally,/'t/.
d5b7b584 142>
dc5ab9af
TTN
143> (That's a joke son. The Scheme language requires #e in front
144> of any number to at least do nothing successfully.)
145
969182ac 146\f
6cf0878f
TTN
147bug 7 -- readline configuration anomolies not handled gracefully
148reported-by: kwright@gis.net / 2001-10-17
149fixed: not-yet
150
151\f
152bug 8 -- install requires makeinfo
153reported-by: kwright@gis.net / 2001-10-17
154fixed: not-yet
155
156Keith Wright sez:
157> I got guile-1.5.4 and installed it on one machine with no problem.
158> On another I did ./configure;make as before and it died with:
d5b7b584 159>
6cf0878f
TTN
160> > ...
161> > on.doc vports.doc weaks.doc symbols-deprecated.doc regex-posix.doc ramap.doc unif.doc filesys.doc posix.doc net_db.doc socket.doc | ./guile-snarf-docs-texi > guile.texi \
162> > || { rm guile.texi; false; }
163> > rm -f guile-procedures.txt
164> > makeinfo --force -o guile-procedures.txt guile.texi || test -f guile-procedures.txt
165> > /bin/sh: makeinfo: command not found
166> > make[1]: *** [guile-procedures.txt] Error 1
167> > make[1]: Leaving directory `/home/kwright/build/guile-1.5.4/libguile'
168> > make: *** [all-recursive] Error 1
d5b7b584 169>
6cf0878f
TTN
170> I get the impression that it is supposed to build without 'makeinfo',
171> if this is not so it should be mentioned in the README or INSTALL.
172
173\f
d5b7b584
TTN
174bug 9 -- sibling threads not infinite looping
175reported-by: giraud@tif.inria.fr / 2001-09-24
176fixed: not-yet
177
178Manuel Giraud sez:
179> I've configure guile-1.5.4 '--with-threads' and '--with-modules' on a
180> "classical" Linux box and used this code that crash silently :
181>
182> (use-modules (ice-9 threads))
183>
184> (begin-thread
185> (let loop ()
186> (display "a")
187> (newline)
188> (loop)))
189>
190> (begin-thread
191> (let loop ()
192> (display "b")
193> (newline)
194> (loop)))
195
196mdj sez:
197+ 2001-10-06 Mikael Djurfeldt <mdj@linnaeus>
198+
199+ These changes fixes a race condition in the Guile coop - pthread
200+ compatibility code.
201+
202+ * coop.c (mother_awake_p): New variable.
203+ (coop_create): Set mother_awake_p before creating or signalling
204+ mother; wait until mother is going to sleep before returning.
205+ (mother): Reset mother_awake_p before going to sleep.
206+
207
208ttn sez:
209crash still occurs w/ "guile -s bug.scm" (cvs checkout on 2001/11/06).
210however, "guile -l bug.scm" works as expected.
211
212\f
3989f082
TTN
213bug 10 -- embedded libltdl masks system version unconditionally
214reported-by: grib@linuxdevel.com / 2001-11-04
215fixed: not-yet
216
217Bill Gribble sez:
218> The guideline for when to use the convenience version of libltdl is
219> this:
220>
221> > In general you can safely use the convenience library in
222> > programs which don't depend on other libraries that might
223> > use libltdl too.
224>
225> So guile's use of the convenience library embodies an assumption about
226> programs which use guile: that they will not use libltdl except through
227> guile's wrapper (dynamic-link and friends).
228>
229> It seems like this is a bad assumption for guile to make, since it is
230> intended to be used as an extension language for many different kinds of
231> programs and not to put a priori restrictions on what they can do.
232> Especially when those restrictions are not documented.
233>
234> I would suggest that prior to the guile-1.6 release the use of the
235> convenience ltdl library be removed, instead depending on an installed
236> version of libltdl.
237
238\f
22ad0748
TTN
239bug 11 -- (ice-9 optargs) #:rest arg polluted by keys/values
240reported-by: ttn / 2001-11-09
07a245bc 241fixed: no-need (behavior consistent w/ Common Lisp, user error)
22ad0748
TTN
242
243ttn sez:
244> the following code displays
245>
246> (#<procedure good x> ())
247> (#<procedure good x> (1))
248> (#<procedure good x> ((1 2 3)))
249> (#<procedure blah x> JAY KAY (#:j JAY #:k KAY))
250> (#<procedure blah x> JAY KAY (#:j JAY #:k KAY 1))
251> (#<procedure blah x> JAY KAY (#:j JAY #:k KAY (1 2 3)))
252>
253> but `x' should be the same for both `good' and `blah':
254>
255> (use-modules (ice-9 optargs) (ice-9 rdelim))
256>
257> (define* (good #:rest x)
258> (write-line (list good x)))
259>
260> (good)
261> (good 1)
262> (good '(1 2 3))
263>
264> (define* (blah #:key (j 'j) (k 'k) #:rest x)
265> (write-line (list blah j k x)))
266>
267> (blah #:j 'JAY #:k 'KAY)
268> (blah #:j 'JAY #:k 'KAY 1)
269> (blah #:j 'JAY #:k 'KAY '(1 2 3))
270
07a245bc
TTN
271mvo sez:
272> In Common Lisp, there are no non-key rest-args when you have keyword
273> parameters. After the required and optional arguments, there must
274> follow an even number of additional arguments, and every two of them
275> are treated as a keyword/value pair.
276>
277> I think it makes sense the way CL specifies this. Anything beyond
278> this would lead to confusion. If you want to go beyond what (ice-9
279> optargs) offers, yo are probably best off writing your own argument
280> parser.
281
22ad0748 282\f
c14bde86 283[BUGS ends here]