slimv — ошибка при подключении к серверу clojure swank

Сегодня пытался запустить slimv, но столкнулся с проблемой. Вот шаги, которые я прошел:

  • Установлен clojure 1.3.0: brew update && brew install clojure
  • Настройка шикарного clojure: lein plugin install swank-clojure 1.3.3
  • Клонированный слимв: hg clone ssh://[email protected]/kovisoft/slimv
  • Перезапустил macvim, открыл существующий проект clojure, проверил, что появляется меню slimv.
  • Запустил шикарный сервер с lein swank
  • Пытался подключиться к нему из macvim. Эта ошибка появилась в терминале, на котором работал 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)
    

Любые идеи? Я также пытался использовать swank-clojure 1.2.1 и clojure 1.2.


person devth    schedule 23.10.2011    source источник
comment
также см. ответ, к вашему сведению: stackoverflow. com/questions/7525519/   -  person devth    schedule 19.11.2011


Ответы (2)


Кажется, в macvim есть проблема, связанная с python (см., например, эту тему) ). Некоторые снимки macvim работают, некоторые нет. Пользователь попытался скомпилировать моментальный снимок с ошибкой сегментации с поддержкой Python, связанной с 2.6 вместо 2.7, и это устранило сбои. Так что это должна быть проблема с привязкой python 2.7, попробуйте изменить ее на 2.6, если сможете.

Вы можете проверить версию Python из vim с помощью этой команды:

:python import sys
:python print sys.version_info

Однако я не уверен, что у вас такая же проблема, так как вы не упомянули ни о каких segfaults, но, возможно, разница в том, что вы используете clojure вместо clisp.

person Tamas Kovacs    schedule 23.10.2011
comment
Версия Python 2.7.1 финальная. Если я запускаю mvim из терминала, я вижу Vim: Caught deadly signal SEGV Vim: Finished. после того, как lein swank выдает исключение. - person devth; 25.10.2011
comment
Я только что получил следующую информацию от разработчика macvim: Кажется, это проблема 64-битной версии — компиляция 32-битной версии MacVim решает ее. Пожалуйста, скомпилируйте 32-битную версию. Инструкции по сборке находятся здесь, чтобы собрать 32-битную версию, строка конфигурации должна включать флаг --with-macarchs=i386. - person Tamas Kovacs; 06.11.2011
comment
Только что был выпущен новый снимок macvim (63), который является 32-битным. Его можно скачать вместо того, чтобы пытаться собрать из исходников. Ссылка на него есть на странице журнала изменений. - person Tamas Kovacs; 11.11.2011
comment
Спасибо, Тамас. Я посмотрю, смогу ли я заставить его работать со снимком 63. - person devth; 19.11.2011

Сегодня(2012.05.15)

brew install macvim

не может работать Slimv (64 бит).

Но установите с http://code.google.com/p/macvim/ Загрузите MacVim 7.3 (снимок 64) для Mac OS X Lion. (Выпущено 2 января 2012 г.), хотя я пробовал только ccl и sbcl, все работает! Если вы используете OS X Lion, попробуйте.

person jiroukaja    schedule 15.05.2012