[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]
[OSASK 1798] exe2bin2, stdlib2.
- Subject: [OSASK 1798] exe2bin2, stdlib2.
- From: Hidemi KAWAI <kawai !Atmark! imasy.org>
- Date: Fri, 29 Jun 2001 14:06:32 -0000
こんばんは、川合です。
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/