こんにちは、川合です。
先日確定した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/