2012-08-09 24 views
6

Tôi thường thấy tự bắt đầu một quá trình chạy dài từ REPL và sau đó muốn tôi có thể tiếp tục sử dụng REPL cho các tác vụ khác trong khi nó đang chạy. Tôi có thể sử dụng chất nhờn để làm nền cho luồng hiện tại hoặc bắt đầu một chuỗi điều khiển REPL mới không? Bắt đầu một bộ đệm REPL bổ sung cũng sẽ là tốt.Tôi có thể chạy một chuỗi đang chạy trong Slime (Swank Emacs)

Trả lời

2

Chỉnh sửa:

Hm, tôi bằng cách nào đó đã bỏ lỡ thẻ Clojure về câu hỏi của bạn. Tôi sẽ rất ngạc nhiên nếu giải pháp bên dưới làm việc cho Clojure, vì bạn có thể biết, cộng đồng Clojure không may (ít nhất là đối với những người dùng Clojure CL) duy trì phiên bản Slime của riêng mình. Tôi sẽ không xóa câu trả lời, bởi vì nó có thể hữu ích cho các lập trình viên CL tìm kiếm chức năng này. Trừ khi có một giải pháp tương tự cho Clojure, cho phép nhiều REPL được ghép kênh trên một ổ cắm, bạn có thể chỉ cần khởi động một máy chủ Swank thứ hai bằng tay (từ bộ đệm *inferior-lisp*) và kết nối với nó qua slime-connect như một giải pháp thay thế. (Không thể kiểm tra máy ATM này, kể từ khi tôi đã ngừng sử dụng Slime với Clojure một thời gian trước đây.)


Bạn thử slime-mrepl contrib? Tôi đã không thực sự sử dụng nó bản thân mình, nhưng một thử nghiệm nhanh làm việc cho tôi dưới CCL/Win/Emacs 24.

Tôi đã thử nghiệm nó như thế này: M-x slime, nhập (sleep 10) trong REPL, switch đệm, M-x slime-new-mrepl.

2

Vui lòng tha thứ cho tôi vì câu trả lời cụ thể và không có chất nhờn; ở phía trên nó sẽ làm việc với bất kỳ REPL clojure nào.

Khi tôi biết trước tôi bắt đầu một nhiệm vụ chạy dài từ REPL sau đó tôi bắt đầu tính toán bằng cách sử dụng future và kiểm tra với future-done? trước khi bỏ qua.

+0

vẫn hữu ích ngay cả khi đó không phải là câu trả lời trực tiếp cho câu hỏi này, cảm ơn –

1

này có thể không trả lời câu hỏi của bạn, nhưng nó có thể hữu ích để nhận ra rằng chừng nào (slime-communication-style):spawn, đánh giá thực hiện bằng C-x C-e luôn đẻ trứng chủ đề riêng của họ và có thể chạy song song với bất cứ điều gì đang xảy ra trong thread REPL. Đầu ra (từ println, v.v.) sẽ xuất hiện trong bộ đệm REPL.

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