[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 2762] seldon1, adelaid1.



  こんにちは、川合です。

  今日は、seldon1とadelaid1をベータリリースします。

  これらのバージョンは、えせファイルシステムのライト機能が搭載さ
れている・・・と思いきや、その部分はまだ出来ていません。もうしば
らくおまちください。あとちょっとです。

  ではこれらのバージョンの特徴は何かというと、「関連付け」です。

  起動してみると分かると思いますが、今までとは違ってpokonのセレ
クターの中に.BIN以外のファイルも表示されます。そして、

・.BINを選べば、アプリケーションとして起動。
・.TXTを選べば、TVIEWC05を起動して選択したファイルをオープン。
・.BMPを選べば、BMPV03を起動して選択したファイルをオープン。
・それ以外の拡張子は、BEDITC00を起動して選択したファイルをオープ
  ン。

ということになっています。拡張子で判別しているあたりが僕としては
情けないのですが、タグシステムがまだ全然出来ていないためにファイ
ルタイプをシェルが簡単に判断するのは今のところ拡張子しかないので
これは勘弁してください。このことで僕が拡張子という方法を推奨して
いるとは判断しないでください。

  この機能をつけることにしたのは、テキストファイルを観るのがやた
らに面倒だと思ったからです。・・・TVIEC05を選んで起動し、その都
度ファイルセレクタで目的のファイルを選ぶ・・・。

  ビュワーの一つにBMPV03が選択されていることで想像が付くように、
この関連付けはアプリケーション側で何か特別な用意が必要というわけ
ではありません。シェル側の加工だけで対応できます。もともとそうい
う設計だったのです。

---

  ついでに書いておきます。もしかしたら、既にどこかで書いたかもし
れませんが。

  ぐいぐい00仕様のアプリケーションで何よりも最初にやらなければい
けないことは、もちろん初期化です。ここでいう初期化というのは、li
b_init()を呼ぶことです。・・・アプリケーションによってはぐいぐい
00へのファンクションを利用する前にいろいろやることがあるかもしれ
ず、そういうアプリケーションを作る時は、「最初のファンクションを
呼ぶより前に初期化すればそれでいいだろう」なんて思うかもしれませ
んが、それはとてもよくないプログラミングスタイルです。とにかく、
できるだけ早めに初期化してください(まあ、単純な変数の初期化や、
static変数のパックを解くくらいはしょうがないと思いますが)。

  そして初期化が済んだあとにすぐにやるべきことは、シグナルボック
スのオープンです(シグナルを全く扱わない場合を除く)。ウィンドウ
を開いてからでいいやとか、シグナル定義が済んでからでいいや、なん
て思ってはいけません。タスクが起動した瞬間からシグナルは送られて
きている可能性が常にあります。シグナル定義なんてお構いなしに、で
す。シグナルボックスがオープンされているない状態でシグナルを受信
した場合、pioneer0は非常な苦労をしてこれを処理しています。こんな
苦しい状態を早く脱するべきです。・・・シグナルボックスさえ開いて
しまえば、シグナルを溜め込んでしまってもそれはかまいません。

  いつだったかに書いたと思いますが、OSASKにとってシグナル定義は
厳密にはオプショナルなものです。シグナル定義していないシグナルが
来ることだって原理的にはありえるくらいです。それゆえに、シグナル
を受け付けられる状態へ早期に移行するのは、とても必要なことなので
す。

  ・・・以上とても偉そうに書いていますが、実は僕がリリースしたア
プリケーションでもこのルールを守っていないものがかなりあると思い
ます。このルールは一番最初から決まっていたルールなのに、特に強調
することも、僕自身が強く気に留めることも、あまりしてこなかったよ
うに思います。・・・しかしこれからは、このルールに準拠しているか
どうかをよく調べようと思っています。以前のアプリケーションについ
ても、少しずつチェックし直して、改めていきたいと思っています。

  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/