0.8.3.18:
authorChristophe Rhodes <csr21@cam.ac.uk>
Mon, 1 Sep 2003 10:41:24 +0000 (10:41 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Mon, 1 Sep 2003 10:41:24 +0000 (10:41 +0000)
Allow RUN-PROGRAM to work even when something in $PATH is not
an existent directory:
... patch from Andreas Fuchs sbcl-devel 2003-08-26;
... add a test case;
Also, need find-gnumake.sh in binary distributions:
... make it so!

NEWS
binary-distribution.sh
src/code/run-program.lisp
tests/run-program.test.sh
version.lisp-expr

diff --git a/NEWS b/NEWS
index 17f7410..45ccbdf 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -2011,6 +2011,8 @@ changes in sbcl-0.8.4 relative to sbcl-0.8.3:
   * bug fix: effective methods associated with a generic function are
     no longer cached over a change of that generic function's method
     combination.  (reported by Andreas Fuchs)
+  * bug fix: RUN-PROGRAM now does not fail if some element in $PATH
+    names a non-existent directory.  (thanks to Andreas Fuchs)
   * optimization: restored some effective method precomputation in
     CLOS (turned off by an ANSI fix in sbcl-0.8.3); the amount of
     precomputation is now tunable.
index 462a86d..c5b0e77 100755 (executable)
@@ -13,7 +13,7 @@ b=${1:?"missing base directory name argument"}
 tar -cf $b-binary.tar \
     $b/output/sbcl.core $b/src/runtime/sbcl \
     $b/BUGS $b/COPYING $b/CREDITS $b/INSTALL $b/NEWS $b/README \
-    $b/install.sh \
+    $b/install.sh $b/find-gnumake.sh \
     $b/doc/sbcl.1 \
     $b/pubring.pgp \
     $b/contrib/asdf-module.mk \
index 5ad4e12..0119d6c 100644 (file)
        while start
        ;; <Krystof> the truename of a file naming a directory is the
        ;; directory, at least until pfdietz comes along and says why
-       ;; that's noncompliant
-       for fullpath = (merge-pathnames
-                       pathname (truename
-                                 (subseq search-path start end)))
-       when (unix-filename-is-executable-p (namestring fullpath))
+       ;; that's noncompliant  -- CSR, c. 2003-08-10
+       for truename = (probe-file (subseq search-path start end))
+       for fullpath = (when truename (merge-pathnames pathname truename))
+       when (and fullpath
+                 (unix-filename-is-executable-p (namestring fullpath)))
        return fullpath))
 
 ;;; FIXME: There shouldn't be two semiredundant versions of the
index ad11cac..94dcbad 100644 (file)
@@ -17,7 +17,7 @@
 # one of the tests below).
 SOMETHING_IN_THE_ENVIRONMENT='yes there is'
 export SOMETHING_IN_THE_ENVIRONMENT
-
+export PATH=/some/path/that/does/not/exist:${PATH}
 
 ${SBCL:-sbcl} <<EOF
   ;; test that $PATH is searched
index afe5a66..a1dad1f 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.8.3.17"
+"0.8.3.18"