From 46ca19e3db3fc054743290cdf6e1cc51ff3ec588 Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Fri, 19 Dec 2008 16:14:58 +0000 Subject: [PATCH] 1.0.23.57: rewrite bug 217 * Case A is a non-issue. SBCL interprets "unpredictable but harmless" to mean "anything, but heap will no be corrupted, data lost, etc" -- that is, an error may or may not be signalled, but it the lisp session will remain sane and operable. * Case B is negated by the portability argument: since specifying both is unspecified, we should not build useful-seeming extensions on top of it, as it will only create portability problems for users. * Case C remains partially valid, except for the runtime WARNINGs. Integrated into the new text. --- BUGS | 23 ++++++++--------------- version.lisp-expr | 2 +- 2 files changed, 9 insertions(+), 16 deletions(-) diff --git a/BUGS b/BUGS index 15269e7..78b9bf5 100644 --- a/BUGS +++ b/BUGS @@ -606,21 +606,14 @@ WORKAROUND: 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 diff --git a/version.lisp-expr b/version.lisp-expr index e456d3f..175a8e5 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.23.56" +"1.0.23.57" -- 1.7.10.4