3: 2008-05-05 (月) 13:02:19 |
現: 2024-01-08 (月) 12:58:41 ゲスト |
- | * ぐいぐい01に関するメモ-03 | + | TITLE:x |
| + | * ぐいぐい01に関するメモ-03 [#m5a822b7] |
| -(by [[K]], 2008.04.28) | | -(by [[K]], 2008.04.28) |
| -メモのうち重要な部分をそのうちまとめてまともなページを作る | | -メモのうち重要な部分をそのうちまとめてまともなページを作る |
- | *** (12) 標準ライブラリ不要論? | + | *** (12) 標準ライブラリ不要論? [#o2dda1e9] |
| -C言語には一般にprintfやputsやfopenなどの標準ライブラリというものがある。これの何がありがたいのかというと、これらの関数だけを使っている限りにおいてソース互換が達成されて、CPUやOSが違ってもソースコードを流用したり共用できるというものである。・・・まあでもこれは建前で、現実にはエンディアンやint幅の違いでただの再コンパイルだけではうまくいかない場合も少なくはない。 | | -C言語には一般にprintfやputsやfopenなどの標準ライブラリというものがある。これの何がありがたいのかというと、これらの関数だけを使っている限りにおいてソース互換が達成されて、CPUやOSが違ってもソースコードを流用したり共用できるというものである。・・・まあでもこれは建前で、現実にはエンディアンやint幅の違いでただの再コンパイルだけではうまくいかない場合も少なくはない。 |
| -さて「ぐいぐい01」を使えば、このようなライブラリに頼らずともソースの完全互換どころかバイナリまで互換になる。エンディアンとかintの幅とかが違う心配も全くない。差異はせいぜい環境によって処理速度や画面の解像度が違うといった程度で、これは同じOSのAT互換機間でも生じうる差だから、事実上、機種の違いはないといっていい。 | | -さて「ぐいぐい01」を使えば、このようなライブラリに頼らずともソースの完全互換どころかバイナリまで互換になる。エンディアンとかintの幅とかが違う心配も全くない。差異はせいぜい環境によって処理速度や画面の解像度が違うといった程度で、これは同じOSのAT互換機間でも生じうる差だから、事実上、機種の違いはないといっていい。 |
| -ということで[[K]]は、「ぐいぐい01」が出来上がって行くにつれて、自作アプリでは標準ライブラリを使わなくして行こうと思う(今後はwin32アプリなどはほとんど作らない予定)。そしてそのうち標準ライブラリの関数名や引数の順番を忘れちゃうんだと思うけど、それでも忘れないように努力するみたいなことは一切しないと思う。そんなことするくらいなら「ぐいぐい01」のAPIを覚えておくほうがマシだと思うから。 | | -ということで[[K]]は、「ぐいぐい01」が出来上がって行くにつれて、自作アプリでは標準ライブラリを使わなくして行こうと思う(今後はwin32アプリなどはほとんど作らない予定)。そしてそのうち標準ライブラリの関数名や引数の順番を忘れちゃうんだと思うけど、それでも忘れないように努力するみたいなことは一切しないと思う。そんなことするくらいなら「ぐいぐい01」のAPIを覚えておくほうがマシだと思うから。 |
| ---- | | ---- |
- | -こうしてみると、なんで世の中の人たちは「ぐいぐい01」のようなアプローチをしなかったんだろうと思う。WindowsとLinuxとMacOS(BSD?)とTownsOS(DOS-Extender)で共通のアプリが作れるようにしていればよかったのに。これらに対して共通のOSを用意しないといけないと思っていたのかな、でもefg01で分かるようにそんなことしなくてもバイナリ互換は達成可能だったのに。そしてアプリが共通化されていれば、ソフトウェア資産なんてドライバくらいしか優劣がなくなるから、OS同士の競争が進んでOSも進化しただろうに。まあいいや、誰もやってくれなかったから僕がやっているわけで、僕は苦労する代わりに「世界初」という肩書きももらっておくことにするよ。きっとjavaや.netでこれをやったつもりになっているんだろうな。でもjavaや.netではオーバーヘッドが大きすぎて「ぐいぐい01」の代わりにはならないと思う。 | + | -こうしてみると、なんで世の中の人たちは「ぐいぐい01」のようなアプローチをしなかったんだろうと思う。WindowsとLinuxとMacOS(BSD?)とTownsOS(DOS-Extender)で共通のアプリが作れるようにしていればよかったのに。これらに対して共通のOSを用意しないといけないと思っていたのかな、でもefg01で分かるようにそんなことしなくてもバイナリ互換は達成可能だったのに。そしてアプリが共通化されていれば、ソフトウェア資産なんてドライバくらいしか優劣がなくなるから、OS同士の競争が進んでOSも進化しただろうに。まあいいや、誰もやってくれなかったから僕がやっているわけで、僕は苦労する代わりに「世界初」という肩書きももらっておくことにするよ。きっとjavaや.netでこれをやったつもりになっているんだろうな。でもjavaや.netではオーバーヘッドが大きすぎて「ぐいぐい01」の代わりにはならないと思う(ここでいうオーバーヘッドは単に実行時の処理のオーバーヘッドだけではなく、他の環境への移植の苦労も含む)。 |
| | | |
- | *** (13) バージョン対応表 | + | *** (13) バージョン対応表 [#pc917b16] |
- | -(2008.05.05時点) | + | -(2008.12.25時点) |
- | -abcdw003 | + | -代表的な実行環境(右にあるほど実装度が高い・最新仕様) |
- | --win32版、バージョンリーダー、[OSASK 00105] | + | |~対応環境 | | | | |
- | -abcdm000 | + | |win32 |abcdw003 [OSASK 00106] |abcdw006 [OSASK 00116]|abcdw007 [OSASK 00117]| |
- | --MonaOS用、abcdw003相当(完全互換)、[OSASK 00107] | + | |OSASK-HB/AT |pencil000 [OSASK 00108]| | | |
| + | |OSASK-HB/TOWNS| | | | |
| + | |OSASK-HB/NEC98| | | | |
| + | |旧OSASK | | | | |
| + | |Linux |abcdl000 [OSASK 00109] |mabcdl00.tar.gz |mabcdl01.tar.gz| |
| + | |MonaOS |abcdm000 [OSASK 00107] | | | |
| + | |おれんじぺこ | |op05_081214.zip | | |
| + | |BeOS | |mabcdb00.zip | | |
| + | |NWSOS | | | | |
| + | -MomongaLinuxのオプショナルパッケージにabcdw014相当のefg01あり(たぶん) |
| + | ---- |
| + | -(2008.12.28時点) |
| + | -アプリ(上のものほど新しい)(註:(b)=バグあり、(v)=これは既に旧バージョンで、新バージョンがリリース済み、探しやすいように無印(=最新版)はCOLOR(#0000ff){青}で着色) |
| + | --abcdw007相当およびそれ以上でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){abcdw007}にバンドル([OSASK 00117]): COLOR(#0000ff){aksa}, COLOR(#0000ff){bim2g01}, COLOR(#0000ff){bim2hrb}, COLOR(#0000ff){bin2obj}, COLOR(#0000ff){calc}, COLOR(#0000ff){chars}, COLOR(#0000ff){cpy}, COLOR(#0000ff){echo}, COLOR(#0000ff){echoc}, COLOR(#0000ff){gas2nask}, COLOR(#0000ff){golib00}, COLOR(#0000ff){hello}, COLOR(#0000ff){helloc}, COLOR(#0000ff){makefont}, COLOR(#0000ff){nask}, COLOR(#0000ff){naskcnv0}, COLOR(#0000ff){obj2bim}, COLOR(#0000ff){pi}, COLOR(#0000ff){sjisconv} |
| + | --abcdw006相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){abcdw006}にバンドル([OSASK 00116]): bim2g01(v), calc0(v), chars1(v), golib00(v), nask(v), obj2bim(v) |
| + | --abcdw005相当~abcdw006相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){cpy0b}にバンドル([OSASK 00115]): nask(v), gas2nask(v), cpy(v) |
| + | ---COLOR(#ff0000){abcdw005}にバンドル([OSASK 00114]): cpy(v), bim2g01(v), obj2bim(v), gas2nask(b), naskcnv0(v), sjisconv(v), golib00(v), bim2hrb(v), makefont(v), bin2obj(v), aksa(v) |
| + | --abcdw004相当~abcdw006相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){abcdw004}にバンドル([OSASK 00113]): pi0(v), hellok1(v), helloc4(v), helloc5(v), echoc0(v), cp0(v), bim2g01(b) |
| + | --abcdw003相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){abcdw003}にバンドル([OSASK 00106]): calc0(v), pi0(v) |
| + | --abcdw002相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){helloc4}にバンドル([OSASK 00105]): helloc4(v), helloc5(v) |
| + | ---COLOR(#ff0000){abcdw002}にバンドル([OSASK 00104]): helloc0(v), helloc1(v), helloc2(v), helloc3(v) |
| + | --abcdw001相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){abcdw001}にバンドル([OSASK 00103]): hellonr0(v), echonr0(v), calcnr0(v) |
| + | --abcdw000相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの |
| + | ---COLOR(#ff0000){chars0}にバンドル([OSASK 00102]): chars0(v) |
| + | ---COLOR(#ff0000){abcdw000}にバンドル([OSASK 00101]): hellok0(v) |
| + | |
| + | *** (14) 仕様変更リスト [#c00bdd6c] |
| + | -(2008.12.25時点) |
| + | ~ |
| + | ~ |
| + | -(2009.01.02)abcdw009でAPIパケットのフォーマットを一部改変予定。C言語ソースレベルでの互換性は保たれるが、アセンブラ版はソース互換なし。 |
| + | -(2008.12.24)abcdw007はCOM64plusとの開発競争で大幅な進歩を遂げたが、代償として大量に仕様変更。ソースもバイナリも互換性が損なわれている。abcdw007にはそれまでに[[K]]がリリースした.g01アプリを全てabcdw007仕様に移植しバンドルした。 |
| + | -(2008.11.28)rjcの変換ルールを若干変更予定。これに伴いefg01とbim2g01は再度バージョンアップされる。以前のbim2g01で作られたバイナリは一部互換性に問題がある(ソースレベルでは全く問題はないので再makeすればいい)。[[K]]がabcdw004以降用のバイナリとしてリリースしたもののうち、問題が確認されているものは次の3つのみ。golib00.g01、obj2bim.g01、nask.g01。 |
| + | -(2008.11.18)APIの基本の可変長整数値エンコードを変更。これに伴いabcdw003およびそれ以前向けのバイナリは全てabcdw004以降のバージョンでは使用不能。ソースレベルでの互換性はほぼ保たれているので、多くのアプリはヘッダファイルの交換と再コンパイル程度で対応可能。 |
| + | -(2008.05.08)コマンドライン取得APIの仕様を変更する予定。これに伴い以下のアプリはabcdw004以降のバージョンでは使用不能。 |
| + | --echonr0, calcnr0, calc0 |
| + | * こめんと欄 [#c5a31d01] |
| + | - [[M59]]さんがabcdw006をLinuxに移植してくれました。どうもありがとう! http://d.hatena.ne.jp/mandel59/20081218/1229613730 -- [[K]] &new{2008-12-19 (金) 11:33:09}; |
| + | - [[M59]]さんがabcdw006をBeOSにも移植してくれました! http://d.hatena.ne.jp/mandel59/20081221 -- ''K'' &new{2008-12-22 (月) 16:12:05}; |
| + | - [[M59]]さんが早速abcdw007をLinuxに移植してくれた模様。スクリーンショットがなかなかで、単にhelloを実行した後、nask.g01を使ってchars.nasをLinux上でアセンブルしてそのchars.g01を実行しています。かつてLinux版naskの整備に苦労させてしまった経緯を思うと、僕にとっては感動的です(当初は[[OSASK_bin_on_Linux(old)]]にあるようにソースからのコンパイルのみならずパッチが必要なほど大変だったのです)。 http://d.hatena.ne.jp/mandel59/20081224 -- ''K'' &new{2008-12-25 (木) 16:04:30}; |
| | | |
- | * こめんと欄 | |
| #comment | | #comment |