Commit e10bb20f authored by Francois-Rene Rideau's avatar Francois-Rene Rideau

:allocation :class isn't inherited by new slot definitions, so specify it explicitly.

(I suppose the reason it isn't is because that would make for
complex decision rules in case of conflicted multiple inheritance)
parent 9af9d261
......@@ -38,11 +38,11 @@
(defclass basic-fasl-op (bundle-compile-op)
((bundle-type :initform :fasl)))
(defclass prepare-fasl-op (sideway-operation)
((sideway-operation :initform 'load-fasl-op)))
((sideway-operation :initform 'load-fasl-op :allocation :class)))
(defclass fasl-op (basic-fasl-op selfward-operation)
((selfward-operation :initform '(prepare-fasl-op #+ecl lib-op))))
((selfward-operation :initform '(prepare-fasl-op #+ecl lib-op) :allocation :class)))
(defclass load-fasl-op (basic-load-op selfward-operation)
((selfward-operation :initform '(prepare-op fasl-op))))
((selfward-operation :initform '(prepare-op fasl-op) :allocation :class)))
;; NB: since the monolithic-op's can't be sideway-operation's,
;; if we wanted lib-op, dll-op, binary-op to be sideway-operation's,
......@@ -61,7 +61,7 @@
(:documentation "compile the system and produce dynamic (.so/.dll) library for it."))
(defclass binary-op (basic-compile-op selfward-operation)
((selfward-operation :initform '(fasl-op lib-op)))
((selfward-operation :initform '(fasl-op lib-op) :allocation :class))
(:documentation "produce fasl and asd files for the system"))
(defclass monolithic-op (operation) ()) ;; operation on a system and its dependencies
......@@ -75,7 +75,7 @@
(:documentation "Abstract operation for ways to bundle the outputs of compiling *Lisp* files over all systems"))
(defclass monolithic-binary-op (monolithic-op binary-op)
((selfward-operation :initform '(monolithic-fasl-op monolithic-lib-op)))
((selfward-operation :initform '(monolithic-fasl-op monolithic-lib-op) :allocation :class))
(:documentation "produce fasl and asd files for combined system and dependencies."))
(defclass monolithic-fasl-op (monolithic-bundle-compile-op basic-fasl-op) ()
......
......@@ -30,19 +30,19 @@
(defclass concatenate-source-op (basic-concatenate-source-op) ())
(defclass load-concatenated-source-op (basic-load-concatenated-source-op)
((selfward-operation :initform '(prepare-op concatenate-source-op))))
((selfward-operation :initform '(prepare-op concatenate-source-op) :allocation :class)))
(defclass compile-concatenated-source-op (basic-compile-concatenated-source-op)
((selfward-operation :initform '(prepare-op concatenate-source-op))))
((selfward-operation :initform '(prepare-op concatenate-source-op) :allocation :class)))
(defclass load-compiled-concatenated-source-op (basic-load-compiled-concatenated-source-op)
((selfward-operation :initform '(prepare-op compile-concatenated-source-op))))
((selfward-operation :initform '(prepare-op compile-concatenated-source-op) :allocation :class)))
(defclass monolithic-concatenate-source-op (basic-concatenate-source-op monolithic-bundle-op) ())
(defclass monolithic-load-concatenated-source-op (basic-load-concatenated-source-op)
((selfward-operation :initform 'monolithic-concatenate-source-op)))
((selfward-operation :initform 'monolithic-concatenate-source-op :allocation :class)))
(defclass monolithic-compile-concatenated-source-op (basic-compile-concatenated-source-op)
((selfward-operation :initform 'monolithic-concatenate-source-op)))
((selfward-operation :initform 'monolithic-concatenate-source-op :allocation :class)))
(defclass monolithic-load-compiled-concatenated-source-op (basic-load-compiled-concatenated-source-op)
((selfward-operation :initform 'monolithic-compile-concatenated-source-op)))
((selfward-operation :initform 'monolithic-compile-concatenated-source-op :allocation :class)))
(defmethod input-files ((operation basic-concatenate-source-op) (s system))
(loop :with encoding = (or (component-encoding s) *default-encoding*)
......
......@@ -38,22 +38,22 @@
;;; Our default operations: loading into the current lisp image
(with-upgradability ()
(defclass prepare-op (upward-operation sideway-operation)
((sideway-operation :initform 'load-op)))
((sideway-operation :initform 'load-op :allocation :class)))
(defclass load-op (basic-load-op downward-operation sideway-operation selfward-operation)
;; NB: even though compile-op depends on prepare-op it is not needed-in-image-p,
;; so we need to directly depend on prepare-op for its side-effects in the current image.
((selfward-operation :initform '(prepare-op compile-op))))
((selfward-operation :initform '(prepare-op compile-op) :allocation :class)))
(defclass compile-op (basic-compile-op downward-operation selfward-operation)
((selfward-operation :initform 'prepare-op)
(downward-operation :initform 'load-op)))
((selfward-operation :initform 'prepare-op :allocation :class)
(downward-operation :initform 'load-op :allocation :class)))
(defclass prepare-source-op (upward-operation sideway-operation)
((sideway-operation :initform 'load-source-op)))
((sideway-operation :initform 'load-source-op :allocation :class)))
(defclass load-source-op (basic-load-op downward-operation selfward-operation)
((selfward-operation :initform 'prepare-source-op)))
((selfward-operation :initform 'prepare-source-op :allocation :class)))
(defclass test-op (selfward-operation)
((selfward-operation :initform 'load-op))))
((selfward-operation :initform 'load-op :allocation :class))))
;;;; prepare-op, compile-op and load-op
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment