[Bese-devel] Re: more feedback

Jan Rychter jan at rychter.com
Tue Apr 13 02:56:17 UTC 2004


Ok. Having played with UCW during some airplane trips, I now know where
it gets stuck. It was looping forever in (defmethod find-frame ((s
standard-session) (frame-id string)) ...). Possibly because of some
problem with ITERATE. I have rewritten the iterate using loop:

(defmethod find-frame ((s standard-session) (frame-id string))
  "Returns the frame whose id is STEP-ID and eliminates any
  frames in the stack in the session after the frame. If no frame
  with that id exists the session's stack is left untouched and
  an error of type inexistent-frame-id is signaled."
  (loop with stack = (session.stack s)
	while stack
	when (string= (frame.id (car stack)) frame-id)
	do (progn (setf (session.stack s) stack)
		  (return-from find-frame (car stack)))
	else do (pop stack)
	finally (return-from find-frame nil)))

... which seems to have fixed the looping problem. Doing this enable me
to proceed smoothly to the next problem:

  ; Compiling LAMBDA (IT.BESE.YACLML::*TAL-ENVIROMENT* #:G16196):
  ; Compiling Top-Level Form:
  
  ; In: LAMBDA (IT.BESE.YACLML::*TAL-ENVIROMENT* #:G16196)
  
  ;   (SETF (PACKAGE #) #:G16197)
  ; --> LET* MULTIPLE-VALUE-BIND LET FUNCALL C::%FUNCALL
  ; ==>
  ;   #'(SETF PACKAGE)
  ; Warning: Undefined function (SETF PACKAGE) as the argument to FUNCTION
  ;
  ;   (PACKAGE
  ;    (IT.BESE.YACLML::LOOKUP-TAL-VARIABLE 'IT.BESE.UCW::COMPONENT
  ;                                         IT.BESE.YACLML::*TAL-ENVIROMENT*))
  ; Warning: Undefined function PACKAGE
  ; ;
  
  ; Warning: These functions are undefined:
  ;   (SETF PACKAGE) PACKAGE
  ;
  
  ; Compilation unit finished.
  ;   3 warnings
  
      1: (IT.BESE.UCW::HANDLE-REQUEST-ERROR #<UNDEFINED-FUNCTION {5A39CE2D}>)
      1: IT.BESE.UCW::HANDLE-REQUEST-ERROR returned NIL
  
  Error in KERNEL::UNDEFINED-SYMBOL-ERROR-HANDLER:  the function PACKAGE is undefined.
     [Condition of type UNDEFINED-FUNCTION]
  
  Restarts:
    0: [RETRY       ] Retry rendering ucw/admin/admin-repl.tal.
    1:                Retry rendering the component.
    2:                Retry rendering ucw/tabbed-pane.tal.
    3:                Retry rendering the component.
    4:                Retry rendering ucw/admin/server-admin-interface.tal.
    5:                Retry rendering the component.
    6:                Clearout the response and retry calling the action.
    7: [SERVER-ERROR] Send the client an internal server error page.
    8: [DESTROY     ] Destroy the process
     
  Debug  (type H for help)
     
  (KERNEL::UNDEFINED-SYMBOL-ERROR-HANDLER "<error finding name>"
                                          #.(SYSTEM:INT-SAP #x3FFFC228)
                                          #<Alien (* #) at #x3FFFBEB0>
                                          (14))
  Source:
  ; File: target:code/interr.lisp
  (ERROR 'UNDEFINED-FUNCTION :FUNCTION-NAME NAME :NAME ...)
  0] 


This probably looks obvious to the author.

As usually, I will post and now wait a couple of days, perhaps the
problem will "resolve itself", before I go into more serious debugging
:-) (ah, the joys of open source)

BTW, I am finding out that following the control flow in CLOS
applications can be a major pain. I think I need to get myself better
instrumentation for this, surely there must be a better way than adding
(format t "In yadda yadda..") statements everywhere.

--J.




More information about the bese-devel mailing list