From: Nikodemus Siivola Date: Thu, 7 Sep 2006 08:49:38 +0000 (+0000) Subject: 0.9.16.21: small fixes and cleanups X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=18aa51db1d51cb20eb35a8e34c36cd78446c6bdd;p=sbcl.git 0.9.16.21: small fixes and cleanups * timers expiring in dead thread no longer cause a TYPE-ERROR. Reported by Paul "Nonny Mouse" on sbcl-devel. * ASDF-INSTALL uses GNU tar on Solaris. From patch by Josip Gracin. * Unnecessary conditional in RUN-PROGRAM on Win32. Reported by Yaroslav Kavenchuck. * Use cut from index 1, not 0 in find-gnumake.sh. Reported by Harald Hanche-Olsen. --- diff --git a/NEWS b/NEWS index 6c8c521..fd11ba5 100644 --- a/NEWS +++ b/NEWS @@ -29,6 +29,10 @@ changes in sbcl-0.9.17 (0.9.99?) relative to sbcl-0.9.16: * bug fix: The :PTY argument for RUN-PROGRAM will now work on systems with Unix98 pty semantics. * bug fix: ASDF-INSTALL will now work with bsd tar. + * bug fix: ASDF-INSTALL uses GNU tar on Solaris (thanks to Josip + Gracin). + * bug fix: timers expiring in dead threads no longer cause a + type-error (reported by Paul "Nonny Mouse"). changes in sbcl-0.9.16 relative to sbcl-0.9.15: * feature: implemented the READER-METHOD-CLASS and diff --git a/contrib/asdf-install/installer.lisp b/contrib/asdf-install/installer.lisp index e20d6cf..4dd97a5 100644 --- a/contrib/asdf-install/installer.lisp +++ b/contrib/asdf-install/installer.lisp @@ -255,8 +255,9 @@ (elt *locations* (1- response))))) (defparameter *tar-program* - (or #+darwin "gnutar" - "tar")) + #+darwin "gnutar" + #+sunos "gtar" + #-(or darwin sunos) "tar") (defun get-tar-directory (packagename) (let* ((tar (with-output-to-string (o) diff --git a/find-gnumake.sh b/find-gnumake.sh index 38819f7..399fdd1 100644 --- a/find-gnumake.sh +++ b/find-gnumake.sh @@ -6,7 +6,7 @@ find_gnumake() { if [ "$GNUMAKE" != "" ] ; then # The user is evidently trying to tell us something. GNUMAKE="$GNUMAKE" - elif [ "GNU Make" = "`make -v | head -n 1 | cut -b 0-8`" ]; then + elif [ "GNU Make" = "`make -v | head -n 1 | cut -b 1-8`" ]; then GNUMAKE=make elif [ -x "`which gmake`" ] ; then # "gmake" is the preferred name in *BSD. diff --git a/src/code/run-program.lisp b/src/code/run-program.lisp index cafb1de..88982f8 100644 --- a/src/code/run-program.lisp +++ b/src/code/run-program.lisp @@ -845,12 +845,9 @@ Common Lisp Users Manual for details about the PROCESS structure. (coerce ;; Apparently any spaces or double quotes in the arguments ;; need to be escaped on win32. - #+win32 (if (position-if (lambda (c) (find c '(#\" #\Space))) x) (write-to-string x) x) - #-win32 - x 'simple-string)) args))) (unwind-protect diff --git a/src/code/timer.lisp b/src/code/timer.lisp index 3280bd2..3ad04ea 100644 --- a/src/code/timer.lisp +++ b/src/code/timer.lisp @@ -337,7 +337,8 @@ triggers." (handler-case (sb!thread:interrupt-thread thread function) (sb!thread:interrupt-thread-error (c) - (warn c))))))) + (declare (ignore c)) + (warn "Timer ~S failed to interrupt thread ~S." timer thread))))))) ;; Called from the signal handler. (defun run-expired-timers () diff --git a/tests/timer.impure.lisp b/tests/timer.impure.lisp index bfdcb78..8a66453 100644 --- a/tests/timer.impure.lisp +++ b/tests/timer.impure.lisp @@ -118,3 +118,13 @@ (sb-ext:with-timeout 0.5 (sleep 5) (assert nil)))))) + +#+sb-thread +(with-test (:name (:with-timeout :dead-thread)) + (sb-thread:make-thread + (lambda () + (let ((timer (make-timer (lambda ())))) + (schedule-timer timer 3) + (assert t)))) + (sleep 6) + (assert t)) diff --git a/version.lisp-expr b/version.lisp-expr index e08a07b..33e1179 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".) -"0.9.16.20" +"0.9.16.21"