From 61fd5f068d2a5dc42c88731d672730ba6aa9a9ea Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 10 May 2004 11:14:11 +0000 Subject: [PATCH] r9299: 10 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * sql/kmr-mop.lisp: Explicitly check slot order and store as a cl:*feature* --- ChangeLog | 4 ++++ sql/kmr-mop.lisp | 14 ++++++++++++-- sql/metaclasses.lisp | 2 +- 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8dc9bb4..ee9f43b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +10 May 2004 Kevin Rosenberg (kevin@rosenberg.net) + * sql/kmr-mop.lisp: Explicitly check slot order and + store as a cl:*feature* + 9 May 2004 Kevin Rosenberg (kevin@rosenberg.net) * Version 2.10.15 * LATEST-TEST-RESULTS: results with current version diff --git a/sql/kmr-mop.lisp b/sql/kmr-mop.lisp index d18cec1..e82ac66 100644 --- a/sql/kmr-mop.lisp +++ b/sql/kmr-mop.lisp @@ -46,9 +46,19 @@ (declare (ignore metaclass slot-name)) ) +(eval-when (:compile-toplevel :load-toplevel :execute) + (defclass %slot-order-test-class () + ((a) + (b))) + (finalize-inheritance (find-class '%slot-order-test-class)) + (let ((slots (class-slots (find-class '%slot-order-test-class)))) + (ecase (slot-definition-name (first slots)) + (a) + (b (pushnew :mop-slot-order-reversed cl:*features*))))) + (defun ordered-class-slots (class) - #+(or cmu18 sbcl) (class-slots class) - #-(or cmu18 sbcl) (reverse (class-slots class))) + #+mop-slot-order-reversed (class-slots class) + #-mop-slot-order-reversed (reverse (class-slots class))) ;; Lispworks has symbol for slot rather than the slot instance (defun %svuc-slot-name (slot) diff --git a/sql/metaclasses.lisp b/sql/metaclasses.lisp index 5586dab..1ab11f4 100644 --- a/sql/metaclasses.lisp +++ b/sql/metaclasses.lisp @@ -362,7 +362,7 @@ column definition in the database.") (defun compute-class-precedence-list (class) (class-precedence-list class)))) -#-(or sbcl cmu18) +#-mop-slot-order-reversed (defmethod compute-slots ((class standard-db-class)) "Need to sort order of class slots so they are the same across implementations." -- 2.34.1