(toppers-users 539) RE: TOPPERS/JSP のコンフィグレータ

Takayuki WAKABAYASHI takayuki @ ertl.ics.tut.ac.jp
2002年 9月 10日 (火) 21:59:19 JST


豊橋技術科学大学の若林です。

ここのところ物議を醸していたコンフィギュレータですが、
そろそろ下火になってきたようなので、この辺で修正をFIXします。

---8<---
TOPPERS/JSPの公式コンフィギュレータには、次の修正を加えました。

 ・mpstrstreamのデストラクタでファイル操作に失敗すると
    異常終了するバグを修正 (デストラクタ内例外スローの抑止)
 ・処理が正常に終了しなかった場合、kernel_cfg.cなどを
    書き換えないように修正
 ・リンク順序によってプログラムが動かなくなるなどの問題を修正
 ・終了時のオブジェクト破棄ルーチンを真っ当な形に修正
 ・エラーメッセージの先頭に "ファイル名:行番号" が来るよう修正
 ・マナー違反なC++コードの修正
    - デストラクタ内例外スロー
    - 無意味な後置インクリメントによる反復子操作
    - ポインタによる例外スロー
    - delete this;
    - "__" "_[A-Z]"で始まる予約識別子の使用回避
    - #endifの後の改行が無い
    - 仮想消滅子を持たない基本クラスからの派生
 ・Directoryクラスの生成/破棄の対称性の問題の修正
    #Directoryの動的メモリ確保を ::operator newで行う
 ・fopenの処理系依存のモード指定 "t" の排除
 ・オプションの追加
    - 起動時のバナー表示の抑制  --nologo (-nl)
    - 処理しなかったAPIを標準出力へスルー --through (-t)

今回の修正によってほとんどのファイルに触ってしまったので、別途ダウンロー
ドできるようにしました。こちらから最新のコンフィギュレータを取得してくだ
さい。

TOPPERS/JSPコンフィギュレータ (jsp/cfg以下)
  [ EUC-LF ] http://www.ertl.ics.tut.ac.jp/TOPPERS/JSP/cfg-1.3-snapshot.
tar.gz
  [SJIS-CRLF]
http://www.ertl.ics.tut.ac.jp/TOPPERS/JSP/cfg-1.3-snapshot.lzh

---8<---

ここから先は私が勝手に作った拡張モジュールです。

個人的なコンフィギュレータ拡張モジュールに加えた修正
 ・ORTI依存部, 拡張APIの分離
 ・オプションの追加
    - 使っていないオブジェクトの定義をkernel_cfg.cに出さない
       --minimize-cfg (-mcfg) [隠し + 拡張]
    - #include <...> スタイル   --include-libstyle (-il)
       (kernel_cfg.cの中の各オブジェクトの
                         ヘッダファイルに対してのみ有効)
 ・静的APIの追加
    - ATT_FIN   : 破棄ルーチンの作成 (ATT_INIの逆順)
    - VCRE_CTSK : 周期起動タスクの生成

これらのモジュールを利用するためには、別途拡張モジュールが必要になりま
す。
このファイルを混ぜた状態のものも置いておきます。

「これはもうTOPPERSプロジェクトの公式のコンフィギュレータではない」
   ということをご了承の上でお取り下さい。

拡張モジュールつきTOPPERS/JSPコンフィギュレータ (jsp/cfg以下)
  [ EUC-LF ] http://www.ertl.ics.tut.ac.jp/~takayuki/temporary/extcfg-1.
3-snapshot.tar.gz
  [SJIS-CRLF]
http://www.ertl.ics.tut.ac.jp/~takayuki/temporary/extcfg-1.3-snapshot.lz
h

---8<---

今回、修正に加えなかった保留事項は次の通りです。

保留事項
 ・例外の明示化 ( throw(), throw(Exception) )
      単純に作業量が多いので、この次までの課題にします
 ・void * の多用
      意識改革から始めます
        # C言語   != 「超高級アセンブリ言語」
        # C++言語 != 「擬似オブジェクト指向型超高級アセンブリ言語」
 ・外部プログラムの起動
      個人的にやってみようとは思っています

今回はコンフィギュレータのバグフィクスというよりも、マナー違反対策と機能
拡張がメインになりました。最後になりましたが、今回の修正に積極的にコメン
トをお寄せ頂いた松川さん, 高木さんのご両名に改めて感謝申し上げます。

--------
  わかばやし たかゆき (mailto:takayuki @ ertl.ics.tut.ac.jp)