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