\dhead{gf}{effective-method-class @<method> @> @<class>}}
\end{describe*}
-\begin{describe}{gf}{message-effective-method-class @<message> @> @<class>}
+\begin{describe}{gf}
+ {sod-message-effective-method-class @<message> @> @<class>}
\end{describe}
\begin{describe}{gf}{primary-method-class @<message> @> @<class>}
:key #'sod-method-message
:test-not #'eql))
(sod-class-precedence-list class))))
- (make-instance (message-effective-method-class message)
+ (make-instance (sod-message-effective-method-class message)
:message message
:class class
:direct-methods direct-methods)))
;;; vtmsgs
+(export '(vtmsgs vtmsgs-class vtmsgs-subclass
+ vtmsgs-chain-head vtmsgs-chain-tail vtmsgs-entries))
(defclass vtmsgs ()
((%class :initarg :class :type sod-class :reader vtmsgs-class)
(subclass :initarg :subclass :type sod-class :reader vtmsgs-subclass)
;;;--------------------------------------------------------------------------
;;; Classes and protocol.
-(export '(aggregating-message message-combination))
+(export '(aggregating-message
+ sod-message-combination sod-message-kernel-function))
(defclass aggregating-message (simple-message)
((combination :initarg :combination :type keyword
- :reader message-combination)
- (kernel-function :type function :reader message-kernel-function))
+ :reader sod-message-combination)
+ (kernel-function :type function :reader sod-message-kernel-function))
(:documentation
"Message class for aggregating method combinations.
(with-slots (combination) message
(check-aggregating-message-type message combination type)))
-(defmethod message-effective-method-class ((message aggregating-message))
+(defmethod sod-message-effective-method-class ((message aggregating-message))
'aggregating-effective-method)
(defmethod simple-method-body
((method aggregating-effective-method) codegen target)
(let ((argument-names (effective-method-basic-argument-names method))
(primary-methods (effective-method-primary-methods method)))
- (funcall (message-kernel-function (effective-method-message method))
+ (funcall (sod-message-kernel-function (effective-method-message method))
codegen target argument-names primary-methods)))
(defmethod shared-initialize :before
(defmethod primary-method-class ((message standard-message))
'delegating-direct-method)
-(defmethod message-effective-method-class ((message standard-message))
+(defmethod sod-message-effective-method-class ((message standard-message))
'standard-effective-method)
(defmethod simple-method-body
order. (Either that or you have to add an overriding method to
`compute-sod-effective-method'."))
-(export 'message-effective-method-class)
-(defgeneric message-effective-method-class (message)
+(export 'sod-message-effective-method-class)
+(defgeneric sod-message-effective-method-class (message)
(:documentation
"Return the effective method class for the given MESSAGE.
"Return the effective method when a CLASS instance receives MESSAGE.
The default method constructs an instance of the message's chosen
- `message-effective-method-class', passing the MESSAGE, the CLASS and the
- list of applicable methods as initargs to `make-instance'."))
+ `sod-message-effective-method-class', passing the MESSAGE, the CLASS and
+ the list of applicable methods as initargs to `make-instance'."))
(export 'compute-effective-methods)
(defgeneric compute-effective-methods (class)
(defmethod make-load-form ((fragment c-fragment) &optional environment)
(make-load-form-saving-slots fragment :environment environment))
-(export 'code-fragment-item)
+(export '(code-fragment-item code-fragment code-fragment-reason
+ code-fragment-name code-fragment-constraints))
(defclass code-fragment-item ()
((fragment :initarg :fragment :type c-fragment :reader code-fragment)
(reason :initarg :reason :type keyword :reader code-fragment-reason)
;;;--------------------------------------------------------------------------
;;; Class declarations.
+(export 'class-item)
+
(defun parse-class-body (scanner pset name supers)
;; class-body ::= `{' class-item* `}'
;;