Final New Description patch!
authordrewc <drewc@tech.coop>
Sun, 20 Dec 2009 23:39:40 +0000 (15:39 -0800)
committerdrewc <drewc@tech.coop>
Sun, 20 Dec 2009 23:39:40 +0000 (15:39 -0800)
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

lisp-on-lines.asd
src/standard-descriptions/t.lisp

index 591a728..c6f5a74 100644 (file)
@@ -36,17 +36,9 @@ WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
 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")                              
@@ -59,10 +51,6 @@ OTHER DEALINGS IN THE SOFTWARE."
                                                            :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")
index 223261f..cdef9d7 100644 (file)
@@ -1,5 +1,8 @@
 (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)