Не отвечает Clojure REPL после исключения

#exception #clojure #read-eval-print-loop #leiningen

#исключение #clojure #цикл чтения-оценки-печати #leiningen

Вопрос:

Если я запускаю REPL, а затем делаю что-то, что выдает исключение, подобное (use 'non-existent-thing) **, то после этого REPL перестает оценивать все, что я ввожу. Есть ли специальная клавиша, которую я могу нажать, чтобы заставить его повернуться лицом ко мне, разомкнуть руки и прослушать еще раз? Или я должен нажать ctrl-d, перезапустить, ввести все до того места, где я был, и на этот раз сделать все правильно?

что приводит к:

Исключение в потоке «Thread-1» java.lang.RuntimeException: исключение java.io.FileNotFoundException: не удалось найти non_existent_thing__init.class или non_existent_thing.clj на пути к классу: (NO_SOURCE_FILE:0)

Редактировать: Я должен был упомянуть, что я использую lein repl

Комментарии:

1. То же самое происходит со мной, когда я использую Eclipse. Я думаю, что это может быть проблема с самим REPL?

2. он не выполняет этого, как IntelliJ REPL, который я только что обнаружил, так что это может быть лейнингенская вещь

3. Почему вы не можете использовать lein swank с emacs?

Ответ №1:

Я никогда этого не видел, и я использую lein repl в Windows, Linux и OSX. Единственное, что немного странно, это то, что мне приходится один или два раза нажимать enter, чтобы вернуть запрос repl.

На всякий случай… Какую версию leiningen вы используете? Недавний JDK? Версия Clojure?

Комментарии:

1. Leiningen 1.5.0-СНИМОК на 64-разрядной серверной виртуальной машине Java 1.6.0_22 Java HotSpot (TM), Clojure 1.2.0, Ubuntu 10.04. Я оставил новый пробел, затем оставил repl

2. Вы добавили [ring/ring-devel "0.2.0"] в свой проект? Я думаю, вы это упускаете.

3. Я только что попробовал на другой машине, и проблема там не возникает, так что это, должно быть, проблема с моей установкой lein…

4. Установлена ли у вас переменная classpath по умолчанию? У меня это мешало запуску leiningen (хотя это могло быть из-за clojure).

5. только что обновился до последней версии, и проблема устранена, все хорошо, что хорошо заканчивается.