Bug 2334

Summary: Lisp nesting exeeds max-lisp-eval-depth
Product: Sisyphus Reporter: Anton V. Boyarshinov <boyarsh>
Component: emacs-commonAssignee: Ivan Zakharyaschev <imz>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P4 CC: sbolshakov
Version: unstable   
Hardware: all   
OS: Linux   
Attachments:
Description Flags
0002334-out.gz
none
0002334-emacs-21.3-alt2-vc-cvs-registered-changes.diff none

Description Anton V. Boyarshinov 2003-03-06 16:44:11 MSK
При попытке сохранения файла (наблюдалось и в других ситуациях) выводится сообщение \&quot;Lisp nesting exeeds max-lisp-eval-depth\&quot; и операция не выполняется. Отладочная информация присоденена.

---

---

Comment 1 imz 2003-03-26 21:49:24 MSK
Скорее всего, ситуация такая:

в переменной features есть \'vc-vcs

последнее загруженное определение функции vc-cvs-registered происходит из loaddefs.el (можно посмотреть C-h f vc-cvs-registered RET).

В такой ситуации она зацикливается. Но это не совсем нормальная ситуация -- авторами ожидалось одно из двух: либо используетс определение из loaddefs.el (которое, возможно, загружает vc-vcs), либо загружен vc-cvs, в котором есть своё определение этой ф-ии, которое при таком порядке загрузки перекроет начальное из loaddefs.el.

Вообще такой хитрый код плох, потому что, как видно на Вашем случае, неустойчиво работает. Его нужно переделать.

Чтобы себе помочь, Вам нужно понять, почему у Вас loaddefs.el загружается ещё раз когда-то после загрузки vc-cvs, или почему vc-cvs, попав в список features, не занрузился по-настоящему и не переопределил функцию vc-cvs-registered.

edited on: 26-03 21:51
Comment 2 imz 2003-03-26 21:49:24 MSK
Скорее всего, ситуация такая:

в переменной features есть \'vc-vcs

последнее загруженное определение функции vc-cvs-registered происходит из loaddefs.el (можно посмотреть C-h f vc-cvs-registered RET).

В такой ситуации она зацикливается. Но это не совсем нормальная ситуация -- авторами ожидалось одно из двух: либо используетс определение из loaddefs.el (которое, возможно, загружает vc-vcs), либо загружен vc-cvs, в котором есть своё определение этой ф-ии, которое при таком порядке загрузки перекроет начальное из loaddefs.el.

Вообще такой хитрый код плох, потому что, как видно на Вашем случае, неустойчиво работает. Его нужно переделать.

Чтобы себе помочь, Вам нужно понять, почему у Вас loaddefs.el загружается ещё раз когда-то после загрузки vc-cvs, или почему vc-cvs, попав в список features, не занрузился по-настоящему и не переопределил функцию vc-cvs-registered.

edited on: 26-03 21:51
Comment 3 imz 2003-04-04 01:19:16 MSD
Определение `vc-cvs-registered\' переделано в emacs-21.3-alt2. Теперь больше не должно быть таких циклов. Пожалуйста, сообщите, если это не так.

Чтобы протестировать, можно использовать приложенный патч для / (нужно расжать /usr/share/emacs/21.3/lisp/vc-cvs.el.bz2 и пропатчить, /usr/share/emacs/21.3/lisp/vc-cvs.elc перекомпилировать или удалить).

* Tue Apr 01 2003 Ivan Zakharyaschev &lt;<a href="mailto:imz@altlinux.ru&gt" target="_new">imz@altlinux.ru&gt</a>; 21.3-alt2
&lt;...&gt;
- lisp: 
  + `vc-cvs-registered\' function: split into parts for autoloading
    without any loops (patch13);
&lt;...&gt;
Comment 4 imz 2003-04-04 01:19:16 MSD
Определение `vc-cvs-registered\' переделано в emacs-21.3-alt2. Теперь больше не должно быть таких циклов. Пожалуйста, сообщите, если это не так.

Чтобы протестировать, можно использовать приложенный патч для / (нужно расжать /usr/share/emacs/21.3/lisp/vc-cvs.el.bz2 и пропатчить, /usr/share/emacs/21.3/lisp/vc-cvs.elc перекомпилировать или удалить).

* Tue Apr 01 2003 Ivan Zakharyaschev &lt;<a href="mailto:imz@altlinux.ru&gt" target="_new">imz@altlinux.ru&gt</a>; 21.3-alt2
&lt;...&gt;
- lisp: 
  + `vc-cvs-registered\' function: split into parts for autoloading
    without any loops (patch13);
&lt;...&gt;