2: 2008-12-21 (日) 01:22:15 [6] | 3: 2008-12-21 (日) 11:29:46 [7] | ||
---|---|---|---|
Line 15: | Line 15: | ||
|COM64plus用|RIGHT:''21''|検討中? |RIGHT:''15''|? |? | | |COM64plus用|RIGHT:''21''|検討中? |RIGHT:''15''|? |? | | ||
|DOS用 |RIGHT:22 |? |RIGHT:17 |RIGHT:''19''|? | | |DOS用 |RIGHT:22 |? |RIGHT:17 |RIGHT:''19''|? | | ||
- | --註:echoはargv[0]が見えても見えなくてもよい。 | + | --(註)echoはargv[0]が見えても見えなくてもよい。 |
--echoはもちろんジャンクAPIで実現しているが、ジャンクAPIはジャンクであるというマークがついている分だけ実行ファイルが長くなる傾向がある。もし他の部分は一切変えずに本仕様に昇格させれば、それだけでechoもecho-cも2バイトは縮むだろう。 | --echoはもちろんジャンクAPIで実現しているが、ジャンクAPIはジャンクであるというマークがついている分だけ実行ファイルが長くなる傾向がある。もし他の部分は一切変えずに本仕様に昇格させれば、それだけでechoもecho-cも2バイトは縮むだろう。 | ||
-abcdw006→abcdw007の仕様変更はかなり大きなもので、基本的にバイナリ互換はありません。ソース互換すらほどほどしかありません。大規模改造なので僕も非常に苦労しています(アプリの移植はそれほどでもないけど、efg01の改造が大変)。 | -abcdw006→abcdw007の仕様変更はかなり大きなもので、基本的にバイナリ互換はありません。ソース互換すらほどほどしかありません。大規模改造なので僕も非常に苦労しています(アプリの移植はそれほどでもないけど、efg01の改造が大変)。 | ||
Line 21: | Line 21: | ||
-それにhello-cも static char s[18] = "\x35\x01\x24\x8d" "hello, world\n" "\x23"; なんていういかにも「うさんくさい」「こんなの普通書くわけない」といった方法での86バイトだったのが、 g01_putstr0("hello, world"); という普通の書き方で71バイトになるようになっています。汚く書いたらもう少し小さくなるかもしれませんがまああまり変わらないでしょう。 | -それにhello-cも static char s[18] = "\x35\x01\x24\x8d" "hello, world\n" "\x23"; なんていういかにも「うさんくさい」「こんなの普通書くわけない」といった方法での86バイトだったのが、 g01_putstr0("hello, world"); という普通の書き方で71バイトになるようになっています。汚く書いたらもう少し小さくなるかもしれませんがまああまり変わらないでしょう。 | ||
-という劇的な大進歩なので、互換性がちょっと不足気味だったりリリースにてこずったりしても、どうか大目にみてください。 | -という劇的な大進歩なので、互換性がちょっと不足気味だったりリリースにてこずったりしても、どうか大目にみてください。 | ||
+ | -「こんな互換性に問題の出るバージョンアップが繰り返されたら安心してアプリを作れないじゃないか!」というのはもっともです。「いったいいつになったら落ち着くんだ?」といいたくなるでしょう。しかしこれは永遠に続くわけではないのです。というのはたとえばhelloは文字列だけで13バイトあって、しかも.g01のシグネチャだけで2バイトあるのですから、これだけでも最低15バイトは必要です。これより小さくなることはありえません(一般的なAPIとして不適切な設計にしない限り)。もちろんテキストファイルじゃないので他にも書かなければいけない何らかの情報やプログラムがあるわけですから、どのアプリもAPIを改良すればどこまでも小さくなるわけではないのです。限界があるのです。その限界に達してしまえば、それ以上どんなにいじってもより小さくなることはないので、仕様のバージョンアップが起きることはないはずです。 | ||
+ | -現状を見てください。なんかもうひどく限界に近い気がしませんか?まあ僕だってabcdw006の段階で既に限界だと思っていました。だからそういう「感じ」が必ずしもあてになるわけではないのですが、しかし大いに参考になる目安だとは思います。・・・早く限界に近づかせる方法は、このサイズを追求する人がさらに増えて、この分野の研究が進むことでしょう。 | ||
+ | | |pi | | ||
+ | |abcdw006用|RIGHT:241| | ||
+ | |abcdw007用|RIGHT:206| | ||
+ | --(註)piは.hrb版の229バイトに対して逆転に成功。 | ||
* こめんと欄 | * こめんと欄 | ||
#comment | #comment |
(This host) = http://osask.net