Lisp 错误:使用 cl- 函数时出现错误“Lisp 嵌套超出‘max-lisp-eval-depth’”

Lisp 错误:使用 cl- 函数时出现错误“Lisp 嵌套超出‘max-lisp-eval-depth’”

我最近搬了电脑昨天升级到 Emacs 24.3(从 24.2 开始)。从那时起,我一直收到本质上是堆栈溢出错误的信息:

Debugger entered--Lisp error: (error "Lisp nesting exceeds `max-lisp-eval-depth'")
  position(...)
  apply(position ...)
  position(...)
  apply(position ...)

  position(nil (#<buffer ssa.org> #<buffer  *Minibuf-1*> #<buffer  *Minibuf-0*> #<buffer  *code-conversion-work*> #<buffer  *Echo Area 0*> #<buffer  *Echo Area 1*> #<buffer  *doc-view conversion output*> #<buffer  *autoload*> #<buffer  *canonical address*> #<buffer  *extract address components*> #<buffer *Messages*>) :if #[(buf) "rq\210 \203\n    =\2051\306!\f\232\2051\307\310\311
!\"\312 \313\314\315#,)\207" [buf mode major-mode default-directory topdir name expand-file-name format "^%s\\(?:<[0-9]+>\\)?$" regexp-quote buffer-name nil t string-match start string regexp inhibit-changing-match-data] 4])
  apply(position nil (#<buffer ssa.org> #<buffer  *Minibuf-1*> #<buffer  *Minibuf-0*> #<buffer  *code-conversion-work*> #<buffer  *Echo Area 0*> #<buffer  *Echo Area 1*> #<buffer  *doc-view conversion output*> #<buffer  *autoload*> #<buffer  *canonical address*> #<buffer  *extract address components*> #<buffer *Messages*>) (:if #[(buf) "rq\210  \203\n    =\2051\306!\f\232\2051\307\310\311
!\"\312 \313\314\315#,)\207" [buf mode major-mode default-directory topdir name expand-file-name format "^%s\\(?:<[0-9]+>\\)?$" regexp-quote buffer-name nil t string-match start string regexp inhibit-changing-match-data] 4]))

  ...
  ...
  ...

  position(...)
  apply(position ...)
  position(...)
  apply(position ...)
  cl-position(...)
  apply(cl-position ...)
  cl-find(...)
  apply(cl-find ...)
  cl-find-if(...)
  magit-mode-get-buffer("*magit: %t*" magit-status-mode nil t)
  magit-mode-get-buffer-create("*magit: %t*" magit-status-mode)
  magit-mode-display-buffer("*magit: %t*" magit-status-mode pop-to-buffer)
  magit-status("/Users/sean/Dropbox/smp/")
  call-interactively(magit-status)
  (lambda nil (interactive) (call-interactively (quote magit-status)))()
  call-interactively((lambda nil (interactive) (call-interactively (quote magit-status))) nil nil)

我怀疑这是 24.3 中的捆绑包的问题,cl​​因为我最近在另一个包中看到过这个问题(虽然我不记得是哪一个了)。

  • 这是升级时常见的问题吗?
  • 我该如何解决这个问题?

完整日志文件(有点大)可用这里对于任何想要检查它的人来说,但我希望我已经在这篇文章中提供了必要的细节。

答案1

这看起来像是一个循环定义的问题。

我认为问题在于您使用以前版本的 emacs 编译了 magit;您应该使用新的 emacs 重新编译 magit,问题就会消失。

答案2

我认为这是 cl-lib 的问题。如果您已经通过 package.el 安装了 cl-lib,则应卸载 cl-​​lib 并重试。Emacs 24.3 捆绑了 cl-lib.el。cl-lib 包适用于较旧的 Emacs(< 24.3)。

相关内容