2011-08-24 21 views
9

如何配置SBCL,使其在使用Emacs中的「M-x slime」啓動時使用的內存大於默認值?如何配置SBCL以在通過Emacs啓動時使用更多的RAM?

從我在網上看到的,答案似乎是調用SBCL,通過參數「--dynamic-space-size < size in MB >」。由於我不直接調用SBCL,我不知道如何傳遞它的參數。

我在Windows 7上使用GNU Emacs 22.3.1和SBCL 1.0.48。我沒有經驗配置,所以新手的介紹將不勝感激。

回答

10

通常的方法是將變量inferior-lisp-program的值設置爲您要執行的命令,包括您想要給出的任何選項。沒有現在就我一個emacs的,但是這可能是不夠的:

(setq inferior-lisp-program "sbcl --dynamic-space-size 1024") 
+0

我用上面的表單替換了我以前的(setq inferior-lisp-program ...)以及我的.emacs文件,它工作正常。當我設置我改變了「1024」到「2048」,但是,SBCL墜毀了,說這個值是無效的。你碰巧知道這個值的範圍?如果我想要,爲什麼我不能分配2個演出? > _> – sadakatsu

+0

它看起來像Windows 7中的32位進程的用戶模式內存限制是2GB http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx。動態空間大小隻是sbcl使用的內存的一部分(儘管可能是最大的),所以2GB的動態空間大小將超過2GB的限制。或者也許還有另一個原因。 –

10

我用泥1:20120420-2 Debian的擠壓。該版本的answerKilian Foth不起作用。我寫信給煤泥-devel的和你不使用你的
〜/的.emacs煤泥口齒不清的實現,設置劣-LISP程序應該工作被告知

只要。
如果您使用煤泥,口齒不清的實現,必須修改
這個變量,因爲泥忽略遜色,LISP程序,如果
煤泥口齒不清的實現不是nil:

(setq slime-lisp-implementations                                     
     '((sbcl ("sbcl" "--dynamic-space-size" "1024")))) 

So, if one wants to check what the value of slime-lisp-implementation` is

只需評估變量slime-lisp-implementations,例如與M-x
eval-expression。如果它是零或不綁定,那麼它將不會被使用。

事實證明,中slime-lisp-implementations對我來說,價值是

(("sbcl" ("sbcl")) ("clisp" ("clisp")) ("ecl" ("ecl")) ("cmucl" ("cmucl"))) 

所以,我把我的~/.emacs

(setq slime-lisp-implementations '(("sbcl" ("sbcl" "--dynamic-space-size" "1024")) ("clisp" ("clisp")) ("ecl" ("ecl")) ("cmucl" ("cmucl")))) 

下面至於到這個設置

如果你想弄清楚誰或什麼套它的價值就
了,也檢查/ etc/emacs的/網站口齒不清/或/ usr /共享/ Emacs的/網站口齒不清/

在此版本的泥,slime-lisp-implementations/usr/share/emacs/site-lisp/slime/slime.el設置。

對於slime-lisp-implementations文檔,請參閱 Slime Manual: 2.5.2 Multiple Lisps
或使用M-X描述變量。

以上所有引述來自slime-devel上的線程setting heap size for SBCL for use with SLIME

+0

雖然它的老,只是想說,這是我今天需要使用的方法。第一種方法對我不起作用。感謝您發佈它。 – DJM

+0

@DJM非常歡迎。 –

相關問題