2012-05-05 1 views
4

나는 clojure에서 게임을 개발하는 것을 어지럽 혔고, 코드에서 핫 스왑은 정말 흥분했습니다.swank clojure와 "hot swapping"코드와 충돌 내성

나는 swac clojure와 emacs를 lein-swank 플러그인과 함께 사용 해왔다.

내 주요 문제는 오타의 문제였습니다.

(if (> (rand) .5) (println "yay") (println "boo"))

(. 내가 .50.5을하지 작성한한다)

: 나는 REPL로를 보내 Ctrl-C를 Ctrl-C를을, 기능을 업데이트 작은 오류를 확인한 다음 명중 말

그런 경우 전체 프로그램이 단순히 충돌하고 화상을 입기 때문에 모든 것을 다시 시작해야합니다. 핫 스와핑은 훌륭하지만, 작은 오류라도 만들 수 없다면 요점은 무엇입니까?

여기 워크 플로우는 정확히 무엇입니까? 내가 놓친 게 있니? 아니면 이러한 작은 오류에 대해 탄력성을 더 강하게 만드는 방법이 있습니까? (조금 어려울 지 모르지만 최선의 일은 단순히 이전 근무 상태로 재설정하는 것이라고 상상합니다.)

고마워!

답변

2

프로그램이 "크래시하고 레코딩해서는 안됩니다"- 예외가 발생하여 디버거에 던져 넣어야합니다.이 디버거는 Q (sldb-quit)으로 닫을 수 있습니다. 디버거를 닫은 후에는 프로그램이 정상적으로 계속 실행됩니다. 이것이 일어나지 않으면 SLIME 구성이 어딘지에 깨졌습니다.

0

저는 개인적으로 C-C-C보다 C-M-x를 권장합니다. 나는 어느 하나가 당신이 겪고있는 문제를 가져야한다고 생각하지 않는다. 그래서 전환은 그것을 고칠 수 없다.

+0

정말요? 실수로 우연히 C-M-x와 같은 속성에 액세스하는 코드가 생기면 어떻게됩니까? 내 설치가 어떻게 든 엉망이라고 암시겠습니까? – thedayturns

+1

\ * shrug \ * 스택 트레이스가있는 창이 열립니다. 재미있는 것이 있으면 그것을 살펴본 다음 Q 키를 눌러 해고하고 다시 일하러 가야합니다. – amalloy