Chisheng Huang wrote:
> 
>>This will be probably be very difficult to track down unless you can
>>find a smaller example that triggers it.
> 
> 
> Here is a much easier way to get a stack overflow:
>   1. Save the following in a file, say bug.lisp:
> 
>      ;; this is the actual code from gforeign.lisp with (GDK:FLUSH)
>      ;; replaced by (PRINT ...) and (FINISH-OUTPUT)
>      ;; 
>      (let ((interactive-eval #'ext:interactive-eval))
>        (declare (function interactive-eval))
>        (defun ext:interactive-eval (form)
>          (let ((values (multiple-value-list (funcall interactive-eval form))))
>            (print "call gdk flush")
>            (finish-output)
>            (values-list values))))
> 

FWIW, the following works for me.  I do not know what the problem is.

Ray



-- Attached file included as plaintext by Listar --
-- File: i-eval.lisp

(eval-when (compile load eval)
  (defvar old-interactive-eval #'ext:interactive-eval))

(defun ext:interactive-eval (form)
  (let ((values (multiple-value-list (funcall old-interactive-eval form))))
    (print "call gdk flush")
    (finish-output)
    (values-list values)))


Reply via email to