can erroneously return T.
215: ":TEST-NOT handling by functions"
- a. FIND and POSITION currently signal errors when given non-NIL for
- both their :TEST and (deprecated) :TEST-NOT arguments, but by
- ANSI 17.2 "the consequences are unspecified", which by ANSI 1.4.2
- means that the effect is "unpredictable but harmless". It's not
- clear what that actually means; it may preclude conforming
- implementations from signalling errors.
- b. COUNT, REMOVE and the like give priority to a :TEST-NOT argument
- when conflict occurs. As a quality of implementation issue, it
- might be preferable to treat :TEST and :TEST-NOT as being in some
- sense the same &KEY, and effectively take the first test function in
- the argument list.
- c. Again, a quality of implementation issue: it would be good to issue a
- STYLE-WARNING at compile-time for calls with :TEST-NOT, and a
- WARNING for calls with both :TEST and :TEST-NOT; possibly this
- latter should be WARNed about at execute-time too.
+
+ We should verify that our handling of :TEST-NOT and :TEST is consistent
+ for all functions that accept them: that is, signal an error if both
+ are specified.
+
+ Similarly, a compile-time full warning for calls with both would be good.
+
+ We might also consider a compile-time style warning for :TEST-NOT.
216: "debugger confused by frames with invalid number of arguments"
In sbcl-0.7.8.51, executing e.g. (VECTOR-PUSH-EXTEND T), BACKTRACE, Q
perhaps because CLISP has shuffled the clauses into an
ANSI-compliant order before proceeding.
-405: a TYPE-ERROR in MERGE-LETS exercised at DEBUG 3
- In sbcl-0.9.16.21 on linux/86, compiling
- (declaim (optimize (debug 3)))
- (defstruct foo bar)
- (let ()
- (flet ((i (x) (frob x (foo-bar foo))))
- (i :five)))
- causes a TYPE-ERROR
- The value NIL is not of type SB-C::PHYSENV.
- in MERGE-LETS.
-
406: functional has external references -- failed aver
Given the following food in a single file
(eval-when (:compile-toplevel :load-toplevel :execute)