Проблемы при запуске Emacs 24 для SLIME и Clojure Debug Toolkit (CDT) - PullRequest
4 голосов
/ 10 декабря 2011

Я пытаюсь заставить Slime работать с CDT и emacs 24, но безрезультатно, и буду благодарен за предложения.

1) Мне удалось запустить clojure-jack-in, но только когда я загрузил swank-clojure 1.3.3 в качестве плагина lein, как описано на странице github swank-clojure, https://github.com/technomancy/swank-clojure.

2) Я пытался загрузить swank-clojure 1.4.0-SNAPSHOT, как описано Джорджем Джахадом в http://georgejahad.com/clojure/swank-cdt.html (используя Clojure 1.2.1), но я не смог запустить clojure-jack-in , Я получил ту же ошибку, как описано в 3) ниже.

3) Совсем недавно я попытался продублировать результаты короткого видео с проверкой концепции на сайте technomancy.us, на котором «радикальное упрощение наступает» http://technomancy.us/149. В этом методе я загрузил swank-clojure 1.4.0-SNAPSHOT как плагин lein и подтвердил, что он был загружен в ~/.lein/plugins/swank-clojure-1.4.0-SNAPSHOT.jar. Когда я создал новый проект lein, выполнил на нем lein deps, открыл файл core.clj проекта в emacs, а затем выполнил M-x clojure-jack-in, вместо получения REPL я получил следующую ошибку в минибуфере emacs:

error in process filter: Search failed: "(run-hooks 'slime-load-hook) ;
on port"

Обратите внимание, что конец строки ошибки не включает номер порта. Если это не произвольное усечение более длинной строки ошибки, отсутствие номера порта делает меня неловким.

Буфер *swank* длинный, начиная с:

;;; Bootstrapping bundled version of SLIME; please wait...

и заканчивается:

(provide 'slime-repl)
;;; slime-repl.el ends here

(run-hooks 'slime-load-hook)
;;; proceed to jack in

, что соответствует сообщению об ошибке.

Я потратил на это около шести часов, включая лот поисковых запросов в Интернете, и не повезло. Спасибо за любую помощь, вы можете предоставить.


ADDENDUM: я продолжал экспериментировать, и теперь буфер *swank* заканчивается как раньше (умирает в том же месте), но с дополнительными строками в конце. К вашему сведению, вот оно:

(provide 'slime-repl)
;;; slime-repl.el ends here

(run-hooks 'slime-load-hook)
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
[WARNING] Overriding profile: 'null' (source: pom) with new instance from source: pom
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojars at http://clojars.org/repo/
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojars (http://clojars.org/repo/)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository stuartsierra-releases at http://stuartsierra.com/maven2
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository stuartsierra-releases (http://stuartsierra.com/maven2)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojure at http://build.clojure.org/releases
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojure (http://build.clojure.org/releases)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojure-snapshots at http://build.clojure.org/snapshots
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository clojure-snapshots (http://build.clojure.org/snapshots)
Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository central at http://repo1.maven.org/maven2
Unable to locate resource in repository
[INFO] Unable to find resource 'org.clojure:clojure:pom:1.+' in repository central (http://repo1.maven.org/maven2)
Copying 9 files to /Users/gw/tech/clojurestuff/cljprojects/infwb/lib
Copying 1 file to /Users/gw/tech/clojurestuff/cljprojects/infwb/lib/dev
Listening for transport dt_socket at address: 61012
;;; proceed to jack in

(конец приложения)


ADDENDUM 2 (12 декабря 2011 г.) Спасибо всем, кто предложил помощь, особенно @ivant, кому я присуждаю «галочку». Я собираюсь считать эту ситуацию закрытой, потому что я перестал пытаться ее исправить. Это было сложно из-за моего использования предварительно упакованного пакета инициализации, который, я уверен, довольно хорош, но я не мог понять, что он делал, и не способствовал ли он этой проблеме.

Я перезапустил «чистый» Emacs 24 и вернулся к swank-clojure 1.3.3, и clojure-jack-in теперь работает отлично. Я попробую CDT позже, как только ошибка, зарегистрированная в swank-clojure 1.4.0-SNAPSHOT, будет устранена.

Я узнал кое-что из комментариев людей - еще раз спасибо.

Ответы [ 3 ]

2 голосов
/ 11 декабря 2011

NB. У меня не установлено ни emacs 24, ни CDT.

Глядя на код clojure-jack-in, похоже, что он заранее выбирает порт и запускает clojureиспользуя lein jack-in <port> (если вы не переопределите где-то clojure-swank-command).

Затем он анализирует выходные данные (которые видны в буфере *swank*) в поисках определенных строк для запуска некоторых действий.Это:

 ;;; Bootstrapping bundled version of SLIME
 ...
 ;;; Done bootstrapping.

или как запасной вариант:

 ;;; Bootstrapping bundled version of SLIME
 ...
 (run-hooks 'slime-load-hook) ; on port

, и он выполняет команды emacs между этими строками.Строка «продолжить в гнездо» запускает фактическое соединение.

Поэтому проверьте источник, проверьте значения некоторых соответствующих переменных (например, clojure-swank-command) и проверьте, что находится в буфере *swank* для подсказок.

РЕДАКТИРОВАТЬ

Вы можете запустить lein deps в своем проекте, прежде чем пытаться M-x clojure-jack-in, в противном случае вывод, например,

Downloading: org/clojure/clojure/1.+/clojure-1.+.pom from repository clojars at http://clojars.org/repo/
...

, может завершитьсяв буфере *swank* и может помешать процессу запуска.

Но эта специфическая зависимость выглядит для меня довольно подозрительно.Можете ли вы также опубликовать свой файл project.clj?

0 голосов
/ 28 января 2012

Обновитесь до swank-clojure 1.4.0 (выпущен вчера), и все будет работать из коробки. lein plugin install swank-clojure 1.4.0

Установка и интеграция CDT теперь полностью автоматизированы. Обязательно удалите все старые копии swank-clojure, slime.el и slime-repl.el, которые у вас есть. На всякий случай также убедитесь, что у вас установлена ​​последняя версия clojure-mode.el.

0 голосов
/ 10 декабря 2011

У меня нет ответа, хотя я столкнулся с той же проблемой, но могу обойти.

Просто запустите lein swank из командной строки и используйте slime-connect внутри Emacs, и вы по крайней мере снова получите рабочую среду.

Это также было занесено в список ошибок swank-clojure: https://github.com/technomancy/swank-clojure/issues/87

...