gcl-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Gcl-devel] some GCL bugs revealed by ansi test suite


From: Paul F. Dietz
Subject: Re: [Gcl-devel] some GCL bugs revealed by ansi test suite
Date: Wed, 14 Aug 2002 22:25:53 -0500

(The stack extension worked; thanks.)

ANSI compliance bugs in gcl compiled with --enable-ansi:

1. LAST should take an optional second argument (which defaults
to 1), but only takes one argument.

2. LDIFF doesn't work on dotted lists.

  (LDIFF '(A B C . D) 'D) should give (A B C)
    but instead throws an error

3. TAILP doesn't work on dotted lists.

  (TAILP '(A B C . D) 'D) should be true, but
    instead throw an error.

4. ASSOC-IF is not taking the required :KEY argument.

5. When ASSOC-IF is called on a list in which one of the elements
   is NIL, it does not ignore that element.

  Example:

   (ASSOC-IF #'EVENP '((1 . a) nil (3 . b) (4 . c) (6 . d)))
      should yield (4 . c)
      but instead is throwing an error.

6, 7.  Same as 4, 5, but for ASSOC-IF-NOT.

8, 9.  Same as 4, 5, but for RASSOC-IF.

10, 11.  Same as 4, 5, but for RASSOC-IF-NOT.

12. BUTLAST doesn't work on dotted lists.

   (BUTLAST (LIST* 1 2 3 4) 1) should yield (1 2)
     but instead throws an error.

13. NBUTLAST doesn't work on dotted lists (same as 12).

14. This expression
 (let ((p (copy-list '(a 1 b 2)))
          (foo nil))
      (setf (getf p 'a (progn (setf foo t) 0)) 3)
      (and
       (eql (getf p 'a) 3)
       (eql (getf p 'b) 2)
       (eql
        (loop
            for ptr on p by #'cddr count
              (not (member (car ptr) '(a b))))
        0)
       foo))

should evaluate to T, but (contrary to the standard) the third
argument to the getf in the setf form is not being evaluated.
(See the CLHS entry for GETF.)

15.  This is a tricky one.  As I read the standard, the :test or :test-not
  function for SET-EXCLUSIVE-OR must preserve the order of the items being
  compared.  That is, the first must be from the first list and the second
  from the second list.  This is not being done -- the argument order is
  getting reversed.

        Paul




reply via email to

[Prev in Thread] Current Thread [Next in Thread]