Hi,
I just installed the latest git snapshot of closure-common. I ran into the following error while loading it -
-- x --
(LAMBDA (RUNES:ROD RUNES::INDEX) (BLOCK RUNES:RUNE (CHAR RUNES:ROD RUNES::INDEX))) is not a valid function spec [Condition of type TYPE-ERROR]
Restarts: 0: [NIL] retry the compilation of /Users/chaitanya/lisp/libs/site/closure-common/ystream.lisp 1: [NIL] continue compiling /Users/chaitanya/lisp/libs/site/closure-common/ystream.lisp but generate no output file 2: [RETRY] Retry performing #<ASDF:COMPILE-OP NIL @ #x113a195a> on #<CLOSURE-COMMON-SYSTEM::CLOSURE-SOURCE-FILE "ystream" @ #x103f0822>. 3: [ACCEPT] Continue, treating #<ASDF:COMPILE-OP NIL @ #x113a195a> on #<CLOSURE-COMMON-SYSTEM::CLOSURE-SOURCE-FILE "ystream" @ #x103f0822> as having been successful. 4: [ABORT-REQUEST] Abort handling SLIME request. 5: [ABORT] Abort entirely from this (lisp) process.
Backtrace: 0: (SWANK::DEBUG-IN-EMACS #<TYPE-ERROR @ #x114e80b2>) 1: (SWANK:SWANK-DEBUGGER-HOOK #<TYPE-ERROR @ #x114e80b2> #<Function SWANK-DEBUGGER-HOOK>) 2: (ERROR TYPE-ERROR :DATUM #1=(LAMBDA (RUNES:ROD RUNES::INDEX) (BLOCK RUNES:RUNE (CHAR RUNES:ROD RUNES::INDEX))) :EXPECTED-TYPE EXCL::FUNCTION-NAME :FORMAT-CONTROL "~s is not a valid function spec" :FORMAT-ARGUMENTS (#1#)) 3: (FBOUNDP (LAMBDA (RUNES:ROD RUNES::INDEX) (BLOCK RUNES:RUNE (CHAR RUNES:ROD RUNES::INDEX)))) 4: (SYSTEM:FUNCTION-INFORMATION (LAMBDA (RUNES:ROD RUNES::INDEX) (BLOCK RUNES:RUNE (CHAR RUNES:ROD RUNES::INDEX))) #<Augmentable COMPILER environment 1 1 1 1 1 15>) 5: (GET-SETF-EXPANSION ((LAMBDA (RUNES:ROD RUNES::INDEX) (BLOCK RUNES:RUNE #)) RUNES::TMP 0) #<Augmentable COMPILER environment 1 1 1 1 1 15>) 6: (SETF (SETF (RUNES:RUNE RUNES::TMP 0) RUNES:RUNE) #<Augmentable COMPILER environment 1 1 1 1 1 15>) 7: (FUNCALL #<Function SETF @ #x100dce22> (SETF (RUNES:RUNE RUNES::TMP 0) RUNES:RUNE) #<Augmentable COMPILER environment 1 1 1 1 1 15>) 8: (COMPILER::PA-COMPILE (SETF (RUNES:RUNE RUNES::TMP 0) RUNES:RUNE) NIL)
-- x --
The error occurred while Lisp was compiling YSTREAM-WRITE-ESCAPABLE-RUNE in ystream.lisp. To me the problem seems that RUNE is defined as a compiler-macro and its also being used as a SETF form. I am not sure whether its a problem with my Lisp or closure-common. I am using ACL 8.0 on Intel Mac OS X.
It loads fine on SBCL, but DEFINLINE doesn't define any compiler macros in SBCL. Maybe that's why it loads fine here and breaks on ACL?
Chaitanya