0.8.4.27:
authorChristophe Rhodes <csr21@cam.ac.uk>
Fri, 17 Oct 2003 14:27:44 +0000 (14:27 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Fri, 17 Oct 2003 14:27:44 +0000 (14:27 +0000)
OK, here's the deal.
... *MODULE-PROVIDER-FUNCTIONS* no longer call PROVIDE.  It's
now the job of user code to do that (as it probably
should always have been.
... OK, so as a result, our one-file contribs now need to
PROVIDE themselves.  Make it so.
... fix asdf-install/asdf autorequiration; an installed sbcl
can now require asdf-install (as well as all the other
asdfized contribs) as the first command in a clean core
... update contrib/{README,STANDARDS} to match what we currently
do.

contrib/README
contrib/STANDARDS
contrib/asdf-install/Makefile
contrib/asdf/asdf.lisp
contrib/sb-executable/sb-executable.lisp
contrib/sb-introspect/sb-introspect.lisp
src/code/module.lisp
version.lisp-expr

index a0a07be..389d18f 100644 (file)
@@ -8,15 +8,11 @@ There are two kinds of contrib module in this directory:
   * Newer contrib modules conform to the contrib standard (see 
     STANDARDS) and are automatically built and installed along with
     SBCL itself.  Each of these is in its own subdirectory with a
-    Makefile, and can be loaded with REQUIRE
+    Makefile, and can be loaded with REQUIRE.
 
-    Many of them use ASDF, so you have to require that first: e.g.
-
-        * (require 'asdf)
-        * (require 'sb-bsd-sockets)
-
-  * Older standalone files are effectively unpackaged and may or may 
-    not work with the current SBCL version.
+  * Older standalone files in the contrib directory itself are
+    effectively unpackaged and may or may not work with the current
+    SBCL version.
 
 Some good candidates for future extensions here are:
   * bindings to existing foreign libraries (e.g. to a regexp library
index ada913b..80b0b58 100644 (file)
@@ -1,4 +1,4 @@
-Proposed contrib standard, version $Revision$
+Proposed contrib standard, $Revision$
 
 The SBCL contrib mechanism provides a mechanism to
 manage code which does not form part of SBCL itself, but which is
@@ -49,17 +49,18 @@ A contrib package must contain a Makefile.  This is to have three targets
 
 all:     # do whatever compilation is necessary
 test:    # run the package tests
-install: # copy all necessary files into $(INSTALL_DIR)
+install: # copy all necessary files into $(BUILD_ROOT)$(INSTALL_DIR)
 
 If the contrib package involves more than one file, you are encouraged
 to use ASDF to build it and load it.  A version of asdf is bundled as
 an SBCL contrib, which knows to look in $SBCL_HOME/systems/ for asd
 files - your install target should create an appropriate symlink there
-to the installed location of the system file.  Look in sb-bsd-sockets/Makefile
-for an example of an asdf-using contrib
+to the installed location of the system file.  Look in
+sb-bsd-sockets/Makefile for an example of an asdf-using contrib.
 
-$(INSTALL_DIR) will have been created by the system before your
-install target is called.  You do not need to make it yourself.
+$(BUILD_ROOT)$(INSTALL_DIR) will have been created by the system
+before your install target is called.  You do not need to make it
+yourself.
 
 * Tests
 
index 5ec18e7..68926ad 100644 (file)
@@ -4,7 +4,10 @@ EXTRA_INSTALL_TARGETS=asdf-install-install
 include ../asdf-module.mk
 
 asdf-install-install: asdf-install
-       if test -f $(INSTALL_ROOT)/bin/sbcl-asdf-install ; then \
-        mv $(INSTALL_ROOT)/bin/sbcl-asdf-install $(INSTALL_ROOT)/bin/sbcl-asdf-install.old ; \
-        fi
-       cp asdf-install $(INSTALL_ROOT)/bin/sbcl-asdf-install
+       if test -f $(BUILD_ROOT)$(INSTALL_ROOT)/bin/sbcl-asdf-install ; then \
+         mv $(BUILD_ROOT)$(INSTALL_ROOT)/bin/sbcl-asdf-install $(BUILD_ROOT)$(INSTALL_ROOT)/bin/sbcl-asdf-install.old ; \
+       fi
+# KLUDGE: mv rather than cp because keeping asdf-install in that
+# directory interferes with REQUIRE, and this is done before the tar 
+# in ../asdf-module.mk.  Better solutions welcome.
+       mv asdf-install $(BUILD_ROOT)$(INSTALL_ROOT)/bin/sbcl-asdf-install
index dc8ff7c..5f8a599 100644 (file)
@@ -1,4 +1,4 @@
-;;; This is asdf: Another System Definition Facility.  1.77
+;;; This is asdf: Another System Definition Facility.  1.79
 ;;;
 ;;; Feedback, bug reports, and patches are all welcome: please mail to
 ;;; <cclan-list@lists.sf.net>.  But note first that the canonical
 
 (in-package #:asdf)
 
-(defvar *asdf-revision* (let* ((v "1.77")
+(defvar *asdf-revision* (let* ((v "1.79")
                               (colon (or (position #\: v) -1))
                               (dot (position #\. v)))
                          (and v colon dot 
 (defvar *compile-file-warnings-behaviour* :warn)
 (defvar *compile-file-failure-behaviour* #+sbcl :error #-sbcl :warn)
 
-(defvar *verbose-out* *trace-output*)
+(defvar *verbose-out* nil)
 
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;; utility stuff
@@ -803,7 +803,7 @@ system."))
                    :original-initargs args args))
         (*verbose-out*
          (if (getf args :verbose t)
-             *verbose-out*
+             *trace-output*
              (make-broadcast-stream)))
         (system (if (typep system 'component) system (find-system system)))
         (steps (traverse op system)))
@@ -1099,3 +1099,5 @@ output to *verbose-out*.  Returns the shell's exit code."
    *central-registry*)
   
   (pushnew 'module-provide-asdf sb-ext:*module-provider-functions*))
+
+(provide 'asdf)
index b4ba7ed..f785a98 100644 (file)
@@ -49,4 +49,4 @@ exec sbcl --noinform ~{~A ~}--eval \"(with-open-file (i \\\"$0\\\" :element-type
                                   (if (logand prot  #o40)  #o10)
                                   (if (logand prot   #o4)   #o1)))))
                         
-  
\ No newline at end of file
+(provide 'sb-executable)
index 33a580e..2923ab7 100644 (file)
@@ -160,3 +160,4 @@ Returns a DEFINITION-SOURCE object"))
           (sb-int:info :type :classoid (class-name o))))))
     (find-definition-source constructor)))
 
+(provide 'sb-introspect)
index 83f129d..9b2903e 100644 (file)
@@ -41,7 +41,9 @@
    is a designator for a list of pathnames to be loaded if the module
    needs to be. If PATHNAMES is not supplied, functions from the list
    *MODULE-PROVIDER-FUNCTIONS* are called in order with MODULE-NAME
-   as an argument, until one of them returns non-NIL."
+   as an argument, until one of them returns non-NIL.  User code is
+   responsible for calling PROVIDE to indicate a successful load of the
+   module."
   (let ((saved-modules (copy-list *modules*)))
     (unless (member (string module-name) *modules* :test #'string=)
       (cond (pathnames
             ;; ambiguity in standard: should we try all pathnames in the
             ;; list, or should we stop as soon as one of them calls PROVIDE?
             (dolist (ele pathnames t)
-              (load ele))
-             ;; should we do this?  Probably can't hurt, while we're
-             ;; taking the above view of "load everything"...  though
-             ;; maybe having REQUIRE directly call PROVIDE is
-             ;; aesthetically suboptimal.
-            (provide module-name))
+              (load ele)))
            (t
             (unless (some (lambda (p) (funcall p module-name))
                           sb!ext::*module-provider-functions*)
@@ -69,9 +66,8 @@
   (let ((filesys-name (string-downcase (string name))))
     (load
      (merge-pathnames (make-pathname :directory (list :relative filesys-name)
-                                    :name filesys-name)
+                                    :name filesys-name :type nil)
                      (truename (posix-getenv "SBCL_HOME")))))
-  (provide name)
   t)
 
 
index 8bf4e07..b3ef367 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.4.26"
+"0.8.4.27"