From 46e84256e0168f49ac84c3460bf9486e6bdfe001 Mon Sep 17 00:00:00 2001 From: espen Date: Mon, 6 Mar 2006 14:28:01 +0000 Subject: [PATCH] Changes required by SBCL 0.9.10 --- glib/glib.asd | 20 ++++++++++++++++++-- glib/proxy.lisp | 7 ++++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/glib/glib.asd b/glib/glib.asd index 5c18f0b..f6fd3e7 100644 --- a/glib/glib.asd +++ b/glib/glib.asd @@ -27,8 +27,24 @@ (push :glib2.8 *features*)) #+sbcl -(when (string>= (lisp-implementation-version) "0.9.8") - (push :sbcl>=0.9.8 *features*)) +(progn + (defun sbcl-version () + (let ((dot1 (position #\. (lisp-implementation-version))) + (dot2 (position #\. (lisp-implementation-version) :from-end t))) + (values + (parse-integer (lisp-implementation-version) :end dot1) + (parse-integer (lisp-implementation-version) :start (1+ dot1) :end dot2) + (parse-integer (lisp-implementation-version) :start (1+ dot2))))) + (defun sbcl-version>= (req-major req-minor req-micro) + (multiple-value-bind (major minor micro) (sbcl-version) + (or + (> major req-major) + (and (= major req-major) (> minor req-minor)) + (and (= major req-major) (= minor req-minor) (>= micro req-micro))))) + (when (sbcl-version>= 0 9 8) + (push :sbcl>=0.9.8 *features*)) + (when (sbcl-version>= 0 9 10) + (push :sbcl>=0.9.10 *features*))) #+(and sbcl (not alien-callbacks)) (eval-when (:compile-toplevel :load-toplevel :execute) diff --git a/glib/proxy.lisp b/glib/proxy.lisp index bd74e77..f43b806 100644 --- a/glib/proxy.lisp +++ b/glib/proxy.lisp @@ -20,7 +20,7 @@ ;; TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE ;; SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -;; $Id: proxy.lisp,v 1.38 2006-03-03 10:01:47 espen Exp $ +;; $Id: proxy.lisp,v 1.39 2006-03-06 14:28:03 espen Exp $ (in-package "GLIB") @@ -211,8 +211,9 @@ (let ((boundp (most-specific-slot-value direct-slotds 'boundp))) (unless (eq boundp *unbound-marker*) (setf (getf initargs :boundp) boundp))) - ;; Need this to prevent type expansion in SBCL >= 0.9.8 - (let ((type (most-specific-slot-value direct-slotds 'type))) + ;; This is needed to avoid type expansion in SBCL version >= 0.9.8 + #+sbcl>=0.9.8 + (let ((type (most-specific-slot-value direct-slotds #-sbcl>=0.9.10'type #+sbcl>=0.9.10'sb-pcl::%type))) (unless (eq type *unbound-marker*) (setf (getf initargs :type) type))) (nconc initargs (call-next-method)))) -- 2.11.0