0.9.16.21: small fixes and cleanups
authorNikodemus Siivola <nikodemus@random-state.net>
Thu, 7 Sep 2006 08:49:38 +0000 (08:49 +0000)
committerNikodemus Siivola <nikodemus@random-state.net>
Thu, 7 Sep 2006 08:49:38 +0000 (08:49 +0000)
 * 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.

NEWS
contrib/asdf-install/installer.lisp
find-gnumake.sh
src/code/run-program.lisp
src/code/timer.lisp
tests/timer.impure.lisp
version.lisp-expr

diff --git a/NEWS b/NEWS
index 6c8c521..fd11ba5 100644 (file)
--- 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
index e20d6cf..4dd97a5 100644 (file)
       (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)
index 38819f7..399fdd1 100644 (file)
@@ -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.
index cafb1de..88982f8 100644 (file)
@@ -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
index 3280bd2..3ad04ea 100644 (file)
@@ -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 ()
index bfdcb78..8a66453 100644 (file)
            (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))
index e08a07b..33e1179 100644 (file)
@@ -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"