On Tue, 6 May 2008, Willem Broekema wrote:
On Tue, May 6, 2008 at 6:19 AM, Jason Nielsen jdn@math.carleton.ca wrote:
I can confirm that compilation fails using SBCL 1.0.16 on a Ubuntu 7.10 system with a:
"has no suitable method for STREAM-ELEMENT-TYPE, and so has fallen through to this method...."
error that crashes the whole session. You can reproduce this behaviour with the following:
(defclass foo (standard-class) ()) (defclass bar () () (:metaclass foo))
Thanks for the confirmation. Actually I hoped this would not occur in the latest version, as Nikodemus Siivola said on 2008-01-15, in reply to what seems a very similar issue reported by Pascal Costanza: "This seems to have been fixed at some point during the last 10 months": < http://article.gmane.org/gmane.lisp.steel-bank.devel/10603%3E
Custom metaclasses are crucial for CLPython. Hopefully someone feels inclined to fix this SBCL issue.
- Willem
Interesting, if you run in an sbcl console without slime:
(defclass foo (standard-class) ()) (defclass bar () () (:metaclass foo))
you get a different error message:
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" {A884551}>: The class #<STANDARD-CLASS STANDARD-OBJECT> was specified as a super-class of the class #<FOO BAR>, but the meta-classes #<STANDARD-CLASS STANDARD-CLASS> and #<STANDARD-CLASS FOO> are incompatible. Define a method for SB-MOP:VALIDATE-SUPERCLASS to avoid this error.
so thinking this may be some sort of slime/sbcl problem I decided to try to asdf-install without slime. The compilation fails much earlier with:
; registering #<SYSTEM #:LW-COMPAT {A8F48F9}> as LW-COMPAT WARNING: change in instance length of class SB-PRETTY:PRETTY-STREAM: current length: 25 compile time length: 27
debugger invoked on a SIMPLE-ERROR in thread #<THREAD "initial thread" {A884551}>: The class SB-PRETTY:PRETTY-STREAM was not changed, and there's no guarantee that the loaded code (which expected another layout) will work.
This error also doesn't mean much to me.
Jason