Я с большим успехом использую ClojureBox для изучения Clojure и emacs.
Однако ClojureBox предустановлен с Clojure 1.2.0 и больше не поддерживается. Я обнаружил, что обновление до Clojure 1.3.0 не так просто, как сбросить банку 1.3.0 в lib/
Я знаю о lein swank
, за которым следует M-x slime-connect
- я только что использовал удобство ClojureBox, имеющего мгновенно доступный REPL, и хочу посмотреть, смогу ли я заставить его работать.
Некоторые ресурсы, которые я нашел для создания чего-то вроде ClojureBox на других платформах (которые мне пришлось бы перевести на Windows):
http://charsequence.blogspot.com/2010/07/setup-emacs-for-development-with.html
http://riddell.us/ClojureSwankLeiningenWithEmacsOnLinux.html
Кстати, ошибка, которую я получаю, выглядит так:
Clojure 1.3.0
user=> Warning: *log-events* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *log-events* or change the name.
Warning: *log-output* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *log-output* or change the name.
Warning: *namespace-re* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *namespace-re* or change the name.
Warning: *current-connection* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-connection* or change the name.
Warning: *default-encoding* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *default-encoding* or change the name.
Warning: *pre-reply-hook* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *pre-reply-hook* or change the name.
Warning: *pre-reply-hook* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *pre-reply-hook* or change the name.
Warning: *thread-map-next-id* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map-next-id* or change the name.
Warning: *thread-map-next-id* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map-next-id* or change the name.
Warning: *thread-map* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map* or change the name.
Warning: *thread-map* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *thread-map* or change the name.
Warning: *mailboxes* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *mailboxes* or change the name.
Warning: *mailboxes* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *mailboxes* or change the name.
Warning: *protocol-version* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *protocol-version* or change the name.
Warning: *protocol-version* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *protocol-version* or change the name.
Warning: *current-package* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-package* or change the name.
Warning: *pending-continuations* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *pending-continuations* or change the name.
Warning: *sldb-stepping-p* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-stepping-p* or change the name.
Warning: *sldb-initial-frames* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-initial-frames* or change the name.
Warning: *sldb-level* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-level* or change the name.
Warning: *sldb-restarts* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *sldb-restarts* or change the name.
Warning: *debug-swank-clojure* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-swank-clojure* or change the name.
Warning: *active-threads* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *active-threads* or change the name.
Warning: *active-threads* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *active-threads* or change the name.
Warning: *debug-quit-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-quit-exception* or change the name.
Warning: *debug-quit-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-quit-exception* or change the name.
Warning: *debug-continue-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-continue-exception* or change the name.
Warning: *debug-continue-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-continue-exception* or change the name.
Warning: *debug-abort-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-abort-exception* or change the name.
Warning: *debug-abort-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *debug-abort-exception* or change the name.
Warning: *current-exception* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-exception* or change the name.
Warning: *current-env* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *current-env* or change the name.
Warning: *connections* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *connections* or change the name.
Warning: *connections* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *connections* or change the name.
Warning: *compiler-exception-location-re* not declared dynamic and thus is not dynamically rebindable, but its name suggests otherwise. Please either indicate ^:dynamic *compiler-exception-location-re* or change the name.
CompilerException java.lang.RuntimeException: Unable to resolve symbol: print-doc in this context, compiling:(swank/commands/basic.clj:180)
user=> user=> CompilerException java.lang.RuntimeException: No such var: swank.swank/ignore-protocol-version, compiling:(NO_SOURCE_PATH:3)
user=> user=> nil
CompilerException java.lang.RuntimeException: No such var: swank.swank/start-server, compiling:(NO_SOURCE_PATH:5)