開発メモ

Last modified: 2007/06/03 03:17:19

バージョン番号のポリシー

今のところありません。

スレッドとメモリ管理

バックグラウンドのNSThreadで行われている検索結果をフォアグラウンドのNSTextStorageに渡して表示していますが、その際の(瞬間的に共有される)NSStringのメモリ管理がCocoa初心者にとっては最大の難所でした*1

結果の続きを見たい

現在の実装では、検索語の入力から結果表示までのレスポンスタイムをできるだけ短くすべく、表示行数を限定するようになっていますが、結果の続きを見る機能がありません。(現在はスレッドごと捨ててしまっています)

version 0.8あたりを目処に、「続きを見る」ことができるようにしようと思っています。こういう時こそ継続(continuation)です。メモリ管理を気にしつつ継続もどきを実装してみます。

ちゃんとスレッドセーフにしたい

Firefox検索の開発中に、スレッドセーフでない箇所がどこかにあることが判明。 これは何とかしたいところです。

Endianness

そもそもPDICはバイトオーダが little endian*2 なので、PowerPC上では*3バイトオーダを入れ替える必要があります。

PowerPC版しかない(というかIntel Macの登場を想定していない)PDIC ViewerをIntel Macで動かすと、さらにそれがRosettaでPPC→Intelにトランスレートされるので非常に遠回りな処理になります。DiDiを「Rosetta を使って開く」をONにして起動したら似たような感じになります。

PDIC Viewer との関係

今回は互換性に縛られずCocoaで伸び伸びやりたいので、Objective-Cで一から書いています。
→車輪の再発明をしまくっています。

個々の辞書に関する情報(表示名とかエンコーディングとか)、BOCU-1変換、中国語のピンインとか発音記号のUnicodeテーブルなんかはPDIC Viewerのソース*4から拝借していますが、その他はほぼ全て再発明品です。

*1 ・・・まだ過去形になっていない

*2 仕様上はbig endianでも作れることになっているが実際little endianの辞書しかない

*3 本来PowerPCってbi-endianだったような気がしますが

*4 CodeWarrior 8.3J+PowerPlant