Hello Lars,
For now, I can not find or reproduce your problem on SBCL 1.0.14. I take it you have removed your fasl files before re-compiling? To my (untrained) eyes, the backtrace is pretty much useless, and the error message makes it sound like some kind of internal compiler error -- searching the web for it only yields a single hit discussing an old SBCL bug. Are you on an uncommon platform? (I think me and Attila both use Linux.)
Regards, Marijn
2008/2/26 Lars Rune Nøstdal larsnostdal@gmail.com:
Hi, It seems the patch "Sun Nov 11 17:31:19 CET 2007 attila.lendvai@gmail.com" is causing some problems when compiling Postmodern on SBCL. As soon as I unpull the patch using darcs the problem goes away and Postmodern compiles. I tried both SBCL-1.0.12 and latest SBCL from CVS -- same problem:
CL-USER> (require :postmodern) .. .. ; compiling file "/home/lars/programming/lisp/postmodern/cl-postgres/protocol.lisp" (written 26 FEB 2008 11:08:47 AM): ; compiling (IN-PACKAGE :CL-POSTGRES) ; compiling (DEFINE-CONDITION PROTOCOL-ERROR ...) ; compiling (DEFMACRO MESSAGE-CASE ...) ; compiling (DEFUN READ-BYTE-DELIMITED ...) ; compiling (DEFUN GET-ERROR ...) ; compiling (DEFINE-CONDITION POSTGRESQL-WARNING ...) ; compiling (DEFUN GET-WARNING ...) ; compiling (DEFUN AUTHENTICATE ...)
Here is the backtrace:
The value NIL is not of type SB-C::NODE. [Condition of type TYPE-ERROR]
Restarts: 0: [RETRY] Retry performing #<ASDF:COMPILE-OP NIL {B1C9CA9}> on #<ASDF:CL-SOURCE-FILE "protocol" {B1C9D59}>. 1: [ACCEPT] Continue, treating #<ASDF:COMPILE-OP NIL {B1C9CA9}> on #<ASDF:CL-SOURCE-FILE "protocol" {B1C9D59}> as having been successful. 2: [ABORT] Return to SLIME's top level. 3: [TERMINATE-THREAD] Terminate this thread (#<THREAD "repl-thread" {B20BD39}>)
Backtrace: 0: (SB-C::NODE-HOME-LAMBDA NIL)[:EXTERNAL] 1: ((LABELS SB-C::FLOOD) #<SB-C::PHYSENV :LAMBDA #<SB-C::CLAMBDA :%SOURCE-NAME SB-C::.ANONYMOUS. :%DEBUG-NAME (SB-C::TL-XEP CL-POSTGRES::AUTHENTICATE) :KIND :EXTERNAL :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (#:G251 #:G252 #:G253 #:G254 #:G255) {B3DB279}> :CLOSURE (#<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID STREAM (read-only)> {B38D641}>) {C484619}>) 2: ((LABELS SB-C::FLOOD) #<SB-C::PHYSENV :LAMBDA #<SB-C::CLAMBDA :%SOURCE-NAME CL-POSTGRES::AUTHENTICATE :%DEBUG-NAME NIL :KIND NIL :TYPE #<SB-KERNEL:FUN-TYPE (FUNCTION # #)> :WHERE-FROM :DEFINED :VARS (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) {B363571}> :CLOSURE (#<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID STREAM (read-only)> {B38D641}>) {C484649}>) 3: ((LABELS SB-C::FLOOD) #<SB-C::PHYSENV :LAMBDA #<SB-C::CLAMBDA :%SOURCE-NAME #1=#:G245 :%DEBUG-NAME (LABELS #1#) :KIND NIL :TYPE #<SB-KERNEL:FUN-TYPE (FUNCTION NIL *)> :WHERE-FROM :DEFINED :VARS NIL {B3B5E79}> :CLOSURE (#<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID STREAM (read-only)> {B38D641}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::PARAMETERS :TYPE #<SB-KERNEL:STRUCTURE-CLASSOID HASH-TABLE> {B3639F9}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET {B363399}>) {C484631}>) 4: (SB-C::CLOSE-OVER #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID STREAM (read-only)> {B38D641}> #<SB-C::PHYSENV :LAMBDA #<SB-C::CLAMBDA :%SOURCE-NAME #1=#:G245 :%DEBUG-NAME (LABELS #1#) :KIND NIL :TYPE #<SB-KERNEL:FUN-TYPE (FUNCTION NIL *)> :WHERE-FROM :DEFINED :VARS NIL {B3B5E79}> :CLOSURE (#<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID STREAM (read-only)> {B38D641}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::PARAMETERS :TYPE #<SB-KERNEL:STRUCTURE-CLASSOID HASH-TABLE> {B3639F9}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET {B363399}>) {C484631}> #<SB-C::PHYSENV :LAMBDA #<SB-C::CLAMBDA :%SOURCE-NAME #1=#:G209 :%DEBUG-NAME (LABELS #1#) :KIND NIL :TYPE #<SB-KERNEL:FUN-TYPE (FUNCTION NIL #)> :WHERE-FROM :DEFINED :VARS NIL {B368459}> :CLOSURE (#<SB-C::LAMBDA-VAR :%SOURCE-NAME #:G206 :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID STREAM (read-only)> {B367E51}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::PASSWORD {B363449}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::USER {B3633F1}> #<SB-C::LAMBDA-VAR :%SOURCE-NAME CL-POSTGRES::SOCKET {B363399}>) {C484661}>) 5: (SB-C::%ADD-LAMBDA-VARS-TO-CLOSURES #<SB-C::CLAMBDA :%SOURCE-NAME CL-POSTGRES::READ-UINT4 :%DEBUG-NAME NIL :KIND :LET :TYPE #<SB-KERNEL:BUILT-IN-CLASSOID FUNCTION (read-only)> :WHERE-FROM :DEFINED :VARS (CL-POSTGRES::SOCKET) {B38D7E1}>) 6: (SB-C::ADD-LAMBDA-VARS-AND-LET-VARS-TO-CLOSURES #<SB-C::CLAMBDA :%SOURCE-NAME #1=#:G209 :%DEBUG-NAME (LABELS #1#) :KIND NIL :TYPE #<SB-KERNEL:FUN-TYPE (FUNCTION NIL (VALUES NULL &OPTIONAL))> :WHERE-FROM :DEFINED :VARS NIL {B368459}>) 7: (SB-C::PHYSENV-ANALYZE #<SB-C:COMPONENT :NAME SB-IMPL::ANSI-STREAM-P {B4FB671}>) 8: (SB-C::COMPILE-COMPONENT #<SB-C:COMPONENT :NAME SB-IMPL::ANSI-STREAM-P {B4FB671}>) 9: (SB-C::%COMPILE (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) (BLOCK CL-POSTGRES::AUTHENTICATE (LET # # # # # ...))) #<SB-FASL:FASL-OUTPUT "/home/lars/programming/lisp/postmodern/cl-postgres/protocol.fasl">)[:EXTERNAL] 10: (SB-C::FOPCOMPILE-FUNCTION (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) (BLOCK CL-POSTGRES::AUTHENTICATE (LET # # # # # ...))) (#1=(SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE # #) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION)) #2=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) #1#) (PROGN (EVAL-WHEN # #) #2#) SB-C::ORIGINAL-SOURCE-START 0 7) T) 11: (SB-C::FOPCOMPILE (SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) (BLOCK CL-POSTGRES::AUTHENTICATE #)) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION)) (#1=(SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE # #) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION)) #2=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) #1#) (PROGN (EVAL-WHEN # #) #2#) SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 12: (SB-C::CONVERT-AND-MAYBE-COMPILE (SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) (BLOCK CL-POSTGRES::AUTHENTICATE #)) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION)) (#1=(SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE # #) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION)) #2=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) #1#) (PROGN (EVAL-WHEN # #) #2#) SB-C::ORIGINAL-SOURCE-START 0 7)) 13: ((FLET SB-C::DEFAULT-PROCESSOR) (SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) (BLOCK CL-POSTGRES::AUTHENTICATE #)) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION))) 14: (SB-C::PROCESS-TOPLEVEL-FORM (SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) (BLOCK CL-POSTGRES::AUTHENTICATE #)) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION)) (#1=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN # # "Try to initiate a connection. Caller should close the socket if this raises a condition." # #)) (PROGN (EVAL-WHEN # #) #1#) SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 15: (SB-C::PROCESS-TOPLEVEL-PROGN ((SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE # #) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION))) (#1=(EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN # # "Try to initiate a connection. Caller should close the socket if this raises a condition." # #)) (PROGN (EVAL-WHEN # #) #1#) SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 16: (SB-C::PROCESS-TOPLEVEL-FORM (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN (QUOTE CL-POSTGRES::AUTHENTICATE) (SB-INT:NAMED-LAMBDA CL-POSTGRES::AUTHENTICATE # #) "Try to initiate a connection. Caller should close the socket if this raises a condition." (QUOTE NIL) (SB-C:SOURCE-LOCATION))) ((PROGN (EVAL-WHEN # #) (EVAL-WHEN # #)) SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 17: (SB-C::PROCESS-TOPLEVEL-PROGN ((EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN # # T)) (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN # # "Try to initiate a connection. Caller should close the socket if this raises a condition." # #))) ((PROGN (EVAL-WHEN # #) (EVAL-WHEN # #)) SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 18: (SB-C::PROCESS-TOPLEVEL-FORM (PROGN (EVAL-WHEN (:COMPILE-TOPLEVEL) (SB-C:%COMPILER-DEFUN # # T)) (EVAL-WHEN (:LOAD-TOPLEVEL :EXECUTE) (SB-IMPL::%DEFUN # # "Try to initiate a connection. Caller should close the socket if this raises a condition." # #))) (SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 19: ((FLET SB-C::DEFAULT-PROCESSOR) (DEFUN CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) "Try to initiate a connection. Caller should close the socket if this raises a condition." (LET (#) (CL-POSTGRES::STARTUP-MESSAGE CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::DATABASE) (FORCE-OUTPUT CL-POSTGRES::SOCKET) (LOOP #) (LOOP #) ...))) 20: (SB-C::PROCESS-TOPLEVEL-FORM (DEFUN CL-POSTGRES::AUTHENTICATE (CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::PASSWORD CL-POSTGRES::DATABASE) "Try to initiate a connection. Caller should close the socket if this raises a condition." (LET (#) (CL-POSTGRES::STARTUP-MESSAGE CL-POSTGRES::SOCKET CL-POSTGRES::USER CL-POSTGRES::DATABASE) (FORCE-OUTPUT CL-POSTGRES::SOCKET) (LOOP #) (LOOP #) ...)) (SB-C::ORIGINAL-SOURCE-START 0 7) NIL) 21: (SB-C::SUB-SUB-COMPILE-FILE #<SB-C::SOURCE-INFO >) 22: ((LAMBDA NIL)) 23: (SB-C::%WITH-COMPILATION-UNIT #<CLOSURE (LAMBDA NIL) {C43F43D}>)[:EXTERNAL] 24: (SB-C::SUB-COMPILE-FILE #<SB-C::SOURCE-INFO >) 25: (COMPILE-FILE #P"/home/lars/programming/lisp/postmodern/cl-postgres/protocol.lisp")[:EXTERNAL]
-- Lars Rune Nøstdal http://nostdal.org/
postmodern-devel mailing list postmodern-devel@common-lisp.net http://common-lisp.net/cgi-bin/mailman/listinfo/postmodern-devel