Commit 1cf58c2f authored by Nikodemus Siivola's avatar Nikodemus Siivola
Browse files

OOS :VERSION support. Thanks to Robert P. Goldman.

parent 0c14c8d0
Loading
Loading
Loading
Loading
+32 −32
Original line number Original line Diff line number Diff line
;;; This is asdf: Another System Definition Facility.  $Revision: 1.96 $
;;; This is asdf: Another System Definition Facility.  $Revision: 1.97 $
;;;
;;;
;;; Feedback, bug reports, and patches are all welcome: please mail to
;;; Feedback, bug reports, and patches are all welcome: please mail to
;;; <cclan-list@lists.sf.net>.  But note first that the canonical
;;; <cclan-list@lists.sf.net>.  But note first that the canonical
@@ -109,7 +109,7 @@


(in-package #:asdf)
(in-package #:asdf)


(defvar *asdf-revision* (let* ((v "$Revision: 1.96 $")
(defvar *asdf-revision* (let* ((v "$Revision: 1.97 $")
			       (colon (or (position #\: v) -1))
			       (colon (or (position #\: v) -1))
			       (dot (position #\. v)))
			       (dot (position #\. v)))
			  (and v colon dot 
			  (and v colon dot 
@@ -828,15 +828,15 @@ system."))
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; invoking operations
;;; invoking operations


(defun operate (operation-class system &rest args)
(defun operate (operation-class system &rest args &key (verbose t) version)
  (let* ((op (apply #'make-instance operation-class
  (let* ((op (apply #'make-instance operation-class
		    :original-initargs args args))
		    :original-initargs args
	 (*verbose-out*
		    args))
	  (if (getf args :verbose t)
	 (*verbose-out* (if verbose *trace-output* (make-broadcast-stream)))
	      *trace-output*
	 (system (if (typep system 'component) system (find-system system))))
	      (make-broadcast-stream)))
    (unless (version-satisfies system version)
	 (system (if (typep system 'component) system (find-system system)))
      (error 'missing-component :requires system :version version))
	 (steps (traverse op system)))
    (let ((steps (traverse op system)))
      (with-compilation-unit ()
      (with-compilation-unit ()
	(loop for (op . component) in steps do
	(loop for (op . component) in steps do
	     (loop
	     (loop
@@ -858,7 +858,7 @@ system."))
		    (setf (gethash (type-of op)
		    (setf (gethash (type-of op)
				   (component-operation-times component))
				   (component-operation-times component))
			  (get-universal-time))
			  (get-universal-time))
		 (return))))))))
		    (return)))))))))


(defun oos (&rest args)
(defun oos (&rest args)
  "Alias of OPERATE function"
  "Alias of OPERATE function"
+30 −0
Original line number Original line Diff line number Diff line
;; -*- lisp -*-

(load "../asdf")
(setf asdf:*central-registry* '(*default-pathname-defaults*))

(defpackage :test-version-system
  (:use :cl :asdf))

(in-package :test-version-system)

(defsystem :versioned-system-1
  :pathname #.*default-pathname-defaults*
  :version "1.0")

(defsystem :versioned-system-2
  :pathname #.*default-pathname-defaults*
  :version "1.1")

(defsystem :versioned-system-3
  :pathname #.*default-pathname-defaults*
  :version "1.2")

(flet ((test (name v &optional (true t))
	 (or (eq true (asdf::version-satisfies (find-system name) v))
	     (error "no satisfaction: ~S version ~A not ~A" name v true))))
  (test :versioned-system-1 "1.0")
  (test :versioned-system-2 "1.0")
  (test :versioned-system-3 "2.0" nil))

      
 No newline at end of file
+2 −3
Original line number Original line Diff line number Diff line
;;; -*- Lisp -*-
;;; -*- Lisp -*-


(asdf:defsystem wild-module
(asdf:defsystem :wild-module
  :version "0.0"
  :version "0.0"
  :components ((:wild-module "systems"
  :components ((:wild-module "systems" :pathname "*.asd")))
                             :pathname "*.asd")))