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

[OSASK 1798] exe2bin2, stdlib2.



  こんばんは、川合です。

  exe2bin2とstdlib2をベータリリースします。

  lcc-win32で作ったバイナリーは、コンパイルする度に所定のバイト
が変化してしまうため、同一かどうかを判定するのが少し面倒でした。
そこで、そういう未使用の領域をゼロクリアするバージョンを用意しま
した。それが、exe2bin2です。

  しかし、ただゼロクリアするだけでは面白くないので、static変数の
初期値の一部をこの未使用領域に格納して、ファイルサイズを稼いでい
ます。このような仕様にしたため、従来のmallocが使えなくなってしま
いました。そこで、新mallocを用意しました。stdlib2に入っています
。

  stdlib2のmallocはexe2bin2が設定した特別なフィールドを参照する
のでexe2bin1などと組み合わせて利用する事はできません。ご注意くだ
さい。

  また、この仕様変更のせいで、exe2bin2は以前ベータ公開したファイ
ル関係のソースとの相性が悪くなっています。あれらをコンパイルする
際には、stdlib1とexe2bin1を使ってください。exe2bin2に対応したフ
ァイル関係のソースは後日用意します。

  さらに、exe2bin2には「-c」オプションがあり、これをつけるとstat
icデーターイメージを圧縮します(圧縮アルゴリズムはdevers3と同じ
もの)。コード部分は圧縮していません。

  例:"invader0.bin"
    (1)stdlib1 + exe2bin1         : 4,800バイト
    (2)stdlib2 + exe2bin2(-cなし) : 4,321バイト
    (3)stdlib2 + exe2bin2(-cあり) : 4,075バイト

  ASKAで作ったアプリケーションのstaticイメージも圧縮できますが、
これはソースをある程度書き換える必要があります。そのため、あまり
手軽には試せません。今のところは、試さないでください(当方でテス
トしたところ、music1.binが1,641バイト→1,140バイトになりました)
。詳しい事は後日説明します。lcc-win32用のソースは改変なしで-cオ
プションを利用できます。

  B.DarrellやMonacoでは、pokon0やwinman0の生成に-cオプションを付
けてビルドする予定です(どちらもそれぞれ1KB程度コンパクトになる
ようです)。また、OSASK ver.1.5に添付するアプリケーションは、全
部圧縮された状態にしたいと思っています。

  それでは。

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