projects
/
hyperobject.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
r4514: Auto commit for Debian build
[hyperobject.git]
/
mop.lisp
diff --git
a/mop.lisp
b/mop.lisp
index 2ee684bc1c14eaf43b4a28c7421f01c2e9d6e6f0..10f329ef02e6d6c040c36fdefd34eecfb9562da5 100644
(file)
--- a/
mop.lisp
+++ b/
mop.lisp
@@
-11,7
+11,7
@@
;;;; in Text, HTML, and XML formats. This includes hyperlinking
;;;; capability and sub-objects.
;;;;
;;;; in Text, HTML, and XML formats. This includes hyperlinking
;;;; capability and sub-objects.
;;;;
-;;;; $Id: mop.lisp,v 1.
49 2003/04/14 17:10:54
kevin Exp $
+;;;; $Id: mop.lisp,v 1.
54 2003/04/16 19:56:33
kevin Exp $
;;;;
;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
;;;;
;;;;
;;;; This file is Copyright (c) 2000-2002 by Kevin M. Rosenberg
;;;;
@@
-84,7
+84,7
@@
(defclass hyperlink ()
((name :type symbol :initform nil :initarg :name :reader name)
(defclass hyperlink ()
((name :type symbol :initform nil :initarg :name :reader name)
- (lookup :type
function
:initform nil :initarg :lookup :reader lookup)
+ (lookup :type
(or function symbol)
:initform nil :initarg :lookup :reader lookup)
(link-parameters :type list :initform nil :initarg :link-parameters
:reader link-parameters)))
(link-parameters :type list :initform nil :initarg :link-parameters
:reader link-parameters)))
@@
-191,8
+191,15
@@
(t
t)))
(t
t)))
+(eval-when (:compile-toplevel :load-toplevel :execute)
+ (when (>= (length (generic-function-lambda-list
+ (ensure-generic-function
+ 'compute-effective-slot-definition)))
+ 3)
+ (push :ho-named-cesd-fun cl:*features*)))
+
(defmethod compute-effective-slot-definition :around ((cl hyperobject-class)
(defmethod compute-effective-slot-definition :around ((cl hyperobject-class)
- #
-(or scl)
name
+ #
+ho-named-cesd-fun
name
dsds)
#+allegro (declare (ignore name))
(let* ((dsd (car dsds))
dsds)
#+allegro (declare (ignore name))
(let* ((dsd (car dsds))
@@
-216,7
+223,11
@@
:value-constraint (slot-value dsd 'value-constraint)
:null-allowed (slot-value dsd 'null-allowed)
ia)))))
:value-constraint (slot-value dsd 'value-constraint)
:null-allowed (slot-value dsd 'null-allowed)
ia)))))
-
+
+
+#+ho-named-cesd-fun
+(setq cl:*features* (delete :ho-named-cesd-fun cl:*features*))
+
(defun value-type-to-lisp-type (value-type)
(case (if (atom value-type)
value-type
(defun value-type-to-lisp-type (value-type)
(case (if (atom value-type)
value-type
@@
-284,7
+295,7
@@
(defun intern-eql-specializer (slot)
`(eql ,slot))
(defun intern-eql-specializer (slot)
`(eql ,slot))
-#+(or sbcl
cmu
lispworks)
+#+(or sbcl lispworks)
(defun ensure-lazy-reader (class-name slot-name reader &rest reader-keys)
(let ((keys nil)
(gf (ensure-generic-function 'slot-unbound)))
(defun ensure-lazy-reader (class-name slot-name reader &rest reader-keys)
(let ((keys nil)
(gf (ensure-generic-function 'slot-unbound)))
@@
-332,12
+343,12
@@
nil
(cdr subobj-def)))))
(unless (eq (lookup subobject) t)
nil
(cdr subobj-def)))))
(unless (eq (lookup subobject) t)
- #-(or sbcl
cmu
lispworks)
+ #-(or sbcl lispworks)
(eval
`(hyperobject::def-lazy-reader ,(name-class subobject)
,(name-slot subobject) ,(lookup subobject)
,@(lookup-keys subobject)))
(eval
`(hyperobject::def-lazy-reader ,(name-class subobject)
,(name-slot subobject) ,(lookup subobject)
,@(lookup-keys subobject)))
- #+(or sbcl
cmu
lispworks)
+ #+(or sbcl lispworks)
(apply #'ensure-lazy-reader
(name-class subobject) (name-slot subobject) (lookup subobject) (lookup-keys subobject))
)
(apply #'ensure-lazy-reader
(name-class subobject) (name-slot subobject) (lookup subobject) (lookup-keys subobject))
)