2011-08-24 19 views
9

Làm thế nào tôi có thể cấu hình SBCL để nó sử dụng nhiều bộ nhớ hơn mặc định khi tôi khởi động nó bằng cách sử dụng "M-x slime" trong Emacs?Làm thế nào để cấu hình SBCL để sử dụng RAM nhiều hơn khi bắt đầu thông qua Emacs?

Từ những gì tôi đã xem trực tuyến, câu trả lời dường như là để gọi SBCL, chuyển đối số "--dynamic-space-size < kích thước trong MB >". Vì tôi không gọi trực tiếp SBCL, tôi không biết cách vượt qua đối số.

Tôi đang sử dụng GNU Emacs 22.3.1 và SBCL 1.0.48 trên Windows 7. Tôi không có kinh nghiệm định cấu hình, vì vậy, phần giới thiệu của người mới sẽ được đánh giá cao.

Trả lời

10

Cách thông thường là đặt giá trị của biến inferior-lisp-program thành lệnh bạn muốn thực hiện, bao gồm bất kỳ tùy chọn nào bạn muốn cung cấp. Không có một emacs trên tôi ngay bây giờ, nhưng điều này có thể là đủ:

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

Tôi đã thay thế chương trình trước đó của tôi (setq kém hơn-lisp-program ...) ở trên từ tệp .emacs của tôi bằng biểu mẫu ở trên và nó hoạt động. Khi tôi đặt tôi thay đổi "1024" thành "2048", mặc dù, SBCL bị lỗi, nói rằng giá trị không hợp lệ. Bạn có biết phạm vi cho giá trị này không? Và tại sao tôi không thể phân bổ 2 hợp đồng biểu diễn nếu tôi muốn? > _> – sadakatsu

+0

Dường như giới hạn bộ nhớ chế độ người dùng cho quy trình 32 bit trong Windows 7 là 2GB http://msdn.microsoft.com/en-us/library/aa366778%28VS.85%29.aspx. Kích thước không gian động chỉ là một phần của bộ nhớ sbcl sử dụng (mặc dù có lẽ là lớn nhất), vì vậy 2GB kích thước không gian động sẽ đặt nó vượt quá giới hạn 2GB. Hoặc có thể có một lý do khác. –

10

Tôi đang sử dụng SLIME 1: 20120420-2 khi siết Debian. answer bởi Kilian Foth không hoạt động kể từ phiên bản này. Tôi đã viết thư cho chất nhờn-devel và được cho biết

Chừng nào bạn không sử dụng chất nhờn-lisp-triển khai trong bạn
~/emacs, thiết kém-lisp chương trình sẽ làm việc.
Nếu bạn đang sử dụng chất nhờn-lisp-triển khai, bạn phải thay đổi
biến này vì chất nhờn lờ kém-lisp-chương trình nếu
chất nhờn-lisp-hiện thực không phải là con số không:

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

So, if one wants to check what the value of slime-lisp-implementations` là

Chỉ cần đánh giá biến số slime-lisp-implementations, ví dụ: với M-x
biểu thức đánh giá. Nếu nó không có hoặc không bị ràng buộc thì nó sẽ không được sử dụng.

Khi nó quay ra, giá trị của slime-lisp-implementations đối với tôi là

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

Vì vậy, tôi đặt sau đây trong tôi ~/.emacs

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

Liên quan đến nơi này được thành lập

Nếu bạn muốn tìm ra ai hoặc bộ nào nó là giá trị nó
đã, cũng kiểm tra/etc/emacs/site-lisp/hoặc/usr/share/emacs/site-lisp/

Trong phiên bản này của chất nhờn, slime-lisp-implementations được thiết lập trong /usr/share/emacs/site-lisp/slime/slime.el.

Đối với tài liệu của slime-lisp-implementations, xem Slime Manual: 2.5.2 Multiple Lisps
hoặc sử dụng M-x mô tả biến.

Tất cả các trích dẫn ở trên đều từ chủ đề setting heap size for SBCL for use with SLIME về chất nhờn-devel.

+0

Mặc dù cũ của nó, chỉ muốn nói rằng đây là phương pháp tôi cần thiết để sử dụng ngày hôm nay. Phương pháp đầu tiên không hiệu quả với tôi. Cảm ơn bạn đã đăng nó. – DJM

+0

@DJM Bạn rất hoan nghênh. –

Các vấn đề liên quan