1 |
This is a list of bugs that have been found in gcl. When you fix |
2 |
a bug, add the notation (FIXED) after the bug number, but leave the |
3 |
number in place so it isn't reused. |
4 |
|
5 |
1 (FIXED). (subtypep s 'structure-object) isn't working properly when |
6 |
s is a structure class name or a structure class object. |
7 |
This is causing 95 ansi-test failures. |
8 |
|
9 |
2. (FIXED) (sublis x y :test #'fn) is passing the arguments to fn in the |
10 |
wrong order. The problem here is that the :key argument is being |
11 |
applied somewhat unusually, making the usual TEST macro not do |
12 |
quite the right thing. ansi-tests: sublis.9 and sublis.10 |
13 |
|
14 |
3. (FIXED) (nsublis x y :test #'fn) is passing the arguments to fn in the |
15 |
wrong order. Similar to bug #2. ansi-tests: nsublis.10 and nsublis.11 |
16 |
|
17 |
4. (FIXED) (last x n) is incorrectly signaling an error when n is a positive |
18 |
bignum. Instead, it should return x. ansi-tests: last.11, last.12 |
19 |
|
20 |
5. (FIXED) The map* functions should signal a type error when given an improper |
21 |
list. They do so, but the slots of the type error object don't |
22 |
satisfy the property that the value in the datum slot is not of |
23 |
the type in the expected-type slot. ansi-tests: mapc.error.8, |
24 |
mapcar.error.8, mapcan.error.8, mapl.error.8, maplist.error.11, |
25 |
mapcon.error.8 |
26 |
|
27 |
6. (FIXED) Similar to #5, but the error is for GET-PROPERTIES. ansi-tests: |
28 |
get-properties.error.[456] |
29 |
|
30 |
7. (FIXED) (SETF (GETF form1 form2 form3) form4) is evaluating the subforms |
31 |
in the wrong order: form3 is being evaluated before (the subforms of) |
32 |
form1 and form2. ansi-tests: setf-getf.order.2 |
33 |
|
34 |
8. (FIXED) Similar to #5, but the error is for GETF. ansi-tests: |
35 |
getf.error.[45] |
36 |
|
37 |
9. (FIXED) REMF is violating the requirement that the value of the place be |
38 |
read out after all the other subforms of the REMF form are computed |
39 |
(even the ones to the right of the place form; see section 5.1.3 |
40 |
of CLtS). ansi-tests: remf.order.3 |
41 |
|
42 |
10. Similar to #5, but on ELT when the index is out of range. Should |
43 |
return a type-error with datum == the index and type == |
44 |
`(integer 0 (,(length sequence))) (or NIL if the sequence has length 0). |
45 |
ani-tests: elt.1, elt.1b, elt.2, |
46 |
|
47 |
11. There's an internal type error somewhere in the code exercised by |
48 |
elt.10 -- the invalid type (integer 0 . 1) is being passed to TYPEP |
49 |
(and similarly for elt.14, elt-v.1, elt-v.10, elt-adj-array.1, |
50 |
elt-adj-array.10, elt-displaced-array.1, elt-fill-pointer.[3468], |
51 |
and elt,error.[45]). |
52 |
|
53 |
12. (FIXED) Coerce can't coerce a vector of characters into a base-string. |
54 |
ansi-tests: fill.string.10 |
55 |
|
56 |
13. (FIXED) MAKE-SEQUENCE fails on type argument NULL, |
57 |
(CLASS-OF NIL), or (FIND-CLASS LIST). |
58 |
ansi-tests: make-sequence.57 |
59 |
|
60 |
14. (partially FIXED; map.error.11 still fails) |
61 |
The datum and expected type fields of the type errors thrown by |
62 |
MAKE-SEQUENCE, MAP do not satisfy the constraint that the datum |
63 |
is not of type expected-type. ansi-tests: make-sequence.error.1, |
64 |
make-sequence.error.2, make-sequence.error.14, make-sequence.error.16, |
65 |
map.error.1, map.error.1a, map.error.11. |
66 |
|
67 |
15. (FIXED) MAP fails on type argument NULL, (OR (VECTOR 5) (VECTOR 10)) |
68 |
ansi-tests: map-null.1, map.48 |
69 |
|
70 |
16. NREVERSE is broken on vectors of element type LISP:SIGNED-SHORT |
71 |
|
72 |
(let ((v (make-array '(7) :initial-contents '(1 1 0 1 1 1 0) |
73 |
:element-type 'lisp:signed-short))) |
74 |
(nreverse v)) |
75 |
==> #(0 1 1 1 1 1 0) |
76 |
|
77 |
(ansi-tests: nreverse-vector.7, nreverse-vector.8) |
78 |
|
79 |
17. (FIXED) The setf expander for SUBSEQ returns the wrong value (the |
80 |
entire vector is returned rather than the aubsequence being assigned.) |
81 |
ansi-tests: subseq.order.[34] |
82 |
|
83 |
18. (FIXED) CONCATENATE fails on type argument of NULL, as does MERGE. |
84 |
ansi-tests:. concatenate.24, merge-null.1, merge.error.6 |
85 |
|
86 |
19, (partially FIXED; no-extra-symbols-exported-from-common-lisp still fails) |
87 |
There are 140 symbols exported from the COMMON-LISP package that |
88 |
should not be external in that package. |
89 |
ansi-tests: no-extra-symbols-exported-from-common-lisp |
90 |
all-exported-cl-class-names-are-valid |
91 |
|
92 |
20. 19 functions are missing: arithmetic-error-operands |
93 |
broadcast-stream-streams cell-error-name concatenated-stream-streams |
94 |
echo-stream-input-stream echo-stream-output-stream |
95 |
function-lambda-expression (FIXED)get-setf-expansion |
96 |
(FIXED) make-load-form-saving-slots pprint-indent pprint-newline |
97 |
pprint-tab print-not-readable-object simple-condition-format-control |
98 |
synonym-stream-symbol two-way-stream-input-stream |
99 |
two-way-stream-output-stream unbound-slot-instance |
100 |
(FIXED)compiler-macro-function readtable-case. |
101 |
|
102 |
ansi-tests: cl-function-symbols.1, dcf-funs and these tests: |
103 |
|
104 |
cell-error-name: |
105 |
symbol-value.error.5 symbol-function.error.5 makunbound.2 |
106 |
eval.error.3 eval.error.4 cell-error-name.[123456] |
107 |
cell-error-name.error.[12] |
108 |
|
109 |
get-setf-expansion (FIXED) |
110 |
get-setf-expansion.error.[12] get-setf-expansion.[123] |
111 |
|
112 |
simple-condition-format-control |
113 |
error.1 error.4 cerror.1 cerror.4 |
114 |
|
115 |
synonym-stream-symbol: |
116 |
synonym-stream-symbol.1 synonym-stream-symbol.error.[12] |
117 |
|
118 |
broadcast-stream-streams: |
119 |
broadcast-stream-streams.[12] |
120 |
broadcast-stream-streams.error.[12] |
121 |
|
122 |
two-way-stream-input-stream: |
123 |
two-way-stream-input-stream.1 |
124 |
two-way-stream-input-stream.error.[12] |
125 |
|
126 |
two-way-stream-output-stream: |
127 |
two-way-stream-output-stream.1 |
128 |
two-way-stream-output-stream.error.[12] |
129 |
|
130 |
echo-stream-input-stream: |
131 |
echo-stream-input-stream.1 |
132 |
echo-stream-input-stream.error.[12] |
133 |
|
134 |
echo-stream-output-stream: |
135 |
echo-stream-output-stream.1 |
136 |
echo-stream-output-stream.error.[12] |
137 |
|
138 |
concatenated-stream-streams: |
139 |
concatenated-stream-streams.[12345] |
140 |
concatenated-stream-streams.error.[12] |
141 |
|
142 |
(FIXED) make-load-form-saving-slots: |
143 |
make-load-form-saving-slots.[123456789] |
144 |
make-load-form-saving-slots.1[012] |
145 |
make-load-form-saving-slots.error.[12] |
146 |
|
147 |
pprint-indent |
148 |
pprint-indent.[123456789] pprint-indent.1[0123456789] |
149 |
pprint-indent.13a pprint-indent.2[0123] |
150 |
pprint-indent.error.[123] |
151 |
|
152 |
pprint-newline |
153 |
pprint-newline.[123] pprint-newline.linear.[123456789] |
154 |
pprint-newline.linear.10 pprint-newline.miser.123456789] |
155 |
pprint-newline.miser.1[0123] pprint-newline.fill.[123456789] |
156 |
pprint-newline.fill.10 pprint-newline.mandatory.[123456] |
157 |
pprint-newline.error.123] pprint-newline.error.1-unsafe |
158 |
|
159 |
pprint-tab |
160 |
pprint-tab.non-pretty.[12345678] pprint-tab.nil.1 |
161 |
pprint-tab.t.1 pprint-tab.line.1 pprint-tab.section.1 |
162 |
pprint-tab.line-relative.1 pprint-tab.section-relative.1 |
163 |
pprint.tab.error.[1234] |
164 |
|
165 |
21. The following macros are missing: (FIXED)define-compiler-macro |
166 |
(FIXED)define-setf-expander define-symbol-macro in-package. |
167 |
ansi-tests: cl-macro-symbols.1 in-package.error.1 |
168 |
dcf-macros define-setf-expander.error.1 (FIXED) |
169 |
define-setf-expander.[1234567] (partially FIXED; define-setf-expander.7 |
170 |
still fails) |
171 |
define-compiler-macro.error.[123] |
172 |
define-compiler-macro.[12345678] define-symbol-macro.error.[123] |
173 |
documentation.symbol.setf.[12] |
174 |
|
175 |
22. GENTEMP should take a package designator as its second argument, |
176 |
not just a package object. ansi-tests: gentemp.[345]. |
177 |
|
178 |
23. (special-operator-p 'symbol-macrolet) should be true. |
179 |
ansi-tests: special-operator-p.1 |
180 |
|
181 |
24. (debatable) special-operator-p should be nil on DECLARE and IN-PACKAGE. |
182 |
ansi-tests: special-operator-p.2 |
183 |
|
184 |
25. (debatable) "USER" should not be a nickname of "COMMON-LISP-USER" |
185 |
(instead, it can name a separate package). |
186 |
ansi-tests: common-lisp-user-package-nicknames |
187 |
|
188 |
26. FIND-ALL-SYMBOLS should take a string designator, which includes |
189 |
character values. ansi-tests: find-all-symbols.2 |
190 |
|
191 |
27. Free special declarations do not apply to the final value clauses |
192 |
of iteration forms. ansi-tests: do-symbols.16 do-external-symbols.16 |
193 |
|
194 |
28. The scope of the bound variable in DO-ALL-SYMBOLS should include |
195 |
the final value form. ansi-tests: do-all-symbols.4 |
196 |
|
197 |
29. The implicit block in DO-ALL-SYMBOLS should surround the entire |
198 |
loop, including the return value form. ansi-tests: do-all-symbols.6 |
199 |
|
200 |
30. DO-ALL-SYMBOLS should accept declarations. ansi-tests: do-all-symbols.9 |
201 |
do-all-symbols.10 do-all-symbols.11 |
202 |
|
203 |
31. IMPORT should set the home package of any symbol being imported that |
204 |
does not have a home package. ansi-tests: import.5 |
205 |
|
206 |
32. The setf expander for VALUES evaluates the source form before the subforms |
207 |
of the destination places. ansi-tests: setf-values.5 |
208 |
|
209 |
33. Order of evaluation problem in expansion of psetq/psetf, possibly involving |
210 |
symbol macros. ansi-tests: psetq.7 psetf.7 |
211 |
|
212 |
34. Cannot create classes whose names are uninterned symbols. |
213 |
ansi-tests: psetf.35 rotatef.35 defclass.forward-ref.4 |
214 |
|
215 |
35. ROTATEF does not work with no arguments. snsi-tests: rotatef.3 |
216 |
|
217 |
36. DEFSETF (long form) should produce an implicit block with the name |
218 |
of the accessor-fn. ansi-tests: defsetf.5a |
219 |
|
220 |
37. The expansion function produced by DEFSETF (long form) should be defined |
221 |
in the same lexical environment in which the DEFSETF form appears. |
222 |
ansi-tests: defsetf.6a |
223 |
|
224 |
38. The control error signaled by (throw (gensym) nil) isn't printable |
225 |
when *print-escape* and *print-readably* are nil. ansi-tests: throw-error |
226 |
|
227 |
39. DOCUMENTATION should be allowed to be called on function objects, not |
228 |
just function names. ansi-tests: define-modify-macro.documentation.1 |
229 |
define-modify-macro.documentation.2 |
230 |
documentation.function.function.[1235] |
231 |
|
232 |
40. In DEFUN where the function names is a (SETF <name>) pair, there is an |
233 |
implicit block with name <name>. ansi-tests: defun.4 |
234 |
|
235 |
41. Free special declarations do not apply to the expressions in &aux, |
236 |
&optional or &key forms of an ordinary lambda list. See also bug #49. |
237 |
ansi-tests: defun.5 defun.6 defun.7 |
238 |
|
239 |
42. &WHOLE causes an error during macroexpansion in destructuring-bind. |
240 |
ansi-tests: destructuring-bind.20 |
241 |
|
242 |
43. destructuring-bind fails to destructure in the &rest parameter |
243 |
ansi-tests: destructuring-bind.21 |
244 |
|
245 |
44. The macro function for destructuring-bind (and, I suspect, many |
246 |
other builtin macros) fails to properly signal a program error |
247 |
when called on an invalid number of arguments. ansi-tests: |
248 |
destructuring-bind.error.[789] |
249 |
|
250 |
45. (FIXED) No hash table with :key EQUALP. |
251 |
ansi-tests: equalp.21 |
252 |
|
253 |
46. (partially FIXED; equalp.35 still fails) |
254 |
EQUALP fails to properly compare hash tables. |
255 |
ansi-tests: equalp.22 to equalp.35 |
256 |
|
257 |
47. (FIXED) The type error signaled by EVERY and related functions has |
258 |
the datum and expected-type slots switched. ansi-tests: |
259 |
every.error.1 notany.error.1 notevery.error.1 some.error.1 |
260 |
|
261 |
48. flet and labels do not accept SETF function names. |
262 |
ansi-tests: flet.17 labels.17 flet.51 labels.26 |
263 |
|
264 |
49. Free special declarations in flet and labels forms do not affect |
265 |
the expressions in the &aux, &optional and &key fields of the |
266 |
ordinary lambda list. See also bug #41. ansi-tests: flet.62 flet.63 |
267 |
flet.67 labels.41 labels.42 labels.46 |
268 |
|
269 |
50. Funcall should throw an undefined function error when called on a symbol |
270 |
that has a macro function binding but not a function binding. |
271 |
ansi-tests: funcall.error.3 |
272 |
|
273 |
51. function-lambda-expression is not defined. |
274 |
ansi-tests: function-lambda-expression.[123] |
275 |
function-lambda-expression.order.1 function-lambda-expression.error.[12] |
276 |
|
277 |
52. (FIXED) Lambda forms are no longer of type function. |
278 |
ansi-tests: function.6 function.10 functionp.6 functionp.10 |
279 |
|
280 |
53. (FIXED) Symbols are no longer functions. |
281 |
ansi-tests: functionp.2 |
282 |
|
283 |
54. Free special declarations do not apply to the init forms of a LET or LET*. |
284 |
ansi-tests: let.17 let.17a let*.17 let*.17a let*.18 |
285 |
|
286 |
55. &whole not recognized in macro lambda list |
287 |
anso-tests: macrolet.5 macrolet.36 defmacro.7 |
288 |
|
289 |
56. symbol-macros are not showing up in the macro expansion environment |
290 |
ansi-tests: macrolet.13 macrolet.14 |
291 |
|
292 |
57. :allow-other-keys not being properly handled in macros with &key in |
293 |
their macro lambda lists. ansi-tests: macrolet.32 defmacro.21 |
294 |
|
295 |
58. NIL should match anything in a macro lambda lists. |
296 |
ansi-tests: macrolet.39 |
297 |
|
298 |
59, Ordering problem related to presence of symbol macro with side effects |
299 |
in multiple-value-setq. ansi-tests: multiple-value-setq.[58] |
300 |
|
301 |
60. Free special declarations should not apply to the initialization |
302 |
forms in PROG, PROG* forms. ansi-tests: prog.11 prog*.11 |
303 |
|
304 |
61. (FIXED, partially) DEFINE-COMPILER-MACRO is undefined |
305 |
ansi-tests: documentation.list.compiler-macro.[12] |
306 |
documentation.symbol.compiler-macro.[12] |
307 |
|
308 |
62. DEFINE-SYMBOL-MACRO is undefined |
309 |
|
310 |
63. CONSTANTP should take an optional second argument, an environment |
311 |
or nil (and which may be ignored.) ansi-tests: constantp.6 |
312 |
constantp.8 constantp.order.2 |
313 |
|
314 |
64. Free special declarations in a LAMBDA form should not affect |
315 |
the expressions in key, aux, or optional parameters. |
316 |
ansi-tests: lambda.5[234] |
317 |
|
318 |
65. The second argument to COMPILE is allowed to be a function; |
319 |
not just a lambda expression. ansi-tests: lambda.5[56] |
320 |
|
321 |
66. COMPILE-FILE is incorrectly executing the code twice i |
322 |
an EVAL-WHEN form with both the :COMPILE-TOPLEVEL and |
323 |
:LOAD-TOPLEVEL keywords. ansi-tests: eval-when.1 |
324 |
|
325 |
67. DEFMACRO is not defining the macro function in the lexical |
326 |
environment in which the DEFMACRO form appears. |
327 |
ansi-tests: defmacro.3 defmacro.4 defmacro.12 defmacro.13 |
328 |
|
329 |
68. (FIXED) (typep nil (find-class 'null)) ==> nil |
330 |
See also bug #81. |
331 |
ansi-tests: the.9 the.10 |
332 |
|
333 |
69. (VALUES &REST ...) not being understood. |
334 |
ansi-tests: the.14 the.15 the.18 the.21 the.22 |
335 |
|
336 |
70. (THE (VALUES ... &OPTIONAL ...) (EVAL '(VALUES ...))) is |
337 |
signaling a spurious error. ansi-tests: the.20 the.23 |
338 |
|
339 |
71. SYMBOL-MACROLET does not admit DECLARE expressions. |
340 |
ansi-tests: symbol-macrolet.3 symbol-macrolet.8 |
341 |
symbol-macrolet.error.1 |
342 |
|
343 |
72. SYMBOL-MACROLET should signal a program error when |
344 |
the symbol is a constant or special variable, but it does not. |
345 |
ansi-tests: symbol-macrolet.error.1 symbol-macrolet.error.2 |
346 |
|
347 |
73. MACRO-FUNCTION should take an optional second argument (that |
348 |
is an environment or NIL), but it does not. |
349 |
ansi-tests: macro-function.[2379] macro-function.1[135] |
350 |
loop-finish.error.1 |
351 |
|
352 |
74. SUBTYPEP problems (ansi-tests: types.3) |
353 |
|
354 |
a. (FIXED) GENERIC-FUNCTION FUNCTION ==> NIL T |
355 |
b. (FIXED) UNBOUND-SLOT CELL-ERROR ==> NIL T |
356 |
(see also unbound-slot-cpl) |
357 |
c. (FIXED) FLOATING-POINT-INVALID-OPERATION ARITHMETIC-ERROR ==> NIL T |
358 |
(see also floating-point-invalid-operation-cpl type-of.5) |
359 |
d. (FIXED) FLOATING-POINT-INEXACT ARITHMETIC-ERROR ==> NIL T |
360 |
(see also floating-point-inexact-cpl type-of.5) |
361 |
e. (FIXED) LOGICAL-PATHNAME PATHNAME ==> NIL T |
362 |
f. (FIXED) PRINT-NOT-READABLE ERROR ==> NIL T |
363 |
(see also print-not-readable-cpl) |
364 |
g. (FIXED) READER-ERROR PARSE-ERROR ==> NIL T |
365 |
(see also reader-error-cpl) |
366 |
h. (FIXED) READER-ERROR STREAM-ERROR ==> NIL T |
367 |
|
368 |
(see also condition.2 for subtype failures on expected subtype |
369 |
relationships of condition types) |
370 |
|
371 |
75. More SUBTYPEP problems (ansi-tests: types.9a) |
372 |
|
373 |
a. (FIXED) VECTOR SIMPLE-ARRAY ==> T T |
374 |
b. (FIXED) ARRAY SIMPLE-ARRAY ==> T T |
375 |
c. (FIXED) BIT-VECTOR SIMPLE-ARRAY ==> T T |
376 |
d. (FIXED) BIT-VECTOR SIMPLE-BIT-VECTOR ==> T T |
377 |
|
378 |
(counterexample elements were found for all these supposed subtype |
379 |
relationship.) |
380 |
|
381 |
76. (FIXED) (subtypep 'function 'atom) ==> T T (which is correct), but there |
382 |
are function objects that are not of type atom. The problem is that |
383 |
cons cells are used to represent functions. The problem is tbat |
384 |
lambda expressions are no longer of type FUNCTION in CLtS. |
385 |
(also from ansi-test types.9a, see also |
386 |
universe-elements-in-at-most-one-disjoint-type) |
387 |
|
388 |
77. (FIXED) Yet more SUBTYPEP problems: |
389 |
(subtypep 'standard-object (find-class 'standard-object)) ==> nil t |
390 |
ansi-tests: all-classes-are-type-equivalent-to-their-names |
391 |
|
392 |
78. (FIXED) A number of standardized classes are implemented as structure |
393 |
classes (which is allowed) but subtypep is not recognizing them |
394 |
as subtypes of structure-object: synonym-stream, hash-table, |
395 |
broadcast-stream, echo-stream, pathname, concatenated-stream, |
396 |
readtable, function, file-stream, string-stream, stream, package, |
397 |
two-way-stream. |
398 |
ansi-tests: all-structure-classes-are-subtypes-of-structure-object |
399 |
|
400 |
79. (FIXED) The standardized generic function DOCUMENTATION should be a member |
401 |
of the class GENERIC-FUNCTION. |
402 |
|
403 |
80. (FIXED, please check) SUBTYPEP is not correctly determining that if a class X is a subclass |
404 |
of classes Y and Z, then X is a subtype of (AND Y Z) (it is allowed |
405 |
to fail to determine the subtype relationship, but if it does it must |
406 |
determine it correctly). ansi-tests: tac-3.16 |
407 |
|
408 |
81. (let ((x (make-condition 'arithmetic-error))) (typep x (class-of x))) |
409 |
==> NIL |
410 |
More generally, typep isn't working on class object type specifiers. |
411 |
ansi-tests: coerce.3 class-28.[123] class-0201.1 class-0202.1 |
412 |
class-0301.1 class-0309.1 class-0311.1 allocate-instance.[1234] |
413 |
allocate-instance.order.1 change-class.3.[12] |
414 |
update-instance-for-different-class.4 |
415 |
|
416 |
82. (FIXED) In a DEFTYPE lambda list, the default value for missing key or optional |
417 |
parameters should be the symbol *, not NIL. |
418 |
ansi-tests: deftype.11 deftype.12 deftype.18 |
419 |
|
420 |
83. (FIXED) SUBTYPEP is not correctly handling a DEFTYPE that yields the NIL type: |
421 |
(deftype foo () nil) |
422 |
(subtypep '(foo) nil) ==> nil t |
423 |
ansi-tests: deftype.13 |
424 |
|
425 |
84. (FIXED) The body of a DEFTYPE form should be in an implicit block whose name |
426 |
is the name of the type being defined. |
427 |
ansi-tests: deftype.16 |
428 |
|
429 |
85. (FIXED) DEFTYPE forms are not allowing all DECLARE expressions. |
430 |
ansi-tests: deftype.19 |
431 |
|
432 |
86. (partially FIXED) Free special declarations in a DEFTYPE should not apply to the |
433 |
forms in optional or key arguments in the deftype lambda list. |
434 |
ansi-tests: deftype.15 |
435 |
|
436 |
87. (FIXED) The method parameter specifier (X FUNCTION) is not matching |
437 |
the function value #'CONS. |
438 |
ansi-tests: standard-generic-function.[12] |
439 |
|
440 |
88. Numerous problems with TYPE-OF (ansi-tests: type-of.1 type-of.4) |
441 |
|
442 |
a. (FIXED) TYPE-OF of a nonnegative integer must be a subtype of UNSIGNED-BYTE. |
443 |
b. (FIXED) #\Rubout, #\Tab, #\Backspace, #\Return, and #\Page are BASE-CHARs, |
444 |
and have TYPE-OF ==> STRING-CHAR, but |
445 |
(SUBTYPEP 'STRING-CHAR 'BASE-CHAR) ==> nil t |
446 |
c. (FIXED) TYPE-OF on condition objects returns PCL::STD-INSTANCE, which is |
447 |
not a subtypep of the condition types to which the objects belong. |
448 |
It also isn't a subtype of the class returned by CLASS-OF. |
449 |
d, (FIXED) TYPE-OF on #(nil nil) is VECTOR, but #(nil nil) is a SIMPLE-VECTOR. |
450 |
e. (FIXED) TYPE-OF on a logical pathname returns PATHNAME, which is not a subtype |
451 |
of LOGICAL-PATHNAME. |
452 |
f. (FIXED) TYPE-OF on standard methods returns PCL::STD-INSTANCE, which is not |
453 |
a subtype of METHOD, STANDARD-METHOD, OR STANDARD-OBJECT. |
454 |
It is also not a subtype of (CLASS-OF <method>). |
455 |
g. (FIXED) TYPE-OF on a compiled closure for a generic function yields |
456 |
COMPILED-FUNCTION, which is not a subtype of GENERIC-FUNCTION, |
457 |
STANDARD-GENERIC-FUNCTION, or STANDARD-OBJECT. It is also not |
458 |
a subtype of (CLASS-OF <fun>). |
459 |
|
460 |
(Note: in f and g, the STANDARD-OBJECT is there because these entities |
461 |
are elements of this type in gcl, although this is not required by |
462 |
the standard. Given that they are elements, the subtype relationship |
463 |
is required by the standard.) |
464 |
|
465 |
89. (FIXED) TYPE-OF on an instance of a user-defined standard class is |
466 |
PCL::STD-INSTANCE, but it should be the name of the class |
467 |
(or the class itself if it has no name). |
468 |
ansi-tests: type-of.7 type-of.8 type-of.9 (and type-of.10, |
469 |
indirectly) |
470 |
|
471 |
90. (FIXED) typep should signal an error if the type is a VALUES type. |
472 |
ansi-tests: typep.error.4 typep.error.5 typep.error.6 |
473 |
|
474 |
91. (FIXED) typep should signal an error if the type is a compound function |
475 |
type. ansi-tests: typep.error.7 |
476 |
|
477 |
92. (FIXED) The CPL (class precedence list) tests are failing due to a bug |
478 |
in PCL that also showed up in SBCL and CMUCL. The function starts |
479 |
returning NIL after a few calls. ansi-tests: *-CPL |
480 |
|
481 |
93. (partially FIXED; prin1.symbol.3 is still failing, but is a different |
482 |
bug) READTABLE-CASE is undefined (and its SETF form) |
483 |
ansi-tests: read-symbol.1[678] read-symbol.25 |
484 |
readtable-case.* set-syntax-from-char-trait-* |
485 |
print.symbol.[123456789] print.symbol.1[012] prin1.symbol.[123] |
486 |
|
487 |
93a. PRIN1 is not escape the symbol |1| properly when readtabkle-case |
488 |
is set to :UPCASE. ansi-tests: prin1.symbol.3 |
489 |
|
490 |
|
491 |
94. Binding *READ-SUPPRESS* to true doesn't totally suppress reading; |
492 |
reading a list still returns a list, as does reading a vector |
493 |
or pathname. |
494 |
ansi-tests: read-suppress.9 read-suppress.1[01245] |
495 |
read-suppress.sharp-quote.[1235678] |
496 |
read-suppress.sharp-left-paren.[123456789] |
497 |
read-suppress.sharp-left-paren.1[012] |
498 |
read-suppress.sharp-p.[1234567] |
499 |
read-suppress.sharp-equal.4 |
500 |
|
501 |
|
502 |
95. Binding *READ-SUPPRESS* to true causes the reading of complex |
503 |
numbers to abort with a type error. |
504 |
read-suppress.sharp-c.[123456789] read-suppress.sharp-c.1[12345] |
505 |
|
506 |
96. In read suppressed mode, #r does not read the full token following |
507 |
it, but stops at the # character. ansi-tests: read-suppress.sharp-r.10 |
508 |
|
509 |
97. In read suppressed mode, ## terms are not read correctly |
510 |
ansi-tests: read-suppress.sharp-sharp.[1234] |
511 |
|
512 |
98. Reading a token starting with a right paren (an invalid character) |
513 |
should signal a READER-ERROR, but it does not. |
514 |
ansi-tests: read-suppress.error.1 syntax.right-paren-error.1 |
515 |
|
516 |
99. Reading #< should signal a reader error. |
517 |
ansi-tests: read-suppress.error.2 set-syntax-from-char.right-paren |
518 |
syntax.sharp-less-than.1 |
519 |
|
520 |
100. Setting the syntax of a character to that of #\" doesn't work. |
521 |
ansi-tests: set-syntax-from-char.double-quote |
522 |
|
523 |
101. Initially, for a new dispatching macro character, every following |
524 |
character should have the dispatching macro character function that |
525 |
signals a read-error. This is not happening. |
526 |
ansi-tests: make-dispatch-macro-character.3 |
527 |
|
528 |
102. #\Backspace is an invalid character in the standard syntax, and |
529 |
reading it should signal a reader-error. This is not happening. |
530 |
ansi-tests: syntax.backspace.invalid |
531 |
|
532 |
103. #\Rubout is an invalid character in the standard syntax, and |
533 |
reading it should signal a reader-error. This is not happening. |
534 |
ansi-tests: syntax.rubout.invalid |
535 |
|
536 |
104. The string "#0()" should read as the simple vector of length 0, |
537 |
but it causes an error. ansi-tests: syntax.sharp-left-paren.2 |
538 |
|
539 |
105. Various malformations of #* syntax should lead to reader errors, |
540 |
but do not. ansi-tests: syntax.sharp-asterisk.error.[123] |
541 |
|
542 |
106. Binding *read-eval* to nil should cause #. to throw a reader |
543 |
error, but it does not always. ansi-tests: syntax.sharp-dot.error.3 |
544 |
|
545 |
107. #C should tolerate whitespace before the left paren. |
546 |
ansi-tests: syntax.sharp-c.5 |
547 |
|
548 |
108. #+(:and) #+(:or) #+(:not ...) lead to errors in the reader (which |
549 |
is wrong). The problem seems to be that the feature expression |
550 |
is being read in the current package, not the keyword package. |
551 |
ansi-tests: syntax.sharp-plus.5 syntax.sharp-plus.7 syntax.sharp-plus.8 |
552 |
syntax.sharp-plus.12 |
553 |
|
554 |
109. Reading # followed by whitespace[1] should signal a reader-error, |
555 |
but it is not (it is signaling a simple-error that is not a reader-error). |
556 |
ansi-tests: syntax.sharp-whitespace.1 |
557 |
|
558 |
110. Reading # followed by a right parenthesis should signal a reader-error, |
559 |
but it is not (it is signaling a simple-error that is not a reader-error). |
560 |
ansi-tests: syntax.sharp-right-paren.1 |
561 |
|
562 |
111. Reading a rational with zero denominator should signal a reader error. |
563 |
ansi-tests: syntax.number-token.error.1 |
564 |
|
565 |
112. Tokens containing only dots and not being a single dot in a position |
566 |
where a consing dot is expected should cause a reader-error. |
567 |
ansi-tests: syntax.dot-error.[1234567] |
568 |
|
569 |
113. Reading a comma while not in a backquoted form should signal a |
570 |
reader-error. ansi-tests: syntax.comma-error.[12] |
571 |
|
572 |
114. Free special declarations in DO, DO* forms should not affect the init |
573 |
forms. ansi-tests: do.16 do*.16 |
574 |
|
575 |
115. NIL is a destructuring pattern that matches anything (and binds |
576 |
nothing) and should be allowed in for-as-arithmetic clauses. |
577 |
ansi-tests: loop.1.5[013456] |
578 |
|
579 |
116. A while or until clause in a LOOP should be executed at its location, |
580 |
not earlier. ansi-tests: loop.11.29 loop.11.3[01234] |
581 |
|
582 |
117. Creating a structure whose name is an uninterned symbol causes the |
583 |
class that is created to be unfindable with FIND-CLASS. |
584 |
ansi-tests: struct-test-31/1[3457] struct-test-31/15a |
585 |
|
586 |
118. The -P predicate created for a structure of type (vector t) causes |
587 |
an error on the string (string (code-char 0)). |
588 |
ansi-tests: struct-test-41/3 struct-test-43/3 |
589 |
|
590 |
119. There should be an initialization argument :format-control for |
591 |
simple-errors and simple-warnigns. ansi-tests: error.[2389] |
592 |
error.1[02] cerror.[23] cerror.2a warn.8 warn.10 warn.19 |
593 |
|
594 |
120. Error should take a formatter (not just a format string) as its first |
595 |
argument. ansi-tests: error.5 error.1 cerror.4a cerror.5 |
596 |
|
597 |
121. The datum slot of the error signaled by a CHECK-TYPE failure |
598 |
is not the value being checked. ansi-tests: check-type.[23567] |
599 |
|
600 |
122. invoke-debugger is not signaling a program error in safe code |
601 |
when called with an incorrect number of arguments. |
602 |
|
603 |
123. The (<type> <handler>) pairs of HANDLER-BIND should accept |
604 |
literal function values as handlers, but uncompiled function |
605 |
objects (which are improperly implemented as CONSes) cause |
606 |
an error. ansi-tests: handler-bind.9 |
607 |
|
608 |
(This is also a problem with function literals occuring |
609 |
in other expressions, but there isn't a test for that |
610 |
in the eval/compile section of ansi-tests.) |
611 |
|
612 |
124. HANDLER-BIND is not properly handing off a declined condition |
613 |
to a following handler in some cases. ansi-tests: handler-bind.11 |
614 |
|
615 |
125. HANDLER-BIND is not accepting condition class objects as type |
616 |
designators. ansi-tests: handler-bind.17 |
617 |
|
618 |
126. HANDLER-CASE is not accepting condition class objects as type |
619 |
designators. ansi-tests: handler-case.5 |
620 |
|
621 |
127. HANDLER-CASE did not accept a DECLARE expression (by itself) |
622 |
in the body of a handler clause. ansi-tests: handler-case.28 |
623 |
|
624 |
128. Free special declarations in the handler clauses of a HANDLER-CASE |
625 |
are improperly affecting the expressions in &aux variables. |
626 |
ansi-tests: handler-case.29 |
627 |
|
628 |
129. (typep <condition object> (find-class 'condition)) ==> NIL |
629 |
(typep <condition object> (find-class '<its condition class name>)) ==> NIL |
630 |
ansi-tests: condition-1/is-a-member-of-class/condition and |
631 |
about 30 similar tests |
632 |
|
633 |
130. compute-restarts is returning a restarts that are not associated with |
634 |
the condition being tested. ansi-tests: compute-restarts.9 |
635 |
|
636 |
131. restart-case with macro, symbols forms not not properly handled: |
637 |
ansi-tests: restart-case.29 restart-case.30 restart-case.31 |
638 |
|
639 |
132. Free special declarations in restart definitions in restart-case |
640 |
do not have the correct scope. ansi-tests: restart-case.36 |
641 |
|
642 |
133. continue, store-value, and use-value functions are invoking restarts |
643 |
that are applicable to other conditions than the argument condition. |
644 |
(Or, with-condition-restarts may not be behaving properly) |
645 |
ansi-tests: continue.2 store-value.2 use-value.2 |
646 |
|
647 |
134. A safe call (make-condition) should signal a program error. |
648 |
ansi-tests: make-condition.error.1 |
649 |
|
650 |
135. Division by zero should be signaling a divide-by-zero condition, |
651 |
not a generic simple error. ansi-tests /.error.[2345678] |
652 |
|
653 |
136. (/ -1) is returning three values, not just one. |
654 |
ansi-tests: /.2 |
655 |
|
656 |
137. (expt -1 0.0) should be 1.0 (of the appropriate floating type), |
657 |
but the result being returned is #c(1.0 0.0). |
658 |
ansi-tests: expt.18 expt.19 expt.20 expt.21 |
659 |
|
660 |
138. (lcm) should yield 1, not an error. |
661 |
ansi-tests: lcm.1 |
662 |
|
663 |
139. (FIXED) (typep 1 '(real (0))) ==> error (and similarly for |
664 |
(typep 1 '(integer (0))).) |
665 |
ansi-tests: random.error.3 (and others) |
666 |
|
667 |
140. (phase 0) ==> error (logarithmic singularity) |
668 |
ansi-tests: phase.1 |
669 |
|
670 |
141. (float x) should eql x when x is a float, but short-floats |
671 |
are being converted to single-floats |
672 |
(eql (float 1.0s0) 1.0s0) ==> NIL |
673 |
ansi-tests: float.5 |
674 |
|
675 |
142. rational and rationalize should signal type errors on arguments |
676 |
that are not of type real in safe code. |
677 |
ansi-tests: rational.error.4 rationalize.error.4 |
678 |
|
679 |
143. Apparent compiler problem in this function: |
680 |
|
681 |
(defun digit-char.1.body.old () |
682 |
(loop for r from 2 to 36 always |
683 |
(loop for i from 0 to 36 |
684 |
always (let* ((c (digit-char i r)) |
685 |
(result |
686 |
(if (>= i r) (null c) |
687 |
(eqlt c (char +extended-digit-chars+ i))))) |
688 |
(unless result |
689 |
(format t "~A ~A ~A~%" r i c)) |
690 |
result)))) |
691 |
|
692 |
When called, it prints 2 2 p and returns nil. However, |
693 |
(digit-char 2 2) ==> nil when called at the REPL. |
694 |
|
695 |
(this is from digit-char.1, but that test has been changed.) |
696 |
|
697 |
144. digit-char should take at most two arguments, but it is failing |
698 |
to signal a program error in safe code when given more. |
699 |
ansi-tests: digit-char.error.2 |
700 |
|
701 |
145. standard-char-p should signal a type error in safe code when |
702 |
called on a non-character. ansi-tests: standard-char-p.3 |
703 |
|
704 |
146. code-char should signal an error in safe code when called with |
705 |
more than one argument. ansi-tests: code-char.error.2 |
706 |
|
707 |
147. adjust-array does not have the correct semantics when performed |
708 |
on the middle of a chain of three displaced bit vectors. The chain |
709 |
appears to have been improperly short-circuited. |
710 |
ansi-tests: adjust-array.bit-vector.adjustable.13 |
711 |
|
712 |
148. fill-pointer should signal a type error when called with vectors |
713 |
that lack fill pointers. It does, but the expected-type field |
714 |
is wrong. ansi-tests: fill-pointer.error.[36] |
715 |
|
716 |
149. (FIXED) The value (upgraded-array-element-type 'base-char) should be |
717 |
type-equivalent to base-char. However, it is string-char, |
718 |
and (subtypep 'string-char 'base-char) ==> nil t |
719 |
ansi-tests: upgraded-array-element-type.2 |
720 |
|
721 |
150. (FIXED) upgraded-array-element-type violates the 'preserves subtype' |
722 |
properties for numerous types. For example: |
723 |
|
724 |
(upgraded-array-element-type '(eql 2)) ==> lisp:signed-char |
725 |
but |
726 |
(upgraded-array-element-type '(unsigned-byte 16)) ==> |
727 |
lisp:unsigned-short |
728 |
|
729 |
ansi-tests: upgraded-array-element-type.8 |
730 |
|
731 |
151. (FIXED) (upgraded-array-element-type nil) ==> t, but it should be nil. |
732 |
|
733 |
152. vector-pop should signal a type-error when passed a vector |
734 |
that lacks a fill pointer. It does, but the expected-type |
735 |
slot is wrong. ansi-tests: vector-pop.error.[15] |
736 |
|
737 |
153. (make-hash-table :size 0) signals an error, but 0 is a legal |
738 |
value for the size parameter. ansi-tests: make-hash-table.2 |
739 |
|
740 |
154. equalp hash tables are not supported. |
741 |
ansi-tests: make-hash-table.1[01] hash-table-count.[59] |
742 |
hash-table-rehash-threshold.[23] hash-table-test.[234] |
743 |
gethash.zero.4 remhash.4 clrhash.4 maphash.[36] |
744 |
with-hash-table-iterator.7 |
745 |
|
746 |
155. (make-hash-table :rehash-threshold x) errors: |
747 |
|
748 |
a. x == 0 (or 0.0s0, or 0.0) signals an error, but zero |
749 |
is a legal value for this parameter. ansi-tests: |
750 |
make-hash-table.1[6789] make-hash-table.20 |
751 |
|
752 |
b. x == 1/2 signals an error, but this is a legal value for |
753 |
this parameter. ansi-tests: make-hash-table.21 |
754 |
|
755 |
156. The third argument to GETHASH in the SETF form should be |
756 |
allowed, but instead is causing an error. |
757 |
ansi-tests: gethash.5 gethash.order.4 |
758 |
|
759 |
157. The last invocation of the local macro in WITH-HASH-TABLE-ITERATOR |
760 |
should return just a single value, NIL, but it is returning |
761 |
three values. ansi-tests: with-hash-table-iterator.4 |
762 |
|
763 |
158. PATHNAME, when called on a stream, should return the pathname |
764 |
that was used to create the stream. However, for logical pathnames, |
765 |
this is not happening -- the physical pathname corresponding to the |
766 |
logical pathname is returned instead. |
767 |
ansi-tests: logical-pathname.3 |
768 |
|
769 |
159. ensure-directories-exist should signal a file-error if part of |
770 |
the directory is wild, but it does not. |
771 |
ansi-tests: ensure-directories-exist.error.1 |
772 |
|
773 |
160. stream-element-type is returning :default on a stream opened |
774 |
with OPEN. This violates the constraint that this type must |
775 |
be a subtype of integer or character. ansi-tests: stream-element-type.6 |
776 |
|
777 |
161. Cannot write (1- (ash 1 32)) to a stream with :element-type |
778 |
(unsigned-byte 32) using write-byte. ansi-tests: read-byte.3 |
779 |
read-byte.4 file-length.[2345] |
780 |
|
781 |
162. peek-char advances the file position of echo streams. |
782 |
ansi-tests: peek-char.17 |
783 |
|
784 |
163 Passing NIL to the :start argument of read-sequence or write-sequence |
785 |
is treated as if the parameter were not present. This is incorrect: |
786 |
:start, if provided, must be a nonnegative integer, and should signal |
787 |
a type error in safe calls otherwise.. ansi-tests: |
788 |
read-sequence.error.9 write-sequence.error.15 |
789 |
|
790 |
164. file-string-length is computing the wrong thing. It should compute |
791 |
the change in file position after an object is printed as a sequence |
792 |
of characters, not as printed in readable representation. #\a, for |
793 |
example, should occupy one position, not three. |
794 |
ansi-tests: file-string-length.[12] |
795 |
|
796 |
165. Free declarations in with-open-file forms should not have the return |
797 |
value form in their scope. ansi-tests: with-open-file.[789] |
798 |
|
799 |
166. open-stream-p reports that a string-stream (input or output) |
800 |
is still open, even after it has been closed. ansi-tests: |
801 |
with-open-stream.[6789] |
802 |
|
803 |
167. Free declarations in a with-open-stream form are incorrectly |
804 |
being applied to the return value form. ansi-tests: with-open-stream.10 |
805 |
|
806 |
168. (typep (make-broadcast-stream) 'broadcast-stream) ==> nil (and related). |
807 |
ansi-tests: make-broadcast-stream.[123] |
808 |
|
809 |
169. file-position should return 0 on null broadcast streams. |
810 |
ansi-tests: make-broadcast-stream.6 |
811 |
|
812 |
170. file-string-length should return 1 on null broadcast streams. |
813 |
ansi-tests: make-broadcast-stream.7 |
814 |
|
815 |
171. make-broadcast-stream should signal a type error in safe calls |
816 |
when an argument is not an output stream. |
817 |
ansi-tests: make-broadcast-stream.error.[12] |
818 |
|
819 |
172. open-stream-p returns T on a two-way-stream, echo-stream, |
820 |
or concatenated-stream that has been closed. |
821 |
ansi-tests: make-two-way-stream.2 make-echo-stream.10 |
822 |
make-concatenated-stream.27 |
823 |
|
824 |
173. make-two-way-stream should signal a type error if the output |
825 |
stream argument is not an output stream. It does so, but |
826 |
the expected-type slot is wrong. |
827 |
ansi-tests: make-two-way-stream.error.[67] |
828 |
|
829 |
174. (open-stream-p (make-concatenated-stream)) ==> nil |
830 |
ansi-tests: make-concatenated-stream.7 |
831 |
|
832 |
175. READ-CHAR-NO-HANG is encountering a premature EOF in a concatenated |
833 |
stream. It looks like it is only reading from the first of the input |
834 |
streams. |
835 |
ansi-tests: make-concatenated-stream.16 |
836 |
|
837 |
176. LISTEN fails to look at the second input stream to a concatenated |
838 |
stream. |
839 |
ansi-tests: make-concatenated-stream.30 |
840 |
|
841 |
177. make-string-output-stream should take a keyword argument, :element-type. |
842 |
ansi-tests: make-string-output-stream.[235679] |
843 |
make-string-output-stream.1[01] |
844 |
|
845 |
178. Free declarations in with-input-from-string should not apply to the return |
846 |
value form, or the start or end arguments. |
847 |
ansi-tests: with-input-from-string.19 with-input-from-string.2[012] |
848 |
|
849 |
179. The index place argument of with-input-from-string should be updated only |
850 |
if the form terminates normally. |
851 |
ansi-tests: with-input-from-string.22 |
852 |
|
853 |
180. with-output-to-string should take an :element-type argument. |
854 |
ansi-tests: with-output-to-string.[78] with-output-to-string.1[46] |
855 |
|
856 |
181. Free special declarations in with-output-to-string should not |
857 |
apply to the return value form. |
858 |
ansi-tests: with-output-to-string.15 |
859 |
|
860 |
182. Calling make-instance with an initialization argument for a shared slot |
861 |
does not properly initialize that shared slot. |
862 |
ansi-tests: class-13.1 |
863 |
|
864 |
183. Violations of the rules for default initargs. |
865 |
ansi-tests: class-20.[123] class-21.[1245] |
866 |
|
867 |
184. documentation doesn't work on class objects. |
868 |
ansi-tests: class-23.[34] documentation.standard-class.t.1 |
869 |
documenation.struct-class.t.1 |
870 |
|
871 |
185. :ALLOW-OTHER-KEYS <true> in the :DEFAULT-INITARGS specifier of |
872 |
a class definition should allow other arguments to be passed in |
873 |
the initializer list to make-instance. However, this is not happening. |
874 |
ansi-tests: class-24.2 |
875 |
|
876 |
186. slot-makunbound should return the instance. It is instead returning nil. |
877 |
ansi-tests: class-0203.[12] slot-missing.3 |
878 |
|
879 |
187. slot-makunbound throws an error incorrectly: |
880 |
|
881 |
|
882 |
> (defclass example-class () ((a :allocation :instance) |
883 |
(b :allocation :class))) |
884 |
|
885 |
#<Standard-Class EXAMPLE-CLASS 72244360> |
886 |
|
887 |
> (let ((c1 (make-instance 'example-class))) (slot-makunbound c1 'a)) |
888 |
|
889 |
Error in LET [or a callee]: What kind of instance is this? |
890 |
|
891 |
ansi-tests: class-0206.1 class-0207.1 class-redefinition.2 |
892 |
update-instance-for-different-class.[123] slot-boundp.5 |
893 |
slot-makunbound.[12] slot-makunbound.error.[12] |
894 |
|
895 |
188. (FIXED) T is an illegal documentation type. |
896 |
ansi-tests: class-0221.[123] defgeneric.2 |
897 |
documentation.function.t.[123456789] |
898 |
documentation.function.t.[56]a documentation.function.t.1[012] |
899 |
documentation.function.function.[48] |
900 |
documentation.standard-method.t.1 |
901 |
documentation.package.t.1 documentation.new-method.1 |
902 |
|
903 |
189. If the name of a class is changed to NIL, and another class of the same |
904 |
original name is then defined, the original class should not be redefined; |
905 |
instead, there should be two classes. Zee section 4.3.1 for the notion |
906 |
of 'proper name', and see also bug #190 below. |
907 |
ansi-tests: class-0309.1 |
908 |
|
909 |
190. Similar to 189, but if FIND-CLASS for a given name is changed. |
910 |
ansi-tests: class-0310.1 |
911 |
|
912 |
191. defclass should allow forward referencing of superclasses, but |
913 |
doesn't. Attempting to include the name of a class that hasn't |
914 |
yet been defined in the superclass list causes an error. |
915 |
ansi-tests: defclass.forward-ref.[123] |
916 |
|
917 |
192. ensure-generic-function should take a method class object as its |
918 |
:method-class argument. |
919 |
ansi-tests: ensure-generic-function.9 |
920 |
|
921 |
193. ensure-generic-function should take the :declare keyword argument, |
922 |
but it does not (this was a source of some confusion in other lisps, |
923 |
and may be a spec bug.) |
924 |
ansi-tests: ensure-generic-function.13 |
925 |
|
926 |
194. allocate-instance should work on structure classes. |
927 |
ansi-tests: allocate-instance.5 |
928 |
|
929 |
195. allocate-instance should signal a program-error when called with |
930 |
too few arguments in safe code. |
931 |
ansi-tests: allocate-instance.error.1 |
932 |
|
933 |
196. change-class isn't allowing the :allow-other-keys keyword argument. |
934 |
ansi-tests: change-class.1.7 change-class.7.5 |
935 |
|
936 |
197. When SLOT-MISSING is called when attempting to write to a missing |
937 |
slot, any of its return values should be ignored. However, they |
938 |
are being returned by the setf function. |
939 |
ansi-tests: slot-missing.[267] |
940 |
|
941 |
198. When slot-boundp is invoked on a missing slot, only a value equivalent |
942 |
(in the boolean sense) to the primary value of slot-missing should |
943 |
be returned, not any other values. |
944 |
ansi-tests: slot-missing.8 |
945 |
|
946 |
199. If slot-value is called on an unbound slot, and the applicable |
947 |
slot-unbound method returns no values, then slot-value should return |
948 |
the primary value, which is NIL. However, it is returning no values |
949 |
at all. Similarly, if the method returns more than one value, slot-value |
950 |
should return only the first |
951 |
ansi-tests: slot-unbound.[3456] |
952 |
|
953 |
200. The function method-qualifiers should throw a progra-error when called |
954 |
with other than one argument in safe code. |
955 |
ansi-tests: method-qualifiers.error.[12] |
956 |
|
957 |
201. remove-method must not signal an error if the method does not belong |
958 |
to the generic function. |
959 |
ansi-tests: remove-method.1 |
960 |
|
961 |
202. (FIXED) MAKE-LOAD-FORM should have default methods (that signal errors) when |
962 |
invoked on standard objects, structure objects, or conditions. |
963 |
ansi-tests: make-load-form.[456789] make-load-form.1[012] |
964 |
|
965 |
203. MAKE-LOAD-FORM should signal a program error when invoked with too |
966 |
many arguments. |
967 |
ansi-tests: make-load-form.error.2 |
968 |
|
969 |
204. WITH-ACCESSORS forms should allow the presence of DECLARE expressions. |
970 |
ansi-tests: with-accessors.1[01] |
971 |
|
972 |
205. WITH-SLOTS forms should allow the presence of DECLARE expressions. |
973 |
ansi-tests: with-slots.19 with-slots.20 |
974 |
|
975 |
206. DEFGENERIC should signal a program=error if a required argument occurs |
976 |
more than once in the argument-precedence-order list, or if a |
977 |
required argument is missing in the argument-precedence-order list. |
978 |
ansi-tests: defgeneric.error.[48] |
979 |
|
980 |
207. If a generic function is passed a keyword argument that is not |
981 |
accepted by any applicable method, an error should be signalled. |
982 |
See CLtS 7.6.5. |
983 |
ansi-tests: defgeneric.error.2[01] |
984 |
|
985 |
208. When an existing generic function is redefined using DEFMETHOD, any |
986 |
preexisting methods that were defined using the :methods option |
987 |
of DEFGENERIC should be removed. See also paragraph 4 of the |
988 |
description of ENSURE-GENERIC-FUNCTION. |
989 |
|
990 |
ansi-tests: defgeneric.3[12] |
991 |
|
992 |
209. The method declarations in DEFGENERIC forms should admit DECLARE |
993 |
expressions. |
994 |
ansi-tests: defgeneric.35 |
995 |
|
996 |
210. Neither rebinding nor using SETQ (& related operators) should alter |
997 |
the arguments passed by CALL-NEXT-METHOD. |
998 |
ansi-tests: call-next-method.8 |
999 |
|
1000 |
211. "When providing arguments to call-next-method, the following |
1001 |
rule must be satisfied or an error of type error should be signaled: |
1002 |
the ordered set of applicable methods for a changed set of arguments |
1003 |
for call-next-method must be the same as the ordered set of applicable |
1004 |
methods for the original arguments to the generic function." |
1005 |
|
1006 |
ansi-tests: call-next-method.error.[12] |
1007 |
|
1008 |
212. COMPUTE-APPLICABLE-METHODS should signal a program-error when called |
1009 |
with too many or too few arguments in safe code. |
1010 |
ansi-tests: compute-applicable-methods.error.1 |
1011 |
|
1012 |
213. FIND-METHOD should signal a program-error when called with too few |
1013 |
or too many arguments. |
1014 |
ansi-tests: find-method.error.[1234] |
1015 |
|
1016 |
214. FIND-METHOD should signal an error if the length of the specializers |
1017 |
list does not equal the number of required arguments to the generic |
1018 |
function |
1019 |
ansi-tests: find-method.error.[789] find-method.error.10 |
1020 |
|
1021 |
215. ADD-METHOD should signal a program-error when called with too few or |
1022 |
too many arguments in safe code. |
1023 |
ansi-tests: add-method.error.[456] |
1024 |
|
1025 |
216. ADD-METHOD should return the generic function. |
1026 |
ansi-tests: add-method.[12] |
1027 |
|
1028 |
217. Computing SLOT-VALUE on a missing slot should throw an UNBOUND-SLOT error. |
1029 |
ansi-tests: unbound-slot.[12] |
1030 |
|
1031 |
218. A generic function should throw a program-error if called with too few |
1032 |
or too many arguments in safe code. |
1033 |
ansi-tests: defmethod.error.1[34] |
1034 |
|
1035 |
219. A generic function should throw a program-error when called with invalid |
1036 |
keyword arguments in safe code. |
1037 |
ansi-tests :defmethod.error.15 |
1038 |
|
1039 |
220. Double floats are not printed readably correctly. Round-off error |
1040 |
is apparently occuring, causing the re-read value to differ slightly. |
1041 |
ansi-tests: print.double-float.random print.long-float.random |
1042 |
|
1043 |
221. #\Space should print (under PRIN1) as #\ , not #\Space. |
1044 |
ansi-tests: print.char.4 print.char.10 |
1045 |
|
1046 |
222. Escaped haracter printing violates therules in 2.4.8.1 |
1047 |
ansi-tests: print.char.7 |
1048 |
|
1049 |
223. (code-char 28) doesn't print or possibly read correctly |
1050 |
ansi-tests: print.char.[89] |
1051 |
|
1052 |
224. A symbol whose symbol-package is a deleted package should be printed |
1053 |
as if it had no home package. |
1054 |
ansi-tests: print.symbol.prefix.8 |
1055 |
|
1056 |
225. Component printing controlled by *print-level* should not print # |
1057 |
for an object unless that object 'has components'. I interpret |
1058 |
this to mean objects that are printed by recursive calls to the |
1059 |
object printer, and that can be targets of #n# syntax, so cons cells, |
1060 |
T vectors, structures, etc. have components, but not numbers, symbols. |
1061 |
strings, or bit vectors. |
1062 |
ansi-tests: print.cons.level.[25] print.vector.level.[34] pprint.1 |
1063 |
print-level.[4589] |
1064 |
|
1065 |
226. Arrays of dimension > 1 that have total size > 0 and one ore more |
1066 |
dimensions of size 0 do not print readably. |
1067 |
ansi-tests: print.array.2.2[123] |
1068 |
|
1069 |
227. The 'is-similar*' generic function is not dispatching properly. |
1070 |
In particular, the correct method is apparently not being invoked |
1071 |
on pathnames. |
1072 |
ansi-tests: print.pathname.1 |
1073 |
|
1074 |
228. PPRINT-FILL should signal a program-error when called with the |
1075 |
wrong number of arguments in safe code. |
1076 |
ansi-tests: pprint-fill.error.[123] |
1077 |
|
1078 |
229. PPRINT-LINEAR should signal a program-error when called with the |
1079 |
wrong number of arguments in safe code. |
1080 |
ansi-tests: ppprint-linear.error.[123] |
1081 |
|
1082 |
230. PPRINT-TABULAR should use WRITE to print an object when it is a |
1083 |
non-list. |
1084 |
ansi-tests: pprint-tabular.[12] |
1085 |
|
1086 |
231. The default tabsize for PPRINT-TABULAR is 16, but it is instead |
1087 |
using ordinary tab characters. |
1088 |
ansi-tests: pprint-tabular.[6789] pprint-tabular.1[0123456789] |
1089 |
pprint-tabular.2[01234] |
1090 |
|
1091 |
232. PPRINT-TABULAR fails to break the list across lines if it would |
1092 |
otherwise exceed *PRINT-RIGHT-MARGIN*. |
1093 |
ansi-tests: pprint-tabular.2[12] |
1094 |
|
1095 |
233. PPRINT-TABULAR should signal a program-error when called with the |
1096 |
incorrect number of arguments in safe code. |
1097 |
ansi-tests: pprint-tabular.error.[1234] |
1098 |
|
1099 |
234. PPRINT-LOGICAL-BLOCK does not always properly print the #n# notation |
1100 |
when *print-circle* is true. |
1101 |
ansi-tests: pprint-logical-block.17 |
1102 |
|
1103 |
235. The local macro PPRINT-EXIT-IF-LIST-EXHAUSTED isn't being defined |
1104 |
inside PPRINT-LOGICAL-BLOCK forms. |
1105 |
ansi-tests: pprint-exit-if-list-exhausted.[1234] |
1106 |
|
1107 |
236. The local macro PPRINT-POP isn't being defined inside |
1108 |
PPRINT-LOGICAL-BLOCK forms. |
1109 |
ansi-tests: pprint-pop.[123456789] |
1110 |
|
1111 |
237. PRINT-UNREADABLE-OBJECT, when :TYPE is T, is specified to print a space |
1112 |
after the type even if nothing else is printed before the closing >. |
1113 |
This is not happening. (Arguably this is a spec bug.) Similarly, |
1114 |
it is specified to print a space before the 'identity' inforamtion. |
1115 |
ansi-tests: print-unreadable-object.[23] |
1116 |
|
1117 |
238. PRINT-UNREADABLE-OBJECT should signal an error of type PRINT-NOT-READABLE |
1118 |
if *PRINT-READABLY* is true, but it is not doing this. |
1119 |
ansi-tests: print-unreadable-object.error.1 |
1120 |
|
1121 |
239. PRINT appears to ignore the *PRINT-READABLY* control variable, |
1122 |
as does PRIN1. ansi-tests: print.1 prin1.1 |
1123 |
|
1124 |
240. *PRINT-LEVEL* can be legally bound to any nonnegative integer, |
1125 |
but an error occurs when it is bound to a bignum. |
1126 |
ansi-tests: print-level.12 |
1127 |
|
1128 |
241. *PRINT-LENGTH* can be legally bound to any nonnegative integer, |
1129 |
but an error occurs when it is bound to a bignum. |
1130 |
ansi-tests: print-length.7 |
1131 |
|
1132 |
242. Structures should be printed with their slot names given as keyword |
1133 |
symbols. |
1134 |
ansi-tests: print-length.11 |
1135 |
|
1136 |
243. The format directive ~c should print #\Newline, #\Space, and |
1137 |
many other characters as the single characters, not as their names, |
1138 |
ansi-tests: format.c.1 format.c.1a format.r.15 format.d.5 |
1139 |
format.d.11 format.b.5 format.b.11 format.o.5 format.o.11 |
1140 |
format.x.5 format.x.11 format.justify.10 |
1141 |
|
1142 |
244. The ~:c format directive should print the name of simple, non-graphic |
1143 |
characters. |
1144 |
ansi-tests: format.c.4a |
1145 |
|
1146 |
245. The ~@c format directive should print characters in a readable format, |
1147 |
but this fails on the character with code 28. |
1148 |
ansi-tests: format.c.5a |
1149 |
|
1150 |
246. The function produced by the FORMATTER macro should return the list |
1151 |
of unconsumed arguments. |
1152 |
ansi-tests: many formatter tests |
1153 |
|
1154 |
247. When the v format parameter of the R format directive gets 'nil', |
1155 |
it is to be treated as if it were not there, which means ~r should |
1156 |
print an english number. It isn't doing this. |
1157 |
ansi-tests: format.r.8 |
1158 |
|
1159 |
248. Specifying a very large negative format parameter for ~r (and others) |
1160 |
causes the error 'Can't extend the string.'. ansi-tests: format.r.38 |
1161 |
format.d.28 format.b.28 format.o.28 format.x.28 |
1162 |
|
1163 |
249. ~d is supposed to do the same thing as ~a when called on a non-integer, |
1164 |
but for several kinds of values it doesn't. |
1165 |
ansi-tests: format.d.1[89] format.d.2[01] |
1166 |
|
1167 |
250. The format directive "~vd" fails when the v parameter is a negative |
1168 |
bignum, and similarly for other numeric directives (b, etc.) |
1169 |
ansi-tests: format.d.29 format.b.29 format.o.29 format.x.29 |
1170 |
|
1171 |
251. The ~_ format directive is not implemented. |
1172 |
ansi-tests: All format.*_* tests format.logical-block.1[789] |
1173 |
format.logical-block.2[14 |
1174 |
|
1175 |
252. In the ~<...~:> format directive (logical block), 'An error is |
1176 |
signaled if either the prefix or suffix fails to be a constant |
1177 |
string or if the enclosed portion is divided into more than three |
1178 |
segments.' |
1179 |
ansi-tests: format.logical-block.error.[123456789] |
1180 |
format.logical-block.error.1[0123456789] |
1181 |
format.logical-block.error.2[01234] |
1182 |
|
1183 |
253. 'An error is signaled if any of these directives[~< ... ~:>] |
1184 |
is nested within ~<...~>." |
1185 |
ansi-tests: format.logical-block.error.25 |
1186 |
|
1187 |
254. 'An error is also signaled if the ~<...~:;...~> form of ~<...~> |
1188 |
is used in the same format string with [...] ~<...~:> [...].' |
1189 |
ansi-tests: format.logical-block.error.2[67] |
1190 |
|
1191 |
255. ~< ,,, ~:> should consume the next argument and use it (as a list) |
1192 |
to supply the arguments used by the directives inside the form. |
1193 |
ansi-tests: format.logical-block.[1679] |
1194 |
format.logical-block.1[0345] |
1195 |
|
1196 |
256. The : modified to ~<...~:> should cause the prefix and suffix |
1197 |
strings, if missing, to be "(" and ")", respectively. |
1198 |
ansi-tests: format.logical-block.[45] format.logical-block.2[0236] |
1199 |
format.logical-block.escape.[12] |
1200 |
|
1201 |
257. If ~:@> terminates a ~< construct, then it should be the case that |
1202 |
'a fill-style conditional newline is automatically inserted after |
1203 |
each group of blanks immediately contained in the body (except |
1204 |
for blanks after a <Newline> directive).' This is not happening. |
1205 |
ansi-tests: format.logical-block.2[25] |
1206 |
|
1207 |
258. ~@; in ~<...~:> construct isn't setting the per-line-prefix properly. |
1208 |
ansi-tests: format.logical-block.2[789] |
1209 |
|
1210 |
|
1211 |
259. The ~i directive hasn't been implemented. |
1212 |
ansi-tests: format.i.[123456789] format.i.1[0123456] |
1213 |
|
1214 |
260. The ~/.../ directive hasn't been implemented. |
1215 |
ansi-tests: format./.[123456789] format./.1[123456789] |
1216 |
|
1217 |
261. Various ~T failures, all similar |
1218 |
ansi-tests: format.t.[348] |
1219 |
|
1220 |
262. ~:T and ~:@T aren't implemented. |
1221 |
ansi-tests: format.:t,[123456789] format.:t1[012] |
1222 |
format.:@t.[12345] format.:@t1[abcd] |
1223 |
|
1224 |
263. Two ~<...~> failures (undiagnosed) |
1225 |
ansi-tests: format.justify.8 format.justify.29 |
1226 |
|
1227 |
264. Condition (~{ ~}) format directive isn't accepting bignums. |
1228 |
ansi-tests: format.cond.[46] format.cond:.[46] |
1229 |
|
1230 |
265. Conditional format directive with a prefix argument selects |
1231 |
the wrong clause if the prefix is a bignum. |
1232 |
ansi-tests: format.cond.12 |
1233 |
|
1234 |
266. A NIL ~v prefix to [ does not work correctly. |
1235 |
ansi-tests: format.cond.14 format.cond:.7 |
1236 |
|
1237 |
267. The format directive ~{~} should take the next argument as a format |
1238 |
control to be used in the iteration. This is not happening. |
1239 |
ansi-tests: format.{.1a format.{.1b format.{.1[569] format.{.2[0123] |
1240 |
format.:{.[3456] format.@{.1[23] format.:@{.[45] |
1241 |
|
1242 |
268. The ~{ ... ~} directive should be prepared to signal an error of |
1243 |
type type-error if the argument is not a list. |
1244 |
ansi-tests: format.{.error.5 format.:@{.error.5 |
1245 |
|
1246 |
269. ~^ should take format parameters that are bignums, and other |
1247 |
format parameter problems with that format directive. |
1248 |
ansi-tests: format.^.(.1[89] format.^.{.2[056789] |
1249 |
format.^.{.3[0123] format.^.:{.[67] format.^.:{.1[013456] |
1250 |
format.^.:{.3[89] format.^.@{.19 format.^.@{.2056789] |
1251 |
format.^.@{.3[0123] format.^.:@{.[67] format.^.:@{.1[01456] |
1252 |
format.^.:@{.3[89] |
1253 |
|
1254 |
270. Large numbers of undiagnosed failures in ~:^ in various forms of |
1255 |
the iteration directives. |
1256 |
ansi-tests: format.:^.* |
1257 |
|
1258 |
271. LOAD should be able to load directly from a stream. |
1259 |
ansi-tests: load.[38] load.1[356] load.1[56]a |
1260 |
|
1261 |
272. The information printed by LOAD when verbose is true should |
1262 |
be on lines starting with semicolons. |
1263 |
ansi-tests: load.[56] |
1264 |
|
1265 |
273. LOAD should simply return nil if an attempt to load a nonexistent |
1266 |
file is made when the :if-does-not-exist keyword argument is nil. |
1267 |
ansi-tests: load.14 |
1268 |
|
1269 |
274. LOAD should bind *LOAD-PATHNAME* to be the pathname of the file |
1270 |
being loaded, merged against the defaults. However, this variable |
1271 |
is being bound to the pathname's name (a string), not a pathname. |
1272 |
ansi-tests: load.18 |
1273 |
|
1274 |
275. LOAD should signal a FILE-ERROR when trying to load a nonexistent |
1275 |
file (unless the if-does-not-exist parameter is false). It is throwing |
1276 |
a simple-error instead. |
1277 |
ansi-tests: load.error.1 |
1278 |
|
1279 |
276. The describe tests crash gcl when run with rt::*catch-errors* bound |
1280 |
to nil. |
1281 |
ansi-tests: describe.[12345] |
1282 |
|
1283 |
277. DISASSEMBLE should signal a program-error on safe calls with more than |
1284 |
one argument. |
1285 |
ansi-tests: disassemble.error.2 |
1286 |
|
1287 |
278. TRACE ism't working on extended function names like (SETF ...). |
1288 |
ansi-tests: trace.[68 |
1289 |
|
1290 |
279. TRACE isn't working properly on generic functions. An error is being |
1291 |
signaled if a method is added to a generic function that is being traced. |
1292 |
ansi-tests: trace.1[34] |
1293 |
|
1294 |
280. GET-UNIVERSAL-TIME should signal a program-error in safe calls with more |
1295 |
than zero arguments. |
1296 |
ansi-tests: get-universal-time.error.[12] |
1297 |
|
1298 |
281. GET-INTERNAL-REAL-TIME should signal a program-error in safe calls with |
1299 |
more than zero arguments. |
1300 |
ansi-tests: get-interal-real-time.error.[12] |
1301 |
|
1302 |
282. GET-INTERNAL-RUN-TIME should return a single integer, but it is returning |
1303 |
two values. |
1304 |
ansi-tests: get-internal-run-time.1 |
1305 |
|
1306 |
283. DOCUMENTATION fails on (SETF ...) function names with documentation type |
1307 |
FUNCTION. |
1308 |
ansi-tests: documentation.list.function.[12] |
1309 |
|
1310 |
284. DOCUMENTATION fails on symbol, 'type arguments. |
1311 |
ansi-tests: documentation.symnol.type.1 |
1312 |
|
1313 |
285. DRIBBLE should signal a program-error if called with more than one |
1314 |
argument in safe code. |
1315 |
ansi-tests: dribble.error.1 |
1316 |
|
1317 |
286. Compiling a call to a function whose name is an uninterned symbol |
1318 |
doesn't work. |
1319 |
|
1320 |
(let* ((sym (gensym)) |
1321 |
(fun-def `(defun ,sym () nil))) |
1322 |
(eval fun-def) |
1323 |
(funcall (compile nil `(lambda () (,sym))))) |
1324 |
|
1325 |
Error in COMPILER::CMP-ANON [or a callee]: FUNCTION is not of type #:G1832. |
1326 |
|
1327 |
287. DO-ALL-SYMBOLS should return when a RETURN is executed in its body. |
1328 |
However, it is just skipping the package currently being traversed, |
1329 |
since the macro is implemented as two nested loops and each has |
1330 |
its own implicit NIL block. ansi-tests: do-all-symbols.12 |