From 9d3ec6a4523ac66c73bdb427d288499463a5c429 Mon Sep 17 00:00:00 2001 From: "Ryan C. Thompson" Date: Mon, 18 Jun 2012 16:39:42 -0700 Subject: [PATCH] Prevent stack overflow on very long command lists. In "el-get-start-process-list", increase "max-specpdl-size" by 100 for each command in in the list. This allows "el-get-start-process-list" (but not other functions) to recurse indefinitely. This is needed for the emacs-goodies-el recipe, which generates many build commands and will overflow the default of max-specpdl-size during the build. --- el-get-core.el | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/el-get-core.el b/el-get-core.el index f48be825..86f5f966 100644 --- a/el-get-core.el +++ b/el-get-core.el @@ -388,7 +388,12 @@ makes it easier to conditionally splice a command into the list. (error "el-get: %s %s" cname errorm)) (when cbuf (kill-buffer cbuf)) (if next - (el-get-start-process-list package next final-func) + ;; Prevent stack overflow on very long command + ;; lists. This allows + ;; `el-get-start-process-list' (but not other + ;; functions) to recurse indefinitely. + (let ((max-specpdl-size (+ 100 max-specpdl-size))) + (el-get-start-process-list package next final-func)) (when (functionp final-func) (funcall final-func package))))) ;; async case