0.7.13.18:
authorChristophe Rhodes <csr21@cam.ac.uk>
Fri, 7 Mar 2003 15:14:51 +0000 (15:14 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Fri, 7 Mar 2003 15:14:51 +0000 (15:14 +0000)
contrib/ frobs
... install newer asdf, which fixes my stupid thinko for
.sbcl/systems (though in point of fact there would be
an argument, I think, for resolving
user-homedir-pathname/SBCL_HOME later than we are.
... apply KMR patches (sbcl-devel 2003-03-04) for sb-aclrepl
(and turn *CMD-CHAR* into *COMMAND-CHAR* in the process)

contrib/asdf/asdf.lisp
contrib/sb-aclrepl/sb-aclrepl.lisp
version.lisp-expr

index 7754100..94e235f 100644 (file)
@@ -1,4 +1,4 @@
-;;; This is asdf: Another System Definition Facility.  $\Revision: 1.59 $
+;;; This is asdf: Another System Definition Facility.  $\Revision: 1.62 $
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome: please mail to
 ;;; <cclan-list@lists.sf.net>.  But note first that the canonical
@@ -87,7 +87,7 @@
 
 (in-package #:asdf)
 
-(defvar *asdf-revision* (let* ((v "$\Revision: 1.59 $")
+(defvar *asdf-revision* (let* ((v "$\Revision: 1.62 $")
                               (colon (position #\: v))
                               (dot (position #\. v)))
                          (and v colon dot 
@@ -709,7 +709,32 @@ system."))
 (defclass load-source-op (operation) ())
 
 (defmethod perform ((o load-source-op) (c cl-source-file))
-  (load (component-pathname c)))
+  (let ((source (component-pathname c)))
+    (setf (component-property c 'last-loaded-as-source)
+          (and (load source)
+               (get-universal-time)))))
+
+(defmethod perform ((operation load-source-op) (c static-file))
+  nil)
+
+(defmethod output-files ((operation load-source-op) (c component))
+  nil)
+
+;;; FIXME: we simply copy load-op's dependencies.  this is Just Not Right.
+(defmethod component-depends-on ((o load-source-op) (c component))
+  (let ((what-would-load-op-do (cdr (assoc 'load-op
+                                           (slot-value c 'in-order-to)))))
+    (mapcar (lambda (dep)
+              (if (eq (car dep) 'load-op)
+                  (cons 'load-source-op (cdr dep))
+                  dep))
+            what-would-load-op-do)))
+
+(defmethod operation-done-p ((o load-source-op) (c source-file))
+  (if (or (not (component-property c 'last-loaded-as-source))
+         (> (file-write-date (component-pathname c))
+            (component-property c 'last-loaded-as-source)))
+      nil t))
 
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
@@ -960,12 +985,12 @@ output to *trace-output*.  Returns the shell's exit code."
   
   (pushnew
    (merge-pathnames "site-systems/"
-                   (truename (sb-ext:posix-getenv "SBCL_HOME")))
+                   (truename (sb-ext:posix-getenv "SBCL_HOME")))
    *central-registry*)
   
   (pushnew
-   (merge-pathnames ".sbcl/systems"
-                   (user-homedir-pathname))
+   (merge-pathnames ".sbcl/systems/"
+                   (user-homedir-pathname))
    *central-registry*)
   
   (pushnew 'module-provide-asdf sb-ext:*module-provider-functions*))
index cc89cf5..6fdf059 100644 (file)
@@ -3,14 +3,16 @@
 ;;;; SBCL-specific hooks like SB-INT:*REPL-READ-FUN* and
 ;;;; SB-INT:*REPL-PROMPT-FUN*.
 ;;;;
-;;;; The documentation for this functionality is on the ACL website,
+;;;; The documentation, which may or may not apply in its entirety at
+;;;; any given time, for this functionality is on the ACL website:
 ;;;;   <http://www.franz.com/support/documentation/6.2/doc/top-level.htm>.
 
 (cl:defpackage :sb-aclrepl
   (:use :cl :sb-ext)
-  (:export :*prompt*)
-  ;; (what else should we be exporting?)
-  )
+  ;; FIXME: should we be exporting anything else?
+  (:export #:*prompt* #:*exit-on-eof* #:*max-history*
+          #:*use-short-package-name* #:*command-char*
+          #:alias))
 
 (cl:in-package :sb-aclrepl)
 
   "when T, use the shortnest package nickname in a prompt")
 (defparameter *dir-stack* nil
   "The top-level directory stack")
-(defparameter *cmd-char* #\:
+(defparameter *command-char* #\:
   "Prefix character for a top-level command")
 (defvar *max-history* 24
   "Maximum number of history commands to remember")
-(defvar *exit-on-eof*
+(defvar *exit-on-eof* t
   "If T, then exit when the EOF character is entered.")
 (defparameter *history* nil
   "History list")
@@ -66,7 +68,7 @@
                      collect arg))))))
     (let ((next-char (peek-char-non-whitespace input-stream)))
       (cond
-       ((eql next-char *cmd-char*)
+       ((eql next-char *command-char*)
         (let* ((line (string-trim-whitespace (read-line input-stream)))
                (first-space-pos (position #\space line))
                (cmd-string (subseq line 1 first-space-pos))
         (fresh-line)
         t) ; Ayup.
        (t
+        (add-to-history user-cmd)
         nil))) ; nope, not in my job description
 
 (defun repl-read-form-fun (input-stream output-stream)
index 6a50335..8815e33 100644 (file)
@@ -18,4 +18,4 @@
 ;;; versions, especially for internal versions off the main CVS
 ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".)
 
-"0.7.13.17"
+"0.7.13.18"