From: Nikodemus S. <nik...@ra...> - 2008-01-15 15:54:05
|
On 4/18/07, Pascal Costanza <pc...@p-...> wrote: This seems to have been fixed at some point during the last 10 months (I'm hoping that it just isn't masked by something else.) Can you confirm that you don't see this anymore with current SBCL? Cheers, -- Nikodemus > I am on Mac OS X 10.4.9 / PowerPC G4, using SBCL 1.0.4. > > When I try to compile-file (from the SBCL listener!) the following > code, I get the very strange error message below: > > (defpackage test > (:use :common-lisp :sb-mop)) > > (in-package :test) > > (eval-when (:compile-toplevel :load-toplevel :execute) > (defclass mc-top (standard-class) > ((some-attribute :initarg :some-attribute > :reader some-attribute))) > > (defmethod validate-superclass > ((class mc-top) > (superclass standard-class)) > t) > > (defclass mc-bottom (mc-top) > () > (:default-initargs :some-attribute 'foo)) > > #+(or) > (defmethod shared-initialize :after > ((class mc-bottom) slot-names &key some-attribute) > (declare (ignore slot-names some-attribute)))) > > (defclass test-class () > () > (:metaclass mc-bottom)) > > (defgeneric test (object)) > > (defmethod test ((object test-class)) > (print 'bar)) > > > * (compile-file "test.lisp") > > ; compiling file "/Users/costanza/Muell/test.lisp" (written 18 APR > 2007 12:05:17 AM): > ; compiling (DEFPACKAGE TEST ...) > ; compiling (IN-PACKAGE :TEST) > ; compiling (DEFCLASS MC-TOP ...) > ; compiling (DEFMETHOD VALIDATE-SUPERCLASS ...) > ; compiling (DEFCLASS MC-BOTTOM ...) > ; compiling (DEFCLASS TEST-CLASS ...) > ; compiling (DEFGENERIC TEST ...) > ; compiling (DEFMETHOD TEST ...) > debugger invoked on a SIMPLE-ERROR: > The stream > #<SB-SYS:FD-STREAM for "file /Users/costanza/Muell/ > test.fasl" {11D4F001}> has > no suitable method for STREAM-ELEMENT-TYPE, and so has fallen > through to this > method. If you think that this is a bug, please report it to the > applicable > authority (bugs in SBCL itself should go to the mailing lists > referenced from > <http://www.sbcl.org/>). > > > Apparently, there is something wrong with correctly detecting valid > initialization arguments for metaclasses (i.e., indirect subclasses > of standard-class). When I "force" validity of the :some-attribute > argument (for example by removing #+(or) before the method definition > for shared-initialize), the file compiles just fine and the resulting > code seems to be correct. > > So probably two things need to be fixed: > > - The error message should be "improved." ;) > - The validity check for initialization arguments should be fixed. > > > [I hope I am not missing something...] > > > Cheers, > Pascal > > -- > Pascal Costanza, mailto:pc...@p-..., http://p-cos.net > Vrije Universiteit Brussel, Programming Technology Lab > Pleinlaan 2, B-1050 Brussel, Belgium > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by DB2 Express > Download DB2 Express C - the FREE version of DB2 express and take > control of your XML. No limits. Just data. Click to get it now. > http://sourceforge.net/powerbar/db2/ > _______________________________________________ > Sbcl-devel mailing list > Sbc...@li... > https://lists.sourceforge.net/lists/listinfo/sbcl-devel > |