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.

Reply via email to