slimv - error connecting to clojure swank server
Question
Tried to get slimv running today, but ran into an issue. These are the steps I went through:
- Installed clojure 1.3.0:
brew update && brew install clojure
- Setup swank-clojure:
lein plugin install swank-clojure 1.3.3
- Cloned slimv:
hg clone ssh://hg@bitbucket.org/kovisoft/slimv
- Restarted macvim, opened existing clojure project, verified the slimv menu shows up
- Started a swank server with
lein swank
Tried to connect to it from macvim. This error showed up in the terminal that was running swank:
exception in read loop java.lang.Exception: Error reading swank message at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) at java.lang.reflect.Constructor.newInstance(Constructor.java:513) at clojure.lang.Compiler$NewExpr.eval(Compiler.java:2100) at clojure.lang.Compiler$DefExpr.eval(Compiler.java:361) at clojure.lang.Compiler.eval(Compiler.java:5429) at clojure.lang.Compiler.load(Compiler.java:5857) at clojure.lang.RT.loadResourceScript(RT.java:340) at clojure.lang.RT.loadResourceScript(RT.java:331) at clojure.lang.RT.load(RT.java:409) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn__4519.invoke(core.clj:4915) at clojure.core$load.doInvoke(core.clj:4914) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:4729) at clojure.core$load_lib.doInvoke(core.clj:4766) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:542) at clojure.core$load_libs.doInvoke(core.clj:4804) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:544) at clojure.core$use.doInvoke(core.clj:4892) at clojure.lang.RestFn.invoke(RestFn.java:436) at swank.core.connection$eval174$loading__4414__auto____175.invoke(connection.clj:1) at swank.core.connection$eval174.invoke(connection.clj:1) at clojure.lang.Compiler.eval(Compiler.java:5424) at clojure.lang.Compiler.eval(Compiler.java:5415) at clojure.lang.Compiler.load(Compiler.java:5857) at clojure.lang.RT.loadResourceScript(RT.java:340) at clojure.lang.RT.loadResourceScript(RT.java:331) at clojure.lang.RT.load(RT.java:409) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn__4519.invoke(core.clj:4915) at clojure.core$load.doInvoke(core.clj:4914) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:4729) at clojure.core$load_lib.doInvoke(core.clj:4766) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:542) at clojure.core$load_libs.doInvoke(core.clj:4804) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:544) at clojure.core$use.doInvoke(core.clj:4892) at clojure.lang.RestFn.invoke(RestFn.java:457) at swank.core$eval46$loading__4414__auto____47.invoke(core.clj:1) at swank.core$eval46.invoke(core.clj:1) at clojure.lang.Compiler.eval(Compiler.java:5424) at clojure.lang.Compiler.eval(Compiler.java:5415) at clojure.lang.Compiler.load(Compiler.java:5857) at clojure.lang.RT.loadResourceScript(RT.java:340) at clojure.lang.RT.loadResourceScript(RT.java:331) at clojure.lang.RT.load(RT.java:409) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn__4519.invoke(core.clj:4915) at clojure.core$load.doInvoke(core.clj:4914) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:4729) at clojure.core$load_lib.doInvoke(core.clj:4766) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:542) at clojure.core$load_libs.doInvoke(core.clj:4800) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:544) at clojure.core$use.doInvoke(core.clj:4892) at clojure.lang.RestFn.invoke(RestFn.java:512) at swank.swank$eval40$loading__4414__auto____41.invoke(swank.clj:1) at swank.swank$eval40.invoke(swank.clj:1) at clojure.lang.Compiler.eval(Compiler.java:5424) at clojure.lang.Compiler.eval(Compiler.java:5415) at clojure.lang.Compiler.load(Compiler.java:5857) at clojure.lang.RT.loadResourceScript(RT.java:340) at clojure.lang.RT.loadResourceScript(RT.java:331) at clojure.lang.RT.load(RT.java:409) at clojure.lang.RT.load(RT.java:381) at clojure.core$load$fn__4519.invoke(core.clj:4915) at clojure.core$load.doInvoke(core.clj:4914) at clojure.lang.RestFn.invoke(RestFn.java:408) at clojure.core$load_one.invoke(core.clj:4729) at clojure.core$load_lib.doInvoke(core.clj:4766) at clojure.lang.RestFn.applyTo(RestFn.java:142) at clojure.core$apply.invoke(core.clj:542) at clojure.core$load_libs.doInvoke(core.clj:4800) at clojure.lang.RestFn.applyTo(RestFn.java:137) at clojure.core$apply.invoke(core.clj:542) at clojure.core$require.doInvoke(core.clj:4881) at clojure.lang.RestFn.invoke(RestFn.java:408) at user$eval27.invoke(NO_SOURCE_FILE:1) at clojure.lang.Compiler.eval(Compiler.java:5424) at clojure.lang.Compiler.eval(Compiler.java:5415) at clojure.lang.Compiler.eval(Compiler.java:5391) at clojure.core$eval.invoke(core.clj:2382) at clojure.main$eval_opt.invoke(main.clj:235) at clojure.main$initialize.invoke(main.clj:254) at clojure.main$null_opt.invoke(main.clj:279) at clojure.main$main.doInvoke(main.clj:354) at clojure.lang.RestFn.invoke(RestFn.java:421) at clojure.lang.Var.invoke(Var.java:369) at clojure.lang.AFn.applyToHelper(AFn.java:163) at clojure.lang.Var.applyTo(Var.java:482) at clojure.main.main(main.java:37)
Any ideas? I also tried using swank-clojure 1.2.1 and clojure 1.2.
Solution
There seems to be a python related problem in macvim (see this thread for example). Some macvim snapshots work, some don't. A user tried to compile a snapshot that was segfaulting with python support linked against 2.6 instead of 2.7, and it solved the crashes. So it must be a problem with the python 2.7 binding, try to change it to 2.6 if you can.
You can verify the python version from within vim via this command:
:python import sys
:python print sys.version_info
However, I'm not sure you have the same problem, as you did not mention any segfaults, but maybe the difference is that you use clojure instead of clisp.
OTHER TIPS
Today(2012.05.15)
brew install macvim
can't work Slimv(64bit).
But install from http://code.google.com/p/macvim/ Download MacVim 7.3 (snapshot 64) for Mac OS X Lion. (Released Jan 2, 2012.), though I tried only ccl & sbcl, it works! If you use OS X Lion, please try it.