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