2002/09/14 Nishimura Hiromi

 CalendarMemo も Ver 1.0.0 で mc (matrix calculator) の機能が加わり正式版となりました。ここでは判っているバグについて説明(言訳)を書いておきます。

古いバグレポートは書いていません。


◆ 2003/04/21 MemoFinder でバグ

 ここは CalendarMemo のバグレポートなのですが、 MemoFinder で重大なバグが見つかったので書いておきます詳しくは「■ MemoFinder ver 0.9.9 を使用しての問題点と復旧作業 」をどうぞ。


◆ 2003/02/21 loadPicture 関数でクラッシュ

 loadPicture 関数を使ったら CalendarMemo がクラッシュしてしまいました。原因を調べたらカレントディレクトリ設定でフォルダーではなくファイルを指定すると発生します。フォルダか否かのチェックをせずに使ってしまったようです。


◆ 2003/01/31 日本語ファイル名だとリンクできず!

 すごいポカをしていました。ユーザさんから CalendarMemo 以外のファイルのリンクができないとの指摘を受けていましたが私のシステムでは再現できず不思議に思っていました。ところが何とユーザさんからファイル名というかファイルパスに日本語が含まれるとリンクできないと教えていただいたのです。ん〜〜〜 そう言えば私は英語名のファイルしかリンクしていなかった!

 というわけでソースを調べてみたらアイコンの JPEG ファイルに書き込むフルパスを ShiftJIS で書き込み、読む時には UTF8 で行っていました。これじゃファイルパスに日本語があれば無視するのもうなずけます。

 このバグは次回公開するバージョンでフィックスされています。


◆ 2003/01/07 バグではないのだが!

 mc プログラム実行中にマウスボタンを2秒以上押していると実行が中止されます。これは無限ループ回避として実装したものです。これは CalendarMemo がアクティブになっていなくても動作します。でも新聞記事ダウンロードのように別スレッドで実行した場合に問題が発生するようです。

 という訳で新しいバージョンでは mc を起動したウインドウ(?)がアクティブな状態にあるときだけ2秒以上マウスボタンを押し続けると実行が中止するように改良しています。公開は週末かな?


◆ 2002/12/28 MacOS X 10.1.5で AmMode を使うとクラッシュ

 MacOS X 10.1.5 で AmMode を起動するとクラッシュする事が判りました。原因は NSTextView のスタイル設定でした。バグフィックスした ver 1.1.0a05 を公開しているのでバージョンアップお願い致します。やはり古いバージョンの OS を残してチェックしておかないと駄目みたいですね。


◆ 2002/12/27 drag & drop でクラッシュ

 drag & drop の処理が 20 秒以上かかると CalendarMemo がクラッシュすることがあります(恥ずかしい!)。前々から気になっていたのですが 20 秒以上の処理はたぶんないだろうと思っていたのですが。で MacOSX-Dev-JP のメーリングリストに相談してみたら、やっぱり基本的なところで間違えていたようです(Cocoa は奥が深い!)。このバグの影響範囲は drag & drop を使用する部分だけで処理が20秒をこえるヘビーなものだけです。普通に使っているぶんには問題ありません。

 教えていただいた -performSelector:withObject:afterDelay: メソッドを試してみたところ 20 秒以上かかる処理でもクラッシュせず正常に動作するようになりました。もうしばらく使ってみて問題がないか確認したうえでバグフィックス版 ver 1.1.1 として公開する予定です。たぶん正月休みの間には公開できると思います。


◆ 2002/12/14 要素どうしの乗算の一部にバグ

 mcには教科書では定義されていない演算に特別な処理をわりあてています。この部分にバグがありました。要素同士の乗算でm行n列のデータにm行1列のデータを乗算する時に正確な値を計算しません。原因は演算ルーチンのループ文に使っている変数の i,j を入れ違えていたためでした。

 普通は使う事がない演算なので(私も使っていなかった!)このバグには気が付きませんでした。演算結果はできるだけ確認してから使うようにして下さい。次回のバージョンアップで修正しています。


◆ 2002/12/03 cell 関数でクラッシュを伴うバグ

 cell 関数なんて使う人はいないと思うのでたぶん影響はないでしょう(これは私の仕事で使うもの)。この関数は行列の要素がゼロ以上の集団の個数と位置情報を取得するものです。例えば組織の顕微鏡画像で染色されている細胞の数と位置、大きさを計算する時に使います。

 この関数を実行するとクラッシュしたりしなかったりの変な現象が発生します。この関数は再帰呼び出しを使っているのでひょっとしたらスタックフレームのオーバーフローの可能性があります。そこで再帰呼び出しのカウントを計測してみたら 4600 程度でクラッシュしてしまいました。この関数は最悪の場合には行列の要素数だけの再帰呼び出しがかかります。ということで原因が判明。結局、再帰呼び出しを使わない方法に変更して解決しています。ver 1.0.3a02 から任意の大きさの行列に対して使えます。

 しかし、たった4600でスタックがオーバーフローとは。少しプログラミングのスタイルを変えないといけないようですね。


◆ 2002/11/23 MacOS X が UNIX であったことを忘れていた

 久々のバグ。そういえば MacOS X は UNIX であった。文字列の行数を得る getStringLine 関数で改行が '\r' のままであった(そのため行数は1行)。 '\r' を '\n' に書き換えて解決。


◆ 2002/11/01 ボケ・バグ

 また定例のバグが見つかった。今度のバグは何故かクラッシュしない、というか Cocoa って優しい設計なのかな?

 ファイルが確定していない状態(新規メモ)で月間ファイルリストを表示させると Cocoa に怒られます(NSArray の範囲外をアクセスすんなよな〜)。要は想定外のチェックをしていないがためにコンソールに何やらメッセージが書き込まれる状態のバグです。原因が判ったので改修。 ver 1.0.1a08 以降で修正しています。


◆ 2002/10/22 全ファイルのファイル名検索

 CalendarMemo で管理している全ファイルのファイル名検索であり得ない0月も検索対象に入っている。そのため検索時間が無駄に長くなってる。0月を検索対象から外す事で解決した。バグフィックス版は ver 1.0.1a04 以降で公開する予定。


◆ 2002/10/15 確実なクラッシュを見つけた!

 せっかく新しい ver 1.0.1a01 を公開したのにはやくもクラッシュを伴うバグが見つかってしまった。

【現象】

 一行が 500 バイトを越える、その行にキャレットを置き esc キーを押すと確実にクラッシュする。同現象は計算部に mc を使っている全てのバージョンで発生します。

【原因】

 mc プログラム実行時の構文解析で1命令のバイト数を最大 500 バイトとしている(こんなには要らないのですが)。esc キーを押すと普通の文章もプログラムとして実行を試みる。このとき命令長をチェックしていないため一行が 500 バイトを越えることクラッシュが発生する。

【対処】

 500 バイトを越えるか否かのチェックを組み込んで解決。 近日中に ver 1.0.1a02 として公開する予定。
 当面は一行が 500 バイトを越えるようなメモはなるべく書かない事。もし越えたとしても esc キーを押しプログラムとして実行しない事。

 これまでこのバグに気が付かなかった位ですから普通に使っている分には問題ないと思います。でも知ってしまうと無理にクラッシュさせたいのも人情(私だけかな?)。よって新しいバージョンを公開したらできるだけ早めにバージョンアップして下さい。

まだまだバグが隠れているだろうな〜


◆ 2002/10/07 ファイルリストへの drag & drop

 久しぶりにファインダーからファイルリストへ drag & drop したら!あれ〜〜シンボリックリンクのファイルが作れない! オカシイと思いプログラムリストをみたら指定した年月日が取得できないではないか!いつからこうなってしまったんだろう?という訳で ver 1.0.0 ではファインダーからの drag & drop でシンボリックリンクが作れないようです。 ver 1.0.1 では修正されています(単に前のルーチンに戻っただけ)。試験中のプログラムのコメントアウトを管理する良い方法は無いものか! #ifdef ? これって訳が判らなくなってしまう〜〜〜〜〜〜〜


◆ 2002/09/19 diary フォルダ同期の問題点

 diary フォルダの同期には rsync を使っている。RTFD 書類はファインダーからはファイルのように見えるが実際はフォルダーである。そのため rsync を使ったファイルの同期では RTFD 書類単位の同期をしない。そのため RTFD 書類を編集し添付画像を変更すると diary フォルダの同期により編集以前の添付画像もバックアップされてしまう。そのため使っていない添付画像ファイルが RTFD 書類に含まれてしまう。

 これをどのように解決するか考えている。一番楽なのは rsync がパッケージに対応してくれるのを待つことだろう。


◆ 2002/09/14 突然のクラッシュ

 Ver 0.9.9a05 で使用中に突然のクラッシュがあるとの事。自分のマシンでは経験していないがクラッシュするらしい(他人のマシンで経験)。原因不明だが、月間ファイルのリス表示で AutoreleasePool なんたらかたらとのメッセージがコンソールに残る。よってこれは CalendarMemo のメモリ管理バグと思われる。

 このメッセージを出力するスレッドを普通のメソッド呼び出しに変更した。その結果、上記メッセージが表示されなくなった。 ver 1.0.0 では解決している。たぶんもうクラッシュはないだろう。


◆ 2002/09/13 FTP 機能

 Ver 0.9.9a05 の FTP 機能で、選択した項目と実際の対象になる項目にズレが発生するバグがみつかった。原因は「手抜きルーチン」にあった。そこで「少しはマシなルーチン」に変更した。 ver 1.0.0 では解決している(たぶん)。