From c7738c62fec81cb8b1cb0fbbf17e9ff8d639a7c7 Mon Sep 17 00:00:00 2001
From: Daniel Barlow <>
Date: Sun, 16 May 2004 18:19:54 +0000
Subject: [PATCH] Patches for ECL, courtesy of Juan Jose Garcia Ripoll

* "ECL cannot externalize packages in compiled files. In other words,
compiled files cannot have package objects as literal
constants. Things like LOAD-TIME-VALUE, or saving the package name and
afterwards looking for the package is all right. This only affects
your uses of #.*package* somewhere in the code."

* Also an appropriate run-shell-command implementation
---
 README       | 10 ++++++++--
 asdf.lisp    | 19 +++++++++++--------
 asdf.texinfo | 23 ++++++++++++-----------
 test-mail    |  1 -
 4 files changed, 31 insertions(+), 22 deletions(-)
 delete mode 100644 test-mail

diff --git a/README b/README
index 639a835d..e7c9e903 100644
--- a/README
+++ b/README
@@ -1,4 +1,10 @@
-$Id: README,v 1.36 2003/12/01 03:14:34 dan_b Exp $         -*- Text -*-
+$Id: README,v 1.37 2004/05/16 18:19:54 dan_b Exp $         -*- Text -*-
+
+The canonical documentation for asdf is in the file asdf.texinfo.  
+The significant overlap between this file and that will one day be
+resolved by deleting text from this file; in the meantime, please look
+there before here.
+
 
 
 asdf: another system definition facility          
@@ -609,7 +615,7 @@ this pathname information will not be overwritten with
 if the user loads up the .asd file into his editor and
 interactively re-evaluates that form
 
-* Error handling
+ * Error handling
 
 It is an error to define a system incorrectly: an implementation may
 detect this and signal a generalised instance of
diff --git a/asdf.lisp b/asdf.lisp
index d53cdb16..0baf645a 100644
--- a/asdf.lisp
+++ b/asdf.lisp
@@ -1,4 +1,4 @@
-;;; This is asdf: Another System Definition Facility.  $Revision: 1.84 $
+;;; This is asdf: Another System Definition Facility.  $Revision: 1.85 $
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome: please mail to
 ;;; <cclan-list@lists.sf.net>.  But note first that the canonical
@@ -107,7 +107,7 @@
 
 (in-package #:asdf)
 
-(defvar *asdf-revision* (let* ((v "$Revision: 1.84 $")
+(defvar *asdf-revision* (let* ((v "$Revision: 1.85 $")
 			       (colon (or (position #\: v) -1))
 			       (dot (position #\. v)))
 			  (and v colon dot 
@@ -362,7 +362,7 @@ and NIL NAME and TYPE components"
     (when (and on-disk
 	       (or (not in-memory)
 		   (< (car in-memory) (file-write-date on-disk))))
-      (let ((*package* (make-package (gensym (package-name #.*package*))
+      (let ((*package* (make-package (gensym #.(package-name *package*))
 				     :use '(:cl :asdf))))
 	(format *verbose-out*
 		"~&~@<; ~@;loading system definition from ~A into ~A~@:>~%"
@@ -873,9 +873,11 @@ system."))
   
 
 (defun class-for-type (parent type)
-  (let ((class (find-class
-		(or (find-symbol (symbol-name type) *package*)
-		    (find-symbol (symbol-name type) #.*package*)) nil)))
+  (let ((class 
+	 (find-class
+	  (or (find-symbol (symbol-name type) *package*)
+	      (find-symbol (symbol-name type) #.(package-name *package*)))
+	  nil)))
     (or class
 	(and (eq type :file)
 	     (or (module-default-component-class parent)
@@ -1047,8 +1049,9 @@ output to *verbose-out*.  Returns the shell's exit code."
 		(ccl:run-program "/bin/sh" (list "-c" command)
 				 :input nil :output *verbose-out*
 				 :wait t)))
-
-    #-(or openmcl clisp lispworks allegro scl cmu sbcl)
+    #+ecl ;; courtesy of Juan Jose Garcia Ripoll
+    (si:system command)
+    #-(or openmcl clisp lispworks allegro scl cmu sbcl ecl)
     (error "RUN-SHELL-PROGRAM not implemented for this Lisp")
     ))
 
diff --git a/asdf.texinfo b/asdf.texinfo
index e62e2aa8..a5a246d7 100644
--- a/asdf.texinfo
+++ b/asdf.texinfo
@@ -120,8 +120,8 @@ Lisp programs and libraries.
 
 @section Downloading asdf
 
-Some Lisp implementations (such as SBCL and OpenMCL) some with asdf
-included already, so there is no need to download it separately.
+Some Lisp implementations (such as SBCL and OpenMCL) come with asdf
+included already, so you don't need to download it separately.
 Consult your Lisp system's documentation.  If you need to download
 asdf and install it by hand, the canonical source is the cCLan CVS
 repository at
@@ -137,18 +137,19 @@ startup script or dumping a custom core -- check your Lisp
 implementation's manual for details.
 
 The variable @code{asdf:*central-registry*} is a list of ``system
-directory designators''@footnote{When we say ``directory'' here, we mean
-``designator for a pathname with a supplied DIRECTORY component''.}.
-A @dfn{system directory designator} is a form which will be evaluated
-whenever a system is to be found, and must evaluate to a directory to
-look in.  You might want to set @code{*central-registry*} in your Lisp
-init file, for example:
+directory designators''@footnote{When we say ``directory'' here, we
+mean ``designator for a pathname with a supplied DIRECTORY
+component''.}.  A @dfn{system directory designator} is a form which
+will be evaluated whenever a system is to be found, and must evaluate
+to a directory to look in.  You might want to set or augment
+@code{*central-registry*} in your Lisp init file, for example:
 
 @lisp
 (setf asdf:*central-registry*
-  '(*default-pathname-defaults*
-    #p"/home/me/cl/systems/"
-    #p"/usr/share/common-lisp/systems/"))
+  (list* '*default-pathname-defaults*
+         #p"/home/me/cl/systems/"
+         #p"/usr/share/common-lisp/systems/"
+         asdf:*central-registry*))
 @end lisp
 
 @section Setting up a system to be loaded
diff --git a/test-mail b/test-mail
deleted file mode 100644
index 0aa66d74..00000000
--- a/test-mail
+++ /dev/null
@@ -1 +0,0 @@
-Wed Aug 28 21:18:48 BST 2002
-- 
GitLab