From mboxrd@z Thu Jan 1 00:00:00 1970 From: brian powell Subject: Re: Lisp nesting exceeds `max-lisp-eval-depth'" Date: Thu, 15 Sep 2011 09:30:04 -0400 Message-ID: References: <4E71BBE0.8090404@sym.net> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from eggs.gnu.org ([140.186.70.92]:38614) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4C12-0006wV-80 for emacs-orgmode@gnu.org; Thu, 15 Sep 2011 09:30:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1R4C10-0000Qp-Nf for emacs-orgmode@gnu.org; Thu, 15 Sep 2011 09:30:08 -0400 Received: from mail-ww0-f49.google.com ([74.125.82.49]:48282) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1R4C10-0000P5-DH for emacs-orgmode@gnu.org; Thu, 15 Sep 2011 09:30:06 -0400 Received: by wwp14 with SMTP id 14so2947264wwp.30 for ; Thu, 15 Sep 2011 06:30:05 -0700 (PDT) In-Reply-To: <4E71BBE0.8090404@sym.net> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: butz@sym.net Cc: emacs-orgmode@gnu.org *"Variable: max-lisp-eval-depth This variable defines the maximum depth allowed in calls to eval, apply, and funcall before an error is signaled (with error message "Lisp nesting exceeds max-lisp-eval-depth"). This limit, with the associated error when it is exceeded, is one way that Lisp avoids infinite recursion on an ill-defined function. The depth limit counts internal uses of eval, apply, and funcall, such as for calling the functions mentioned in Lisp expressions, and recursive evaluation of function call arguments and function body forms, as well as explicit calls in Lisp code. The default value of this variable is 300. If you set it to a value less than 100, Lisp will reset it to 100 if the given value is reached. Entry to the Lisp debugger increases the value, if there is little room left, to make sure the debugger itself has room to execute. max-specpdl-size provides another limit on nesting. See section 11.3 Local Variables." **I think this is one weakness of ELISP vs. CommonLISP--but this is "by design"; EMACS has always been focused on editing, so some trade-offs are used, objects such as "buffers, windows, etc." are a paramount part of the language--and recursion is handled slightly differently, I believe this is done on purpose. **Maybe try to set the max-lisp-eval-depth variable higher? ***Maybe something like (setq max-lisp-eval-depth 3000) **Maybe load the common lisp module; which is always a good idea--but this probably won't help, just an idea. On Thu, Sep 15, 2011 at 4:48 AM, Martin Butz wrote: > Hello all, > > I get the following error message while using org-mode during the last we= eks > quite frequently (unfortunately I am not able to link it to an update of = the > installation of some lisp file); I can reproduce the behaviour by opening > the agenda buffer (C-c a a) and trying to quit with "q"; this will open a > new frame with the backtrace buffer and leave the agenda buffer in the ot= her > frame open. > > There are loads of other events, which trigger the same behaviour; can > anybody give a hint how I can solve this rather annoying problem? > > Thanks in advance > Martin > > ---- Backtrace --8<---------------------------------------------------- > > Debugger entered--Lisp error: (error "Lisp nesting exceeds > `max-lisp-eval-depth'") > =A0(- (nth 2 edges) (nth 0 edges)) > =A0(let ((edges ...)) (- (nth 2 edges) (nth 0 edges))) > =A0sr-speedbar-current-window-take-width() > =A0(let ((win-width ...)) (if (and ... ... ...) (setq sr-speedbar-width > win-width))) > =A0sr-speedbar-remember-window-width() > =A0old-delete-window(#) > > ---- following lines are repeated several times--8<-------------------- > > =A0(if (one-window-p t) (delete-frame) (old-delete-window (selected-windo= w))) > =A0(save-current-buffer (setq window (or window ...)) (select-window wind= ow) > (if (one-window-p t) (delete-frame) (old-delete-window ...))) > =A0ad-Orig-delete-window(#) > =A0old-delete-window(#) > > ---- /following lines are repeated several times--8<------------------- > > =A0(if (one-window-p t) (delete-frame) (old-delete-window (selected-windo= w))) > =A0(save-current-buffer (setq window (or window ...)) (select-window wind= ow) > (if (one-window-p t) (delete-frame) (old-delete-window ...))) > =A0ad-Orig-delete-window(nil) > =A0delete-window() > =A0(and (not (eq org-agenda-window-setup ...)) (not (one-window-p)) > (delete-window)) > =A0(if (eq org-agenda-window-setup (quote other-frame)) (progn (kill-buff= er > buf) (org-agenda-reset-markers) (org-columns-remove-overlays) (setq > org-agenda-archives-mode nil) (delete-frame)) (and (not ...) (not ...) > (delete-window)) (kill-buffer buf) (org-agenda-reset-markers) > (org-columns-remove-overlays) (setq org-agenda-archives-mode nil)) > =A0(let ((buf ...)) (if (eq org-agenda-window-setup ...) (progn ... ... .= .. > ... ...) (and ... ... ...) (kill-buffer buf) (org-agenda-reset-markers) > (org-columns-remove-overlays) (setq org-agenda-archives-mode nil))) > =A0(if org-agenda-columns-active (org-columns-quit) (let (...) (if ... ..= . ... > ... ... ... ...)) (and org-agenda-restore-windows-after-quit (not ...) > org-pre-agenda-window-conf (set-window-configuration > org-pre-agenda-window-conf))) > =A0org-agenda-quit() > =A0call-interactively(org-agenda-quit nil nil) > > ---- /Backtrace --8<--------------------------------------------------- > > -- > ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ > sym.net =A0|| =A0butz & siefer gbr =A0|| =A050670 koeln =A0|| =A0hansarin= g 78 > phone +49(0)221/3762591 - =A0twitter.com/symnet =A0- mail butz@sym.net > ~~~~~~~~~~~~~~~~~~ www.sym.net | www.moodalis.de ~~~~~~~~~~~~~~~~ > >