[Shinji-devel 10] Re: 真字 0.1.5

Back to archive index

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プロセスまでです。クライアント/サーバモデルを採用するつもりはありません。(無意味だと思っています。)



Shinji-devel メーリングリストの案内
Back to archive index