Hi, I'm an beginner in the lisp and weblocks. I have managed to compile and run weblocks-demo, and am trying to grasp the concept of making an weblocks app. I'm trying with this piece of code, and there is obviously an error, but I cannot understand how can I try to at least do some debugging to see where exactly is the error. Or perhaps the error is obvious, but for someone more advanced than me?
I'm using weblocks-dev and sbcl 1.0.43. The code: (in-package :sem) ;;; http://paste.lisp.org/display/90095 ;; Define callback function to initialize new sessions (defun init-user-session (root) (let (proceed f) (with-flow root (yield #'pocetna-stranica root) (setf (widget-prefix-fn root) #'render-header) (yield (make-instance 'login :on-login #'autentikacija-korisnika :on-success (f_% (setf proceed t)) :on-cancel (reset-user-session))) (if proceed (yield (glavna-stranica)) (yield (neuspjeli-login)))))) (defun pocetna-stranica () "Pocetna stranica koja ce se iscrtavati" (setf (weblocks:widget-children root) (list (lambda (&rest args) (with-html (:strong "pocetna stranica blabla")))))) (defun render-header () (setf (widget-children root) (list (lambda (&rest args) (with-html (:strong "blabla header")))))) (defun neuspjeli-login () "U slucaju neuspjelog logina prikazat cemo ovo" (setf (widget-children root) (list (lambda (&rest args) (with-html (:strong "Ovo je neuspjela stranica neuspjeli-login ()")))))) And here is the trace on the webpage. I can understand that there is an problem with the number of arguments, but why and where exactly is beyond me. 43MAP-BACKTRACE 1. #<CLOSURE (LAMBDA (SB-DEBUG::FRAME)) {1002C282B9}> 42BACKTRACE-AS-LIST 1. 1152921504606846975 41(FAST-METHOD HANDLE-ERROR-CONDITION (WEBLOCKS-WEBAPP T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<unavailable argument> 4. invalid number of arguments: 1 40(FLET LAMBDA13) 1. invalid number of arguments: 1 39SIGNAL 1. invalid number of arguments: 1 38ERROR 1. SIMPLE-PROGRAM-ERROR 37INVALID-ARG-COUNT-ERROR-HANDLER 1. #<unavailable argument> 2. #.(SB-SYS:INT-SAP #X7FFFF3941720) 3. #<SB-ALIEN-INTERNALS:ALIEN-VALUE :SAP #X7FFFF3941280 :TYPE (* (STRUCT SB-VM::OS-CONTEXT-T-STRUCT))> 4. (84) 36INTERNAL-ERROR 1. #.(SB-SYS:INT-SAP #X7FFFF3941280) 2. #<unavailable argument> 35foreign function: call_into_lisp 34foreign function: funcall2 33foreign function: interrupt_internal_error 32foreign function: #x41414A 31POCETNA-STRANICA 30(LAMBDA (&REST ARGS/56)) 29(LAMBDA (OBJ &REST ARGS)) 1. #<CLOSURE (LAMBDA (&REST #:ARGS/56)) {1002DC73D9}> 28(FAST-METHOD WITH-WIDGET-HEADER (T T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<CLOSURE (LAMBDA (&REST #:ARGS/56)) {1002DC73D9}> 4. #<FUNCTION (LAMBDA (WEBLOCKS::OBJ &REST WEBLOCKS::ARGS)) {100356A8B9}> 27(FAST-METHOD RENDER-WIDGET (T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<CLOSURE (LAMBDA (&REST #:ARGS/56)) {1002DC73D9}> 26(FAST-METHOD RENDER-WIDGET-CHILDREN (WIDGET)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<WIDGET "root"> 25(FAST-METHOD WITH-WIDGET-HEADER (T T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<WIDGET "root"> 4. #<FUNCTION (LAMBDA (WEBLOCKS::OBJ &REST WEBLOCKS::ARGS)) {100356A8B9}> 24(FAST-METHOD RENDER-WIDGET (T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<WIDGET "root"> 23(FLET WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300) 22CALL-WITH-MUTEX 1. #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF3941B89}> 2. #S(SB-THREAD:MUTEX :NAME session lock for session #<HUNCHENTOOT:SESSION {10042C8B71}> :%OWNER #<THREAD "rendering widget #<FUNCALL-WIDGET \"dom0\">" RUNNING {1002B89E41}> :STATE 1) 3. #<THREAD "rendering widget #<FUNCALL-WIDGET \"dom0\">" RUNNING {1002B89E41}> 4. T 21(FAST-METHOD HANDLE-NORMAL-REQUEST (WEBLOCKS-WEBAPP)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<unavailable argument> 20(LAMBDA ()) 19(FAST-METHOD HANDLE-CLIENT-REQUEST (WEBLOCKS-WEBAPP)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<unavailable argument> 18(FLET doit-71) 17(FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (T)) 1. #<unavailable argument> 2. #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST #)> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) 3. #<SEM {100444C171}> 16(FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (T)) 1. #<unavailable argument> 2. #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST #)> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) 3. #<SEM {100444C171}> 15CALL-IN-WEBAPP 1. #<SEM {100444C171}> 2. #<CLOSURE (LAMBDA ()) {1002BB1979}> 14(FAST-METHOD HANDLE-CLIENT-REQUEST AROUND (WEBLOCKS-WEBAPP)) 1. #<unavailable argument> 2. #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD WEBLOCKS:HANDLE-CLIENT-REQUEST :AROUND ...)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (1)) :ARG-INFO (1)) 3. #<SEM {100444C171}> 13(FAST-METHOD HANDLE-REQUEST (ACCEPTOR REQUEST)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<WEBLOCKS-ACCEPTOR (host 127.0.0.1, port 8443)> 4. #<REQUEST {1002BA1E81}> 12(FAST-METHOD PROCESS-REQUEST (T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<REQUEST {1002BA1E81}> 11(FAST-METHOD PROCESS-CONNECTION (ACCEPTOR T)) 1. #<unavailable argument> 2. #<unavailable argument> 3. #<WEBLOCKS-ACCEPTOR (host 127.0.0.1, port 8443)> 4. #<STREAM-USOCKET {1002B871F1}> 10(FAST-METHOD PROCESS-CONNECTION (WEBLOCKS-ACCEPTOR T)) 1. #<unavailable argument> 2. #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION #)> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) 3. #<WEBLOCKS-ACCEPTOR (host 127.0.0.1, port 8443)> 4. #<STREAM-USOCKET {1002B871F1}> 9(FAST-METHOD PROCESS-CONNECTION AROUND (ACCEPTOR T)) 1. #<unavailable argument> 2. #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION (SB-PCL::FAST-METHOD HUNCHENTOOT:PROCESS-CONNECTION #)> :PV NIL :NEXT-METHOD-CALL #S(SB-PCL::FAST-METHOD-CALL :FUNCTION #<FUNCTION #> :PV NIL :NEXT-METHOD-CALL NIL :ARG-INFO (2)) :ARG-INFO (2)) 3. #<WEBLOCKS-ACCEPTOR (host 127.0.0.1, port 8443)> 4. #<STREAM-USOCKET {1002B871F1}> 8(LAMBDA ()) 7(FLET WITHOUT-INTERRUPTS-BODY-[BLOCK369]374) 6(FLET WITH-MUTEX-THUNK) 5(FLET WITHOUT-INTERRUPTS-BODY-[CALL-WITH-MUTEX]300) 4CALL-WITH-MUTEX 1. #<CLOSURE (FLET SB-THREAD::WITH-MUTEX-THUNK) {7FFFF3942CA9}> 2. #S(SB-THREAD:MUTEX :NAME thread result lock :%OWNER #<THREAD "rendering widget #<FUNCALL-WIDGET \"dom0\">" RUNNING {1002B89E41}> :STATE 1) 3. #<THREAD "rendering widget #<FUNCALL-WIDGET \"dom0\">" RUNNING {1002B89E41}> 4. T 3INITIAL-THREAD-FUNCTION 2foreign function: call_into_lisp 1foreign function: new_thread_trampoline -- You received this message because you are subscribed to the Google Groups "weblocks" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/weblocks?hl=en.
