Permalink
Browse files

Final New Description patch!

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
  • Loading branch information...
1 parent a3006fa commit e7444a938db7ad40bc8da614f217580d56462130 @drewc committed Dec 20, 2009
Showing with 4 additions and 13 deletions.
  1. +1 −13 lisp-on-lines.asd
  2. +3 −0 src/standard-descriptions/t.lisp
View
@@ -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")
@@ -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)

0 comments on commit e7444a9

Please sign in to comment.