-
- Downloads
+(define-condition missing-dependency (system-definition-error)
- (depends-on :initform nil + (in-order-to :initform nil :initarg :in-order-to) + ;; the defsystem syntax allows us to define EQL methods with our + ;; components. We must keep track of them all so we can get rid of + ;; them if need be when the defsystem form is re-evaluated (although note that we don't yet parse the necessary syntax, but the infrastructure is ready when we do) +(defvar *visited-nodes* nil) +(defvar *visiting-nodes* nil) and logical equivalents in operation slots go away. (defmethod visit-component ((o operation) (c component)) (defmethod component-visited-p ((o operation) (c component)) (defmethod (setf visiting-component) (new-value (o operation) (c component)) (defmethod component-visiting-p ((o operation) (c component)) all get updated to use new variables +(defmethod component-depends-on ((o operation) (c component)) looks up dependencies from :depends-on slot reintroduce circularity check. also rewrote the dependency traversing to introduce new operations as and when it needs to +(defmethod component-depends-on ((operation load-system) (c component)) depends on compile-system - (create-instance-for-component c :file (second i) nil))) + (create-instance-for-component c :file i nil))) oops. thanks csr
Loading
Please register or sign in to comment