こんにちは、川合です。 先日確定したstk1に加えて、stk2、stk5を確定しました。どちらも内 容は[OSASK 6989]から変わっていません。 http://k.hideyosi.com/bim2bi4n.lzh (166KB) 今回はこれに加えて、LGPLのものを集めたリリースもあります。 http://k.hideyosi.com/tk5lgpl0.lzh (154KB) --- まず、ライセンスについてです。tek5はLGPLが適用されたLZMAのソー スを利用して作られているため、全てをKL-01だけにすることはできて いません。 ・tek5の圧縮ルーチン: ほとんどLGPL ・tek5の展開ルーチン(C版): 半分以上がLGPL ・tek5の展開ルーチン(ASKA版): 完全にKL-01 で、LGPLの及ぶ範囲を最小限にするために、LGPLのものを集めたパッケ ージとKL-01のものを集めたパッケージに分けました。 LGPLについてGPLと同じようなものだと思っている人がいるようなの で、簡単に違いを説明しておきます。LGPLはGPLとKL-01の中間のような 性質を持ちます。 LGPLの頭のLは、かつてはLibraryの略であったことからも分かるよう に、LGPLはライブラリによく適用されるライセンスで、たとえばgccに 付属する標準関数ライブラリなどがLGPLになっています(今はLibrary の略ではないとされている)。 たとえば僕が適当にprintfを使ったプログラムを書いてgccでビルド したら、実行ファイルには当然のことながらLGPLが適用されたprintfル ーチンを含むことになります。しかし、これも当然のことながら、gcc でprintfを使ったら、そのプログラムのライセンスにLGPLを加えなけれ ばいけない、ということはありません。好きなライセンス、たとえば KL-01などを自由に適用できます。つまり、LGPLでかかれたものをライ ブラリとして自分のプログラムの一部にそのまま取り込む分には、ライ センスに対する注文は何もないのです。・・・このへんはとてもKL-01 っぽくていいです。 しかし一方、LGPLのものを改良したり改造したりした場合、それは GPLと同様に公開義務が生じます。今回はLZMAのソースをそのまま使わ ずに、一部に改造を入れています。もしこれを一つのパッケージでリ リースすると、どこまでがLZMAルーチンに対する改造なのかという問 題が出るかもしれないので(このへんがあやふやだと、bim2binや関連 ライブラリをすべてLGPLにしなければいけなくなる恐れがあります) 、改造は改造でtk5lgplにまとめて、それを改変なしで組み込んだ bim2binをべつにリリースしました。これにより、bim2binはKL-01にな ります。 --- 簡単な使いかたです。詳しい使い方は、bim2bin4nのreadme.txtに書 いてあります。 このバージョンからrjcという機能が入っていて、OSASKのアプリの 圧縮率が(たとえtek0であっても)改善しています。しかしrjcはOSASK ver.4.6以降でしかサポートされないので、今のOSASKでも使うのなら、 オプションにrjc:0を加えるようにしてください(もちろん-tek0も必要 です)。 ちなみにrjcというのはx86の32bit相対ジャンプ命令をあえて絶対ア ドレスジャンプに書き換えるという圧縮前コンバータで、展開時には 展開直後に逆変換します。変換・逆変換負荷は非常に小さくて、これ によりスライド辞書法が効果的に効くようになって、展開速度や圧縮 率が上がるわけです。 僕が推奨している圧縮形式はtek5です。 [普通の圧縮] prompt>bim2bin -osacmp -tek1 in:data.bin out:data.tk prompt>bim2bin -osacmp -tek2 in:data.bin out:data.tk prompt>bim2bin -osacmp -tek5 in:data.bin out:data.tk 面倒なオプションを書かなくても、最初からstk互換になっています。 デフォルトはclv:4です。圧縮率を上げたいときはclv:5にしてくださ い。 [OSASKアプリ生成] prompt>bim2bin in:helloc4.bim out:helloc4.org malloc:1k mmarea:0 -tek2 prompt>bim2bin in:helloc4.bim out:helloc4.org malloc:1k mmarea:0 -tek5 下の例には注意が必要です。tek5を指定する場合は、obj2bimで指定す るスタックの大きさが最低でも36k必要です。 --- これからOSASKをstk1〜stk5に対応させ、edimgやGO系ツールもstk1〜 stk5に対応させて、さらにosa_dirもバージョンアップさせる予定です。 それが済み次第、KHBIOSの開発にも着手する予定です。 参考までに、bim→org、org→binの両方でtek5を指定したinvader5は 1186バイトでした。tek0が1258だったので、5.7%も改善することになり ます。 なお、先日paqar 1.3という驚異的な圧縮ソフトを見つけたので(な んとあのrkを超える!)、それに基づいてOSASK-Wikiの圧縮比較表も更 新しました。 それでは。 -- 川合 秀実(KAWAI Hidemi) OSASK計画代表 / システム設計開発担当 E-mail:kawai !Atmark! osask.jp Homepage http://osask.jp/