Bug 2334 - Lisp nesting exeeds max-lisp-eval-depth
Summary: Lisp nesting exeeds max-lisp-eval-depth
Status: CLOSED FIXED
Alias: None
Product: Sisyphus
Classification: Development
Component: emacs-common (show other bugs)
Version: unstable
Hardware: all Linux
: P4 major
Assignee: Ivan Zakharyaschev
QA Contact:
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-03-06 16:44 MSK by Anton V. Boyarshinov
Modified: 2005-09-04 21:43 MSD (History)
1 user (show)

See Also:


Attachments
0002334-out.gz (985 bytes, application/gzip)
2003-03-06 16:44 MSK, Anton V. Boyarshinov
no flags Details
0002334-emacs-21.3-alt2-vc-cvs-registered-changes.diff (33.76 KB, application/octet-stream)
2003-04-04 01:12 MSD, Anton V. Boyarshinov
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Anton V. Boyarshinov 2003-03-06 16:44:11 MSK
При попытке сохранения файла (наблюдалось и в других ситуациях) выводится сообщение \"Lisp nesting exeeds max-lisp-eval-depth\" и операция не выполняется. Отладочная информация присоденена.

---

---

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;