malabar-mode を NTEmacs にインストール (未完)。

どもです。
風邪薬のせいもあって,ぼーっとしています。


ちょっち Java を使う必要があり,NTEmacs にしてから Java の環境を
整えてないので,どうせならと,malabar-mode というのを導入しようとしたのが,
ことの始まり。
環境は,Windows XP SP3, cygwin, NTEmacs 23.2 です。

基本的に README 通りに。

ワタシの場合は,maven をインストールしていなかったので,インストールしました。
pom.xml をちょっち修正する必要があります。

  • maven.version を適切に設定。
    • mvn -v してそのバージョンに。ワタシの場合は,3.0.3 でしたので,下記。
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.version>3.0.3</maven.version>
  </properties>
  • emacs の本体へのパスを設定

そのままだと,cygwinEmacs を使ってしまうので,
ビルドに,NTEmacs を使用するように設定。183 行目くらいと199行目くらいを設定。
ワタシの場合は,以下。

              <!-- <executable>emacs</executable> -->
              <executable>e:\emacs\emacs-23.2-20100508\bin\emacs.exe</executable>
              <arguments>
                <argument>-Q</argument>
                <argument>--batch</argument>
                <argument>-l</argument>
                <argument>src/test/lisp/all-tests.el</argument>
              </arguments>
            </configuration>
          </execution>
          <execution>
            <id>run-loadability-test</id>
            <phase>test</phase>
            <goals>
              <goal>exec</goal>
            </goals>
            <configuration>
              <executable>e:\emacs\emacs-23.2-20100508\bin\emacs.exe</executable>
              <!-- <executable>emacs</executable> -->


あとは,README に書いてあるとおりに,mvn package して待つ。
オールオッケーなはず。

こける。

適当に配置して,下記を .emacs へ。
lib とか,classpath はとりあえず動作確認するためにとりあえず設定したものなので,
本来なら,お好みで配置したパスを書く必要あり。

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;; malabar-mode
(add-to-list 'load-path "~/.emacs.d/malabar-mode")
(require 'cedet)
(require 'semantic)
(setq malabar-groovy-lib-dir "~/repos/git_repos/malabar-mode/target/malabar-1.5-SNAPSHOT/lib")
(setq malabar-groovy-extra-classpath '("~/repos/git_repos/malabar-mode/target/classes"))
(add-to-list 'auto-mode-alist '("\\.java$" . malabar-mode))
  • で,Groovysh? がこける。

Unknown service とかいうエラー。
あの手この手でしらべたら,malabar-groovy.el 内の,関数 malabar-groovy-start
の中の make-comint でこけているようだ。
ほいで,make-comint は,この場合,open-network-stream を使っているようなので,
さらに,open-network-stream のヘルプを読む。
すると,SERVICE を (cons "localhost" (number-to-string malabar-groovy-compile-server-port))
で指定していて,ヘルプでは,(cons ホスト名 整数でポート番号)
みたいに書いてある。なので,number-to-string を削ってみたら,
一応起動した。
が,groovy のバッファでなんかを入力して Enter するとブロックして,Emacs が固まる。


というか,これ書いている途中で,なんかしらんが,
Emacs がおかしくなった。点滅しつづけて操作不能になったので,
余裕かまして,強制終了。そういえば,数日前も,なんかハンドルされてない例外とかで落ちたなぁ。
でも,session も30分毎に保存しているしー,余裕余裕。
で,Emacs を立ち上げる。ん?
セ,セ,セッション情報がない? なん・・だ・と?
落ち着け。一度 Emacs を終了。セッション情報を上書きしますか(ロードされてません)的なことを,
聞かれたので,とりあえず,no と答える。
ほいで,セッションファイルのコピーをとって,もっかい立ち上げる。
まだセッション情報がロードされてない。おかしいなぁ。
ほいで,さっきコピーしたセッションファイルのサイズを見てびっくり。
1k もない。
なんてこったい! セッション情報が飛んだ!!
オーマイガー!! 最悪だ−!! 今まで積み上げたものが崩れてもうた。
にしても,なんで飛んだんだろう。11:00 ちょうどにおかしくなったから,
30分毎にセッション情報を保存する設定しているタイマーか?
原因はわからんが,非常に困る。


話を戻します。
えーと,ほいで,number-to-string を削ったら起動したという話ですね。
diff です。
(※2011/05/23 18:42 diff を差し替えました)

--- malabar-groovy.el.org	2011-05-23 09:34:19.370625000 +0900
+++ malabar-groovy.el	2011-05-23 11:19:31.761250000 +0900
@@ -202,10 +202,10 @@
         (progress-reporter-force-update reporter 4 "Starting Groovy...connecting to servers ")
         (make-comint malabar-groovy-compile-server-comint-name
                      (cons "localhost"
-                           (number-to-string malabar-groovy-compile-server-port)))
+                           malabar-groovy-compile-server-port))
         (make-comint malabar-groovy-eval-server-comint-name
                      (cons "localhost"
-                           (number-to-string malabar-groovy-eval-server-port)))
+                           malabar-groovy-eval-server-port))
         (progress-reporter-force-update reporter 5 "Starting Groovy...waiting for server prompts ")
         (malabar-groovy--wait-for-prompt malabar-groovy-compile-server-buffer-name
                                          initial-points-alist)


起動はしたけど,何か入力するとブロックするので,解決してないのも同様。
試しに M-x malabar-compile-file してみたら,pom がないとか怒られたので,
コンパイルはでけるのかも。

まとめ

風邪引いて体調悪いし,そんなことより,セッション情報が無くなったのがショックすぎて
やる気がマイナスになった。