Yoriyuki Yamagata
yoriy****@gmail*****
2005年 9月 19日 (月) 02:41:00 JST
05/09/18 に Masanari Yamamoto<h0131****@ice*****> さんは書きました: > はじめまして。山本といいます。よろしくお願いします。 はじめまして。報告ありがとうございます。こちらこそよろしくお願いします。開発環境が手元にないので、パッチなどはしばらくお待ちください。 > 真字 0.1.5を使ってみたのですが、使えるまでいくつかつまづいた点がありま > した。 > > 環境はDebian testing, g++ 4.0.1, ocaml 3.08.3です。 > > コンパイル > > dartsdic.cpp:180: error: invalid lvalue in assignment > このようなエラーが出たので下のように修正しました。 > > (const char*)keys[size] = key.data(); > ↓ > keys[size] = (char *)key.data(); よく理解できていないのですが、おそらく山本さんの修正が正しそうな気がします。 > Dartsを$HOMEにインストールしているのですが、./configureやmakeのオプシ > ョンでCPPFLAGSを設定しても下のエラーが発生しました。 > > darts.cpp:22:19: error: darts.h: そのようなファイルやディレクトリはありません > > そのため、mana/MakefileのINCDIRSにdarts.hがある場所を直接指定しました。 > configureオプションで--with-darts=<dartsのあるディレクトリ>としたらどうなりますか。 > > 実行 > > インストールが成功し、manaを実行してみると、以下のエラーが発生しました。 > > Fatal error: exception Dbm.Dbm_error("Can't open file /home/yamamoto/.manadic") > > 詳しいことはわかりませんが、以下のようにpersonalDict.mlを書き換え > るとエラーが発生しなくなりました。 > > Dbm.opendbm Config.personal_dict_file [Dbm.Dbm_create] 0o600 in > ↓ > Dbm.opendbm Config.personal_dict_file [Dbm.Dbm_create; Dbm.Dbm_rdwr] 0o600 in エラーの原因は、個人辞書がもしなければ生成するはずのところ、書き込み権限がないので生成できないためです。ファイルがなければ生成するコードを追加すれば解決します。 山本さんのように、常に書き込み権限を与えると、複数のmanaが実行できなくなります。 > > > 以上の変更でemacsのeggから使えるようになりました。 > > eggで使っていたところ、文節の長さを変えていると以下のように表 > 示がおかしくなることがありました。 > > |てすとです| > > ↓スペース > > |テスト です| > > ↓Ctrl-o > > |てすとで す| > > ↓Ctrl-f スペース > > |てすとで テストデス| > > *MANA*のバッファを調べてみたところ、下のようになっていましたが、 > (mana-best-path "てすとです" 0 4 1) > (("す" 0 5 16 2770)) > > この部分の出力はこのようになるのが正しいはずです。 > (("す" 4 1 16 2770)) > > この問題は気がついています。egg-mana.elのバグだと思いますが、まだ調べていません。 > manaのプロセスを2つ起動すると以下のエラーが出るのですが、標準入出力以 > 外の手段(UNIXドメインソケットなど)で、manaと通信できるようにする予定は > あるでしょうか。 > Fatal error: exception Dbm.Dbm_error("Can't open file /home/yamamoto/.manadic") これは山本さんの修正が原因です。GDBMを書き込み権限つきで開けるのは1プロセスまでです。クライアント/サーバモデルを採用するつもりはありません。(無意味だと思っています。)