[Canna-dev 295] Re: Canna ML 過去ログより

Back to archive index

AIDA Shinra shinr****@j10n*****
2004年 3月 16日 (火) 02:29:13 JST


相田です。

> ■ ソケットをおさめるディレクトリのパーミッション
こういうのは、管理者のポリシー等が絡んでくるので、rootに良きに計らってもらうことにしましょう。そもそも、みんなで/tmp/ 
.iroha_unixを使うというのが既に設計ミスなので。

> ■ バッファサイズが足りない?
>> いずれにしろバッファの溢れを警戒するならstrcpy()とかsprintf(3)とかを止め
>> て、strncpy(3)やsnprintf(3)を使用する様に変更していく必要があります。
>> (snprintf(3)は持ってないOSも多いでしょうけど。)
今のuilibの枠組みで境界チェックをまともに実装するのは困難なので、今のuilibを捨てる日が来るまで放っておくしかないと思います。

>
> ■ SunOS 4.1 の cc によるコンパイルエラー
>   [Canna 4732] に以下のような報告があります。ここで名前の挙がっている
> empty.c 以下のファイルは、現在でも指摘されているような形式で文字列定数が
> 使われているようです。
>   今さら SunOS 4.1 のような古い OS でかんなを使うことはないでしょうし、
> わざわざ直すほどのことはないかもしれません。
趣味でSunOS4とかNEWSとかNeXTとか動かしている人はいるかもしれませんが、gccくらい入れているでしょうし、「純正コンパイラを使いた 
いんだ!」という人もツール一本で対応できるでしょう。

> ■ バージョン表示
>   [Canna 4844] で、今さんが次のように述べています。
>>> 一つは、Muleから canna-extend-modeでサーバのバージョン表示をさせ
>>> ると、最初につないだものしかでません。途中で、前のバージョン
>>> (3.2)のかんなにつないでも、バージョン表示は 3.5 beta2 と出てしま
>>> います。
>
>> あれれ〜。これはバグだねえ(それもずーっと前からの(^^;))。対
>> 処します。
>   これがバグだとすると、現在も同じ状態のままのようです。(ただ、本当にバ
> グかどうかちょっと疑問が残ります。環境設定→バージョン表示で表示されるべ
> きものは、cannaserver のバージョンと libcanna のバージョンのどちらでしょ
> うか。もし後者が意図されているのだとすれば、これこそが正しい動作というこ
> とになりますが…)
どう見てもlibcannaのバージョンをずばり表示しているので、正常動作です。「サーバ操作」のメニューでサーバのバージョンを表示できると嬉しい 
人はいるかもしれません。

> ■ 付属語辞書が、バイナリ形式からテキスト形式へ変更できない
>   [Canna 4881] より。
>> 今さん> また、岩波辞書を一度 3.2 でテキストに戻して 3.5 でバイナリに
>> 今さん> 変換するということでも利用できるかと思われます。(※岩波辞書
>> 今さん> の版権/著作権にご注意下さい)
>
>> ご忠告ありがとうございます.もし,その方法を使うときには注意します.
>> この方法を用いるとき,suffixのような付属語辞書のバイナリ辞書をうまく
>> テキスト辞書に戻すことができません.何か方法はありますでしょうか?
手元で実験してみると、問題なくテキスト辞書になります。いじった覚えはないのですが。

> ■ 学習の問題
>   [Canna 5001] には以下のように述べられています。学習については相田さん
> がだいぶ手を入れられたようなので、現状ではこの問題はないのかもしれません。
はい、直っています。

> ■ temporary の効果が quit で消えない
>   [Canna 5284]より。これがどれくらい重要なものなのか(そして、そもそも本
> 当にバグなのか)、私には判断がつきませんが、一応。
>> 英語を入力しやすくするのならtemporaryを駆使して、
>> (set-key 'empty-mode "/" '(temporary base-eisu base-hankaku))
>> なんてのはどうでしょう。/を押すと半角英数になり、一度確定すると
>> 元のモードに戻ります。ただし、'quitしたときに元に戻らないバグが
>> あるのが難点。
>
>> # 10年前に直すといっていた気がするけど… > 今さん
quitでも元のモードに戻るようにしました。ついでに、逐次では読みを消してもtemporaryの効果が消えなかったのですが、誰が見ても戻し忘れ 
なので直しました。

> ■ プロトコルについて
>   [Canna 5525] より。これも私にはチンプンカンプンです。
>> RemoveYomi は INT8 で文節数を返すようになっていますが
>> (もし WIDE_PROTO が undefined な場合。server/wconvert.c の
>>  irw_remove_bun() -> lib/RK/bun.c の RkwRemoveBun() と呼ばれてるっぽい?)
>
>> まず
>>  1) doc/intern/protocol.tex の記述と違う
>>         ここでは 0/-1 を返すと、かかれている
>>  2) そもそも INT8 (Type2) で文節数を返すことに違和感を覚える。
>>     他では文節数は INT16 を使っていますよね。
>
>> という二点が気になっています。protocol.tex に従って 0/-1 を返す
>> かんなサーバー(某esecannaserverですが)では RemoveYomi が呼ばれると
>> 呼んだクライアントの変換バッファの表示がとち狂います。
今はesecannaserverも実際のcannaの動作に合わせています。protocol.texの方を実装に合わせておきました。

> ■ 文法辞書を作るコマンドのリクエスト
>   [Canna 2736] より。
>> ・mkgramdic が欲しい
>
>> 自立語辞書と比べて、文法辞書は作りにくいので、mkgramdic という
>> コマンドを作って、
>
>> ../../../cmd/forcpp/forcpp -7 < gram.code | 		/usr/bin/cpp  -USX |  
>> 		../../../cmd/forcpp/forcpp -8 > cpp.gram
>> ../../../cmd/crxgram/crxgram -f cpp.gram
>> Undefined row vectors: BM
>> rows 499 cols 348
>> ../../../cmd/forsort/forsort -7 < cnj.swd | 		sort |  
>> 		../../../cmd/forsort/forsort -8 | 		../../../cmd/mergewd/mergeword  
>> > fuzokugo.swd
>> ../../../cmd/crxdic/crxdic -s -o fuzokugo.d -D cnj.bits -n fuzokugo  
>> fuzokugo.swd
>> fuzokugo.swd [ Mon Jun 20 09:34:41 1994 ] = 305 + 182
>> cat cnj.bits >> fuzokugo.d
>> ../../../cmd/crfreq/crfreq fuzokugo.d fuzokugo.swd
>> FQ size 886 bits 111 bytes
>
>> の部分を一つの操作で簡便に作れるようにして頂ければ、一般の
>> ユーザにとって、文法辞書作りがいっそう簡単になると思います。
コマンドは既に多すぎるので、今更増やしたくはありません。それに、文法をいじり出せば、品詞もいじることになるでしょうから、普通の人が文法を変える 
ことは想定しなくていいと思います。

> ■ 機能のリクエスト
>   [Canna 4302] より。話を簡単にするため、canna.el に対するリクエストは除
> いてあります。
>> ・どうせ変換しないんだから、ユーティリティメニューで「連文節」「逐次」
>>  の他に「無変換」を入れたい。
熱く要求する人がいれば入れるのもいいでしょう。やるとすれば、「無変換」と言ってもいろいろなものがあること、「連文節」「逐次」との関係が微妙に 
なっていることを考慮して、作り込みたいところです。

>> ・長い文字列を canna-henkan-region で変換すると、途中から先が捨て
>>  られてしまう。仮名にして 320 文字から先は、消えてしまう。320 文字
>>  より長い文字列を変換できる必要はないが、320 文字目から先を捨てないで
>>  ほしい。ついでに言うと、連文節変換で入力できる仮名は 200 文字強
>>  (文字列によって違うが)だが、もう少し長いと(320文字までいけると)
>>  嬉しい。
現状では無理です。




Canna-dev メーリングリストの案内
Back to archive index