[cl-store-devel] Sort of a bug

Gustavo gugamilare at gmail.com
Sun Sep 2 04:10:16 UTC 2007


I hope this project is still running because I really liked it. If it is not
active anymore, I could (maybe in a month) enhance and try to do at least
what is in the file "todo" and create a way to serialize functions...

I use SBCL under Gentoo Linux. Well, I use the gentoo specific version of
SBCL, so, when you call (lisp-implementation-version), it returns "
1.0.9-gentoo". Inside the file cl-store/sbcl/custom.lisp, there is this
piece of code:

;; From 0.9.6.25 sb-kernel::%defstruct
;; takes a source location as a third argument.
(eval-when (:compile-toplevel)
  (labels ((make-version (string)
             (map-into (make-list 4 :initial-element 0)
                       #'parse-integer
                       (asdf::split string nil '(#\.))))
           (version>= (v1 v2)
             (loop for x in (make-version v1)
                   for y in (make-version v2)
                   when (> x y) :do (return t)
                   when (> y x) :do (return nil)
                   finally (return t))))
    (when (version>= (lisp-implementation-version)
                     "0.9.6.25")
      (pushnew :defstruct-has-source-location *features*))))

So, the parse-integer signals an error (because of the "-gentoo" text inside
the version). Well, I don't know if you like it but this solves the problem:

;; From 0.9.6.25 sb-kernel::%defstruct
;; takes a source location as a third argument.
(eval-when (:compile-toplevel)
  (labels ((make-version (string)
             (map-into (make-list 4 :initial-element 0)
                       #'(lambda (str)
                           (parse-integer str :junk-allowed t))
                       (asdf::split string nil '(#\.))))
           (version>= (v1 v2)
             (loop for x in (make-version v1)
                   for y in (make-version v2)
                   when (> x y) :do (return t)
                   when (> y x) :do (return nil)
                   finally (return t))))
    (when (version>= (lisp-implementation-version)
                     "0.9.6.25")
      (pushnew :defstruct-has-source-location *features*))))
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cl-store-devel/attachments/20070902/f53b917f/attachment.html>


More information about the cl-store-devel mailing list