Commit 1f1ffa37 authored by Juho Snellman's avatar Juho Snellman
Browse files

0.9.17.3:

	Fix negation of character-set types (reported by Anton Kazennikov
        on comp.lang.lisp).
parent bfb7c2d5
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
;;;; -*- coding: utf-8; -*-
changes in sbcl-0.9.18 (1.0.beta?) relative to sbcl-0.9.16:
  * bug fix: two potential GC deadlocks affecting threaded builds.
  * bug fix: (TYPEP #\A '(NOT (MEMBER #\" #\{ #\:))) now correctly
    returns T (reported by Anton Kazennikov)

changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.16:
  * feature: weak hash tables, see MAKE-HASH-TABLE documentation
+23 −23
Original line number Diff line number Diff line
@@ -3118,8 +3118,8 @@ used for a COMPLEX component.~:@>"
                     (when (> (caar pairs) 0)
                       (push (cons 0 (1- (caar pairs))) not-pairs))
                     (do* ((tail pairs (cdr tail))
                          (high1 (cdar tail))
                          (low2 (caadr tail)))
                           (high1 (cdar tail) (cdar tail))
                           (low2 (caadr tail) (caadr tail)))
                          ((null (cdr tail))
                           (when (< (cdar tail) (1- sb!xc:char-code-limit))
                             (push (cons (1+ (cdar tail))
+18 −0
Original line number Diff line number Diff line
@@ -257,6 +257,7 @@
        (let ((deriver (intern (format nil "~A-DERIVE-UNSIGNED-~:[HIGH~;LOW~]-BOUND"
                                       op minimize)
                               (find-package :sb-c))))
          (format t "testing type derivation: ~A~%" deriver)
          (loop for a from 0 below size do
                (loop for b from a below size do
                      (loop for c from 0 below size do
@@ -346,3 +347,20 @@ ACTUAL ~D DERIVED ~D~%"

(assert (typep #p"" 'sb-kernel:instance))
(assert (subtypep '(member #p"") 'sb-kernel:instance))

(with-test (:name (:typep :character-set :negation))
  (flet ((generate-chars ()
           (loop repeat 100
                 collect (code-char (random char-code-limit)))))
    (dotimes (i 1000)
      (let* ((chars (generate-chars))
             (type `(member ,@chars))
             (not-type `(not ,type)))
        (dolist (char chars)
          (assert (typep char type))
          (assert (not (typep char not-type))))
        (let ((other-chars (generate-chars)))
          (dolist (char other-chars)
            (unless (member char chars)
              (assert (not (typep char type)))
              (assert (typep char not-type)))))))))
+1 −1
Original line number Diff line number Diff line
@@ -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".)
"0.9.17.2"
"0.9.17.3"