[hunchentoot-devel] Problems with SBCL on MacOS

Cyrus Harmon ch-tbnl at bobobeach.com
Mon Mar 24 04:25:00 UTC 2008


comments below...

On Mar 23, 2008, at 8:25 PM, Jens Teich wrote:

> MacOS X 10.5.2
> Aquamacs (latest) with GNU Emacs 22.1.91.2
> SBCL  1.0.12
>
> When loading :hunchentoot-test, the following happens. I'm puzzled  
> because ASDF says compile failed,
> but a fasl file is written.
>
> When I start the webserver with this fasl-file, strange things  
> happen. The test-site works after
> (start.server :port 4242), but the REPL prompt doesn't appear again.  
> Looks like an infinite loop.
>
> Jens

I'd start with the WARNING here:

> CL-USER> (asdf :hunchentoot-test)
> ; compiling file "/Users/jensteich/Lisp/hunchentoot-0.15.3/port- 
> sbcl.lisp" (written 13 FEB 2008 05:02:18 PM):
> ; compiling (IN-PACKAGE :HUNCHENTOOT)
> ; compiling (WARN "Without thread support, this library is only  
> useful for development.")
> ;
> ; caught WARNING:
> ;   Without thread support, this library is only useful for  
> development.

and suggest that you build and install a threaded version of SBCL for  
running hunchentoot.

What happens down below is that the debugger gets entered because ASDF  
(correctly or not; I guess this point is arguable) treats this WARNING  
as an error and enters the debugger to let you know that you're  
compilation didn't succeed without a warning.

I'd suggest getting the SBCL source, enabling threads, building a  
threaded SBCL and using that for your hunchentoot development.

Good luck,

Cyrus

> ; compiling (DEFMACRO DEFCONSTANT ...)
> ; compiling (DEFUN MAKE-LOCK ...)
> ; compiling (DEFMACRO WITH-LOCK ...)
> ; compiling (DEFVAR *INCF-MUTEX* ...)
> ; compiling (DEFMACRO ATOMIC-INCF ...)
> ; compiling (DEFUN ENSURED-SLEEP-MILLIS ...)
> ;
> ; caught STYLE-WARNING:
> ;   redefining ENSURED-SLEEP-MILLIS in DEFUN
>
> ; compiling (COMMON-LISP:HANDLER-CASE (SB-EXT:WITH-TIMEOUT  
> 1.e-7 ...) ...); in: LAMBDA NIL
> ;     (SB-KERNEL:FLOAT-WAIT)
> ;
> ; note: deleting unreachable code
>
> ;     (HUNCHENTOOT::ENSURED-SLEEP-MILLIS 5)
> ;
> ; note: deleting unreachable code
>
> ; file: /Users/jensteich/Lisp/hunchentoot-0.15.3/port-sbcl.lisp
> ; in: EVAL-WHEN (:COMPILE-TOPLEVEL :LOAD-TOPLEVEL :EXECUTE)
> ;     (HUNCHENTOOT::ENSURED-SLEEP-MILLIS 5)
> ;
> ; note: deleting unreachable code
>
> ; compiling (DEFMACRO WITH-TIMEOUT ...)
> ; compiling (DEFUN PROCESS-RUN-FUNCTION ...)
> ; compiling (DEFUN PROCESS-KILL ...)
> ; compiling (DEFINE-SYMBOL-MACRO *CURRENT-PROCESS* ...)
> ; compiling (DEFUN PROCESS-ALLOW-SCHEDULING ...)
> ; compiling (DEFUN RESOLVE-HOSTNAME ...)
> ; compiling (DEFUN START-UP-SERVER ...)
> ; compiling (DEFUN FORMAT-ADDRESS ...)
> ; compiling (DEFUN MAKE-SOCKET-STREAM ...)
> ; compiling (WHEN (FIND-SYMBOL "*DEBUG-PRINT-VARIABLE- 
> ALIST*" ...) ...)
> ; compiling (DEFUN GET-BACKTRACE ...)
>
> ; /Users/jensteich/Lisp/hunchentoot-0.15.3/port-sbcl.fasl written
> ; compilation finished in 0:00:00
> WARNING:
>   COMPILE-FILE warned while performing #<COMPILE-OP NIL {13F28EE1}> on
>   #<CL-SOURCE-FILE "port-sbcl" {12106F59}>.
>
>
> erred while invoking #<COMPILE-OP NIL {13F28EE1}> on
> #<CL-SOURCE-FILE "port-sbcl" {12106F59}>
>   [Condition of type ASDF:COMPILE-FAILED]
>
> Restarts:
>  0: [RETRY] Retry performing #<ASDF:COMPILE-OP NIL {13F28EE1}> on  
> #<ASDF:CL-SOURCE-FILE "port-sbcl" {12106F59}>.
>  1: [ACCEPT] Continue, treating #<ASDF:COMPILE-OP NIL {13F28EE1}> on  
> #<ASDF:CL-SOURCE-FILE "port-sbcl" {12106F59}> as having been  
> successful.
>  2: [ABORT-REQUEST] Abort handling SLIME request.
>  3: [ABORT] Exit debugger, returning to top level.
>
> Backtrace:
>  0: ((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL- 
> SOURCE-FILE)) #<unavailable argument> #<unavailable argument>  
> #<ASDF:COMPILE-OP NIL {13F28EE1}> #<ASDF:CL-SOURCE-FILE "port- 
> sbcl" {12106F59}>)
>      Locals:
>        SB-DEBUG::ARG-0 = :<NOT-AVAILABLE>
>        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
>        SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {13F28EE1}>
>        SB-DEBUG::ARG-3 = #<ASDF:CL-SOURCE-FILE "port-sbcl" {12106F59}>
>  1: ((LAMBDA (SB-PCL::.PV. SB-PCL::.NEXT-METHOD-CALL. SB-PCL::.ARG0.  
> SB-PCL::.ARG1.)) #<unavailable argument> #<unavailable argument>  
> #<ASDF:COMPILE-OP NIL {13F28EE1}> #<ASDF:CL-SOURCE-FILE "port- 
> sbcl" {12106F59}>)
>      Locals:
>        SB-DEBUG::ARG-0 = :<NOT-AVAILABLE>
>        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
>        SB-DEBUG::ARG-2 = #<ASDF:COMPILE-OP NIL {13F28EE1}>
>        SB-DEBUG::ARG-3 = #<ASDF:CL-SOURCE-FILE "port-sbcl" {12106F59}>
>  2: ((LAMBDA NIL))
>      Locals:
>  3: ((FLET SB-THREAD::WITH-RECURSIVE-LOCK-THUNK))
>      Locals:
>  4: (SB-C::%WITH-COMPILATION-UNIT #<CLOSURE (LAMBDA NIL) {1175099D}>)
>      Locals:
>        SB-DEBUG::ARG-0 = 1
>        SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA NIL) {1175099D}>
>  5: (ASDF:OPERATE ASDF:LOAD-OP :HUNCHENTOOT-TEST)
>      Locals:
>        SB-DEBUG::ARG-0 = 2
>        SB-DEBUG::ARG-1 = ASDF:LOAD-OP
>        SB-DEBUG::ARG-2 = :HUNCHENTOOT-TEST
>  6: (SB-INT:SIMPLE-EVAL-IN-LEXENV (ASDF :HUNCHENTOOT-TEST) #<NULL- 
> LEXENV>)
>      Locals:
>        SB-DEBUG::ARG-0 = (ASDF :HUNCHENTOOT-TEST)
>        SB-DEBUG::ARG-1 = #<NULL-LEXENV>
>  7: (SWANK::EVAL-REGION "(asdf :hunchentoot-test)
> " T)
>      Locals:
>        SWANK::PACKAGE-UPDATE-P = T
>        STRING = "(asdf :hunchentoot-test)
> "
>  8: ((LAMBDA NIL))
>      Locals:
>  9: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-SYNTAX-HOOKS (T))  
> #<unused argument> #<unused argument> #<CLOSURE (LAMBDA NIL)  
> {13F10B5D}>)
>      Locals:
>        SWANK-BACKEND::FN = #<CLOSURE (LAMBDA NIL) {13F10B5D}>
> 10: (SWANK::CALL-WITH-BUFFER-SYNTAX #<CLOSURE (LAMBDA NIL)  
> {13F10B5D}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<CLOSURE (LAMBDA NIL) {13F10B5D}>
> 11: (SB-INT:SIMPLE-EVAL-IN-LEXENV (SWANK:LISTENER-EVAL  
> "(asdf :hunchentoot-test)
> ") #<NULL-LEXENV>)
>      Locals:
>        SB-DEBUG::ARG-0 = (SWANK:LISTENER-EVAL "(asdf :hunchentoot- 
> test)
> ")
>        SB-DEBUG::ARG-1 = #<NULL-LEXENV>
> 12: ((LAMBDA NIL))
>      Locals:
> 13: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T  
> T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- 
> DEBUGGER-HOOK> #<CLOSURE (LAMBDA NIL) {13F1004D}>)
>      Locals:
>        SWANK-BACKEND::FUN = #<CLOSURE (LAMBDA NIL) {13F1004D}>
>        SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
> 14: ((LAMBDA NIL))
>      Locals:
> 15: ((SB-PCL::FAST-METHOD SWANK-BACKEND:CALL-WITH-DEBUGGER-HOOK (T  
> T)) #<unused argument> #<unused argument> #<FUNCTION SWANK:SWANK- 
> DEBUGGER-HOOK> #<FUNCTION (LAMBDA NIL) {11A2F69D}>)
>      Locals:
>        SWANK-BACKEND::FUN = #<FUNCTION (LAMBDA NIL) {11A2F69D}>
>        SWANK-BACKEND::HOOK = #<FUNCTION SWANK:SWANK-DEBUGGER-HOOK>
> 16: (SWANK::CALL-WITH-REDIRECTED-IO #<SWANK::CONNECTION {11EDB211}>  
> #<CLOSURE (LAMBDA NIL) {13F0DC7D}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SWANK::CONNECTION {11EDB211}>
>        SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA NIL) {13F0DC7D}>
> 17: (SWANK::CALL-WITH-CONNECTION #<SWANK::CONNECTION {11EDB211}>  
> #<FUNCTION (LAMBDA NIL) {11A2F69D}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SWANK::CONNECTION {11EDB211}>
>        SB-DEBUG::ARG-1 = #<FUNCTION (LAMBDA NIL) {11A2F69D}>
> 18: (SWANK::HANDLE-REQUEST #<SWANK::CONNECTION {11EDB211}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SWANK::CONNECTION {11EDB211}>
> 19: (SWANK::PROCESS-AVAILABLE-INPUT #<SB-SYS:FD-STREAM for "a  
> socket" {11ED0B81}> #<CLOSURE (LAMBDA NIL) {13F0DC3D}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "a socket" {11ED0B81}>
>        SB-DEBUG::ARG-1 = #<CLOSURE (LAMBDA NIL) {13F0DC3D}>
> 20: ((FLET SWANK::HANDLER))
>      Locals:
> 21: ((LAMBDA (SWANK-BACKEND::_)) #<unused argument>)
>      Locals:
>        SWANK-BACKEND::FN = #<CLOSURE (FLET SWANK::HANDLER) {1205871D}>
> 22: (SB-IMPL::SUB-SERVE-EVENT NIL NIL NIL)
>      Locals:
>        SB-DEBUG::ARG-0 = NIL
>        SB-DEBUG::ARG-1 = NIL
>        SB-DEBUG::ARG-2 = NIL
> 23: (SB-SYS:WAIT-UNTIL-FD-USABLE 0 :INPUT NIL)
>      Locals:
>        SB-IMPL::DIRECTION = :INPUT
>        SB-IMPL::FD = 0
>        TIMEOUT = NIL
> 24: (SB-IMPL::REFILL-INPUT-BUFFER #<SB-SYS:FD-STREAM for "standard  
> input" {122792D1}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "standard  
> input" {122792D1}>
> 25: (SB-IMPL::INPUT-CHAR/UTF-8 #<SB-SYS:FD-STREAM for "standard  
> input" {122792D1}> NIL #:EOF-OBJECT)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SB-SYS:FD-STREAM for "standard  
> input" {122792D1}>
>        SB-DEBUG::ARG-1 = NIL
>        SB-DEBUG::ARG-2 = #:EOF-OBJECT
>      Catch-tags:
>        SB-IMPL::EOF-INPUT-CATCHER
> 26: (READ-CHAR #<SB-SYS:FD-STREAM for "standard input" {122792D1}>  
> NIL #:EOF-OBJECT #<unused argument>)
>      Locals:
>        SB-IMPL::EOF-ERROR-P = NIL
>        SB-IMPL::EOF-VALUE = #:EOF-OBJECT
>        STREAM = #<SB-SYS:FD-STREAM for "standard input" {122792D1}>
> 27: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {100BCC61}>  
> NIL #:EOF-OBJECT #<unused argument>)
>      Locals:
>        SB-IMPL::EOF-ERROR-P = NIL
>        SB-IMPL::EOF-VALUE = #:EOF-OBJECT
>        STREAM = #<SYNONYM-STREAM :SYMBOL SB-SYS:*STDIN* {100BCC61}>
> 28: (READ-CHAR #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- 
> INPUT* {11A5D7E1}> NIL #:EOF-OBJECT #<unused argument>)
>      Locals:
>        SB-IMPL::EOF-ERROR-P = NIL
>        SB-IMPL::EOF-VALUE = #:EOF-OBJECT
>        STREAM = #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- 
> INPUT* {11A5D7E1}>
> 29: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL  
> SWANK::*CURRENT-STANDARD-INPUT* {11A5D7E1}> NIL (NIL) T)
>      Locals:
>        SB-IMPL::EOF-ERROR-P = NIL
>        SB-IMPL::EOF-VALUE = (NIL)
>        SB-IMPL::RECURSIVEP = T
>        STREAM = #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- 
> INPUT* {11A5D7E1}>
> 30: (READ-PRESERVING-WHITESPACE #<SYNONYM-STREAM :SYMBOL  
> SWANK::*CURRENT-STANDARD-INPUT* {11A5D7E1}> NIL (NIL) NIL)
>      Locals:
>        SB-IMPL::EOF-ERROR-P = NIL
>        SB-IMPL::EOF-VALUE = (NIL)
>        SB-IMPL::RECURSIVEP = NIL
>        STREAM = #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- 
> INPUT* {11A5D7E1}>
> 31: (READ #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD-INPUT*  
> {11A5D7E1}> NIL (NIL) NIL)
>      Locals:
>        SB-IMPL::EOF-ERROR-P = NIL
>        SB-IMPL::EOF-VALUE = (NIL)
>        SB-IMPL::RECURSIVEP = NIL
>        STREAM = #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT-STANDARD- 
> INPUT* {11A5D7E1}>
> 32: (SB-IMPL::REPL-READ-FORM-FUN #<SYNONYM-STREAM :SYMBOL  
> SWANK::*CURRENT-STANDARD-INPUT* {11A5D7E1}> #<unavailable argument>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<SYNONYM-STREAM :SYMBOL SWANK::*CURRENT- 
> STANDARD-INPUT* {11A5D7E1}>
>        SB-DEBUG::ARG-1 = :<NOT-AVAILABLE>
> 33: (SB-IMPL::REPL-FUN NIL)
>      Locals:
>        SB-DEBUG::ARG-0 = NIL
> 34: (SB-IMPL::REPL-FUN NIL)
>      Locals:
>        SB-DEBUG::ARG-0 = 1
>        SB-DEBUG::ARG-1 = NIL
> 35: ((LAMBDA NIL))
>      Locals:
>      Catch-tags:
>        SB-INT:TOPLEVEL-CATCHER
> 36: ((LAMBDA NIL))
>      Locals:
>        SB-DEBUG::ARG-0 = 0
> 37: (SB-IMPL::%WITH-REBOUND-IO-SYNTAX #<CLOSURE (LAMBDA NIL)  
> {11BF7F0D}>)
>      Locals:
>        SB-DEBUG::ARG-0 = #<CLOSURE (LAMBDA NIL) {11BF7F0D}>
> 38: (SB-IMPL::TOPLEVEL-REPL NIL)
>      Locals:
>        SB-DEBUG::ARG-0 = NIL
> 39: (SB-IMPL::TOPLEVEL-INIT)
>      Locals:
> 40: ((LABELS SB-IMPL::RESTART-LISP))
>      Locals:
>      Catch-tags:
>        SB-IMPL::%END-OF-THE-WORLD
>
>
>
>
> _______________________________________________
> tbnl-devel site list
> tbnl-devel at common-lisp.net
> http://common-lisp.net/mailman/listinfo/tbnl-devel




More information about the Tbnl-devel mailing list