emacs 30 最新版出现 Error running timer: (void-function \(setf\ funcall\))

不知道大家在把emacs 30 更新到最新版后,运行一些代码会出现这个错误。

比如加载 lazy-load hydra 等包时就会出现这个提示。

奇怪的是 :thinking: 我也没找到 funcall setf 这些啊

不知道有没有大佬碰到了相同的问题可以协助解决?

我也遇到类似的报错,所以果断回到 Emacs-29 。

1 个赞

debug 详细信息吗

可以试下https://lists.gnu.org/archive/html/bug-gnu-emacs/2023-06/msg01482.html 里的补丁。

2 个赞

前天build新版本碰到了同样的问题,自查了一下初步确定是 lexical-binding 导致的,可能最近emacs改了相关的东西。 我装的packge比较多,错误定位到 “yasnippet.el” ,在第一行加上 -- lexical-binding: t -- 后就能解决问题。

楼上给的补丁链接应该也能解决问题,但是我没有测试。

2 个赞

@wanglm 感谢大佬补丁链接信息。

补丁已经合并到 master 了。

https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=dcd92090950929eeea3040fcac0294b7a4d839f0

2 个赞

要找 (setf (funcall …

1 个赞