Я пытаюсь встроить реплик swank-clojure в свое приложение с целью подключения, пока приложение работает, чтобы копаться в вещах. Однако у меня возникают проблемы с выяснением, как получить доступ к окружающей среде после запуска repl.
Внедрение REPL swank-clojure достаточно просто:
(ns mytest
(:use [swank.swank :exclude [-main]])
(:gen-class))
(defn -main [& args]
(let [x 123]
(swank.swank/start-repl)))
Запустите программу .. затем снова в emacs:
M-x slime-connect
Это отлично работает, и я подключен. Теперь я надеялся на то, что это сработает:
(println x)
;; 123 (what I was hoping for)
;; Unable to resolve symbol: x in this context (cruel reality)
Так что это не работает как способ передачи текущей среды во встроенный REPL.
Есть ли способ для встроенного REPL взаимодействовать с моей запущенной программой?
Если нет, то для чего нужно встраивать REPL?
Если это что-то меняет, я пытаюсь запустить это как JAR.
Эта тема, кажется, связана, но я не смог получить от нее ничего:
Встраивание swank-clojure в Java-программу