如何通过Emacs启动时配置SBCL以使用更多RAM?

时间:2011-08-24 19:32:46

标签: emacs ram sbcl

如何配置SBCL,以便在我使用Emacs中的“M-x slime”启动它时使用的内存比默认值多?

从我在网上看到的,答案似乎是调用SBCL,传递参数“--dynamic-space-size< size in MB>”。由于我不直接调用SBCL,我不知道如何传递它。

我在Windows 7上使用GNU Emacs 22.3.1和SBCL 1.0.48。我也没有经验配置,所以新手的介绍将不胜感激。

2 个答案:

答案 0 :(得分:12)

通常的方法是将变量inferior-lisp-program的值设置为要执行的命令,包括您要提供的任何选项。我现在没有电子邮件,但这可能就足够了:

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

答案 1 :(得分:11)

我使用SLIME 1:20120420-2进行Debian挤压。 answer Kilian Foth Slime Manual: 2.5.2 Multiple Lisps在此版本中不起作用。我写信给slime-devel并被告知

  

只要你不在你的使用中使用slime-lisp-implementation   〜/ .emacs,设置inferior-lisp-program应该可以工作   如果您正在使用slime-lisp-implementation,则必须修改
  这个变量因为如果是sl,slime会忽略劣质lisp程序   slime-lisp-implementation不是零:

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

因此,如果想要检查slime-lisp-implementations的值是什么

  

只需评估变量slime-lisp-implementations,例如用M-x
  EVAL-表达。如果它没有或没有约束,则不会被使用。

事实证明,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 / site-lisp /或/ usr / share / emacs / site-lisp /

在此版本的SLIME中,slime-lisp-implementations设置为/usr/share/emacs/site-lisp/slime/slime.el

有关slime-lisp-implementations的文档,请参阅 setting heap size for SBCL for use with SLIME
或使用M-x describe-variable。

以上所有引用均来自slime-devel上的帖子{{3}}。