2010-03-03 4 views

답변

11

글쎄, 당신은 일반적으로 첫 번째 점액을 시작할 수 있습니다, 다음 (require 'swank.swank) 일부 포트 번호 port(swank.swank/start-repl port)을 대체 할 (또는 어쩌면 그것은 ... 기본적으로 확실하지 필요한 것) 그리고 당신은 그에게 점액의 두 번째 인스턴스를 연결할 수 있습니다 새로 생성 된 REPL.

나는 REPL에 연결 한 이맥스로, 지금 그것을 한 적이 처음 이맥스에서 lein swank, (swank.swank/start-repl 4006) 시작, MX는 두 번째 이맥스 (포트 번호로 4006을 제공하는)에 점액-연결, 그럼 내가 할 수있는 이 :

; first Emacs 
(def x 5) 

; second Emacs 
x ; evaluates to 5 
(def y 1234) 

; first Emacs 
y ; evaluates to 1234 

쿨! :-)

업데이트 : 오, BTW - (swank.swank/start-repl) 백그라운드에서 새 REPL을 시작하고 이 실행하기 위해 사용하는 REPL을 차단하지 않습니다. 반환 값은 nil, 그래서 ... 새로운 REPL을 죽일 방법을 잘 모르겠어요

(업데이트 2 :. 나는 더 이상에 대한 확신 제거 된 것을)

업데이트 3 : 위의 동안 방법은 명령

lein swank 4005 "localhost" :dont-close true 

포트 및 호스트 이름 인수로 허풍을 시작하는 것이 더 편리 할 수도 관계없이 원래 허풍 인스턴스가 시작되었습니다 방법의 추가 클라이언트를 연결하는 것을 가능하게하는 것을 완벽하게 일반적이다 :dont-close true을 전달해야하는 경우 명시 적으로 언급해야합니다. 4005"localhost"이 기본값입니다.

이렇게하면 나중에 Swank에서 연결을 끊고 나중에 다시 연결할 수 있으며 여러 클라이언트를 동시에 연결할 수 있습니다.

는 (난 그냥 Leiningen-시작 허풍에 재 연결을 사용하도록 설정하는 방법에 this new question에 대답하면서이 가능하다는 것을 알아 차렸다 갑자기 인정하는 :dont-close도 동시 연결을 원인이 있는지 확인하기 위해 나에게 발생 - 그것은 않습니다.)

+0

정말 대단합니다. 정확히 내가 무엇을 찾고 있었는지! –

+2

'굉장한'은 정확하게 올바른 단어입니다. :-) BTW,'swank.swank/start-repl'을 사용하여 Swank를 Clojure 앱에 임베드 할 수 있습니다. 아주 좋은 효과를 위해 그것을 사용하는 사람들에 대해 읽었습니다. 주주의 사항은 Swank가 보안에 관심이 없다는 것입니다. 따라서 REPL의 포트에 대한 액세스를 제한하는 데주의를 기울여야합니다. –

+0

위의 업데이트 3에 설명 된 기능은 상당히 최근의 린 스웽크를 필요로합니다. 자세한 내용은 제가 링크 된 다른 질문 (특히 내 답변에 대한 의견)을 참조하십시오. –