Loading README +26 −3 Original line number Diff line number Diff line $Id: README,v 1.33 2003/05/28 20:00:42 kevinrosenberg Exp $ -*- Text -*- $Id: README,v 1.34 2003/06/03 22:16:28 dan_b Exp $ -*- Text -*- asdf: another system definition facility Loading Loading @@ -716,9 +716,32 @@ propagate only something like ":force :recursively". '' Ideally what we actually want is some kind of criterion that says to which systems (and which operations) a :force switch will propagate. (defgeneric operation-propagates-force-p (operation component)) The problem is perhaps that 'force' is a pretty meaningless concept. How obvious is it that "load :force t" should force _compilation_? But we don't really have the right dependency setup for the user to compile :force t and expect it to work (files will not be loaded after compilation, so the compile environment for subsequent files will be emptier than it needs to be) make-sub-operation would call this What does the user actually want to do when he forces? Usually, for me, update for use with a new version of the lisp compiler. Perhaps for recovery when he suspects that something has gone wrong. Or else when he's changed compilation options or configuration in some way that's not reflected in the dependency graph. Other possible interface: have a 'revert' function akin to 'make clean' (asdf:revert 'asdf:compile-op 'araneida) would delete any files produced by 'compile-op 'araneida. Of course, it wouldn't be able to do much about stuff in the image itself. How would this work? traverse There's a difference between a module's dependencies (peers) and its components (children). Perhaps there's a similar difference in operations? For example, (load "use") depends-on (load "macros") is a peer, whereas (load "use") depends-on (compile "use") is more of a `subservient' relationship. No newline at end of file asdf.lisp +8 −6 Original line number Diff line number Diff line ;;; This is asdf: Another System Definition Facility. $Revision: 1.74 $ ;;; This is asdf: Another System Definition Facility. $Revision: 1.75 $ ;;; ;;; Feedback, bug reports, and patches are all welcome: please mail to ;;; <cclan-list@lists.sf.net>. But note first that the canonical Loading Loading @@ -94,7 +94,7 @@ (in-package #:asdf) (defvar *asdf-revision* (let* ((v "$Revision: 1.74 $") (defvar *asdf-revision* (let* ((v "$Revision: 1.75 $") (colon (or (position #\: v) -1)) (dot (position #\. v))) (and v colon dot Loading Loading @@ -1046,10 +1046,12 @@ output to *verbose-out*. Returns the shell's exit code." #+(and sbcl sbcl-hooks-require) (progn (defun module-provide-asdf (name) (let ((system (asdf:find-system name nil))) (handler-bind ((style-warning #'muffle-warning)) (let* ((*verbose-out* (make-broadcast-stream)) (system (asdf:find-system name nil))) (when system (asdf:operate 'asdf:load-op name) t))) t)))) (pushnew '(merge-pathnames "systems/" Loading Loading
README +26 −3 Original line number Diff line number Diff line $Id: README,v 1.33 2003/05/28 20:00:42 kevinrosenberg Exp $ -*- Text -*- $Id: README,v 1.34 2003/06/03 22:16:28 dan_b Exp $ -*- Text -*- asdf: another system definition facility Loading Loading @@ -716,9 +716,32 @@ propagate only something like ":force :recursively". '' Ideally what we actually want is some kind of criterion that says to which systems (and which operations) a :force switch will propagate. (defgeneric operation-propagates-force-p (operation component)) The problem is perhaps that 'force' is a pretty meaningless concept. How obvious is it that "load :force t" should force _compilation_? But we don't really have the right dependency setup for the user to compile :force t and expect it to work (files will not be loaded after compilation, so the compile environment for subsequent files will be emptier than it needs to be) make-sub-operation would call this What does the user actually want to do when he forces? Usually, for me, update for use with a new version of the lisp compiler. Perhaps for recovery when he suspects that something has gone wrong. Or else when he's changed compilation options or configuration in some way that's not reflected in the dependency graph. Other possible interface: have a 'revert' function akin to 'make clean' (asdf:revert 'asdf:compile-op 'araneida) would delete any files produced by 'compile-op 'araneida. Of course, it wouldn't be able to do much about stuff in the image itself. How would this work? traverse There's a difference between a module's dependencies (peers) and its components (children). Perhaps there's a similar difference in operations? For example, (load "use") depends-on (load "macros") is a peer, whereas (load "use") depends-on (compile "use") is more of a `subservient' relationship. No newline at end of file
asdf.lisp +8 −6 Original line number Diff line number Diff line ;;; This is asdf: Another System Definition Facility. $Revision: 1.74 $ ;;; This is asdf: Another System Definition Facility. $Revision: 1.75 $ ;;; ;;; Feedback, bug reports, and patches are all welcome: please mail to ;;; <cclan-list@lists.sf.net>. But note first that the canonical Loading Loading @@ -94,7 +94,7 @@ (in-package #:asdf) (defvar *asdf-revision* (let* ((v "$Revision: 1.74 $") (defvar *asdf-revision* (let* ((v "$Revision: 1.75 $") (colon (or (position #\: v) -1)) (dot (position #\. v))) (and v colon dot Loading Loading @@ -1046,10 +1046,12 @@ output to *verbose-out*. Returns the shell's exit code." #+(and sbcl sbcl-hooks-require) (progn (defun module-provide-asdf (name) (let ((system (asdf:find-system name nil))) (handler-bind ((style-warning #'muffle-warning)) (let* ((*verbose-out* (make-broadcast-stream)) (system (asdf:find-system name nil))) (when system (asdf:operate 'asdf:load-op name) t))) t)))) (pushnew '(merge-pathnames "systems/" Loading