This patch implements a new description and attribute protocol that is clearer and faster compiling than the previous.
Run-time performance has not been tested, but has probably suffered somewhat.
THIS BREAKS OLD CODE!!!
The class STANDARD-ATTRIBUTE has been split up and minimized, and define-description has been replaced with defdescription. A compatibility module for defdescription has been integrated, but requres that you shadow STANDARD-ATTRIBUTE as follows :
;;; something like this in you package definition :
(:shadow :instance :standard-attribute)
;;;; then something like this in your code :
(define-layered-class standard-attribute (lol::define-description-attribute) ())
If that doesn't work, it's a bug, and needs to be reported.
darcs-hash:
20091220233940-39164-
96a301fff9235cd2efb55591efaad46321a8df6e.gz
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
OTHER DEALINGS IN THE SOFTWARE."
:components ((:static-file "lisp-on-lines.asd")
-
(:module :src
- :components (#-lol-mao(:file "contextl-hacks")
-
- (:file "packages")
-
-
+ :components ((:file "packages")
(:file "utilities")
-
-
- #+lol-mao
(:module :mao
:components ((:file "simple-plist-attribute")
(:file "attribute")
:serial t))
:serial t)
(:file "display")
- #-lol-mao(:file "attribute")
- #-lol-mao(:file "description-class")
- #-lol-mao(:file "description")
-
(:module :standard-descriptions
:components ((:file "t")
(:file "inline")
(in-package :lisp-on-lines)
+(defmethod described-object ((attribute standard-attribute))
+ (described-object (attribute-description attribute)))
+
(define-description T ()
((label :label nil
:function (lambda (object)