Некоторые функции не отображаются при запуске REPL через сервер nailgun
Я пытаюсь использовать приложение appengine-magic (0.3.1) с VimClojure (2.2.0) и Clojure 1.2.0.
Вещи выглядят правильно при использовании через ванильный REPL (lein repl
).
user=> (require '[clojure.contrib.ns-utils :as nsu])
nil
user=> (require '[appengine-magic.core :as ae])
nil
user=> (nsu/ns-vars 'appengine-magic.core)
(appengine-environment-type def-appengine-app
default-war-root in-appengine-interactive-mode? open-resource-stream
start start* stop stop* wrap-war-static)
Но когда тот же код отправляется из VimClojure на сервер nailgun:
java -cp "`lein classpath`" vimclojure.nailgun.NGServer 127.0.0.1
Некоторые функции и макросы исчезают.
user=> (require '[clojure.contrib.ns-utils :as nsu])
nil
user=> (require '[appengine-magic.core :as ae])
nil
user=> (nsu/ns-vars 'appengine-magic.core)
(appengine-environment-type def-appengine-app
in-appengine-interactive-mode? open-resource-stream)
Та же версия appengine-magic
кувшин определенно в пути к классу.
Итак, это ошибка или неправильная конфигурация?
1 ответ
Решение
Это больше похоже на особенность для меня.
Проверьте последнюю форму в https://github.com/gcv/appengine-magic/blob/master/src/appengine_magic/core.clj. Fns, загруженные в это пространство имен, точно зависят от того, используете ли вы Swank или обычный REPL.
Я не могу говорить, почему это так, но это определенно предполагаемое поведение магии аппинжина.