Re: asdf in sbcl saved images.

Juho Snellman <[email protected]>
Newsgroups gmane.lisp.cclan.general
Message-ID <[email protected]>
<[email protected]> wrote:
> (let ((sbcl-home  (sb-ext:posix-getenv "SBCL_HOME")))
>   (when sbcl-home
>     (pushnew
>      '(merge-pathnames "site-systems/"
>        (truename (sb-ext:posix-getenv "SBCL_HOME")))
>      *central-registry*)))

This doesn't seem quite right. Whether SBCL_HOME is set or not
shouldn't be checked when asdf is loaded, but when
SYSDEF-CENTRAL-REGISTRY-SEARCH calls EVAL on that form, since the core
could be saved between those two times.

How about the following?

Index: asdf.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/contrib/asdf/asdf.lisp,v
retrieving revision 1.22
diff -u -r1.22 asdf.lisp
--- asdf.lisp	19 Jun 2006 00:18:38 -0000	1.22
+++ asdf.lisp	17 Jul 2006 20:25:56 -0000
@@ -1148,20 +1148,23 @@
           t))))
 
   (defun contrib-sysdef-search (system)
-    (let* ((name (coerce-name system))
-           (home (truename (sb-ext:posix-getenv "SBCL_HOME")))
-           (contrib (merge-pathnames
-                     (make-pathname :directory `(:relative ,name)
-                                    :name name
-                                    :type "asd"
-                                    :case :local
-                                    :version :newest)
-                     home)))
-      (probe-file contrib)))
+    (let ((home (sb-ext:posix-getenv "SBCL_HOME")))
+      (when home
+        (let* ((name (coerce-name system))
+               (home (truename home))
+               (contrib (merge-pathnames
+                         (make-pathname :directory `(:relative ,name)
+                                        :name name
+                                        :type "asd"
+                                        :case :local
+                                        :version :newest)
+                         home)))
+          (probe-file contrib)))))
 
   (pushnew
-   '(merge-pathnames "site-systems/"
-     (truename (sb-ext:posix-getenv "SBCL_HOME")))
+   '(let ((home (sb-ext:posix-getenv "SBCL_HOME")))
+      (when home
+        (merge-pathnames "site-systems/" (truename home))))
    *central-registry*)
 
   (pushnew

-- 
Juho Snellman


-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.