サイトトップへ
OSASK.NET
  サイトトップへ       新掲示板(閉鎖済)   Wiki(凍結済)   旧掲示板(廃止済)   ニュース(廃止済)  
7: 2008-11-27 (木) 12:48:57 ソース 現: 2024-01-08 (月) 12:58:41 ゲスト ソース
Line 1: Line 1:
-* ぐいぐい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互換機間でも生じうる差だから、事実上、機種の違いはないといっていい。
Line 10: Line 11:
-ということで[[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.11.27時点)+-(2008.12.25時点)
-代表的な実行環境(右にあるほど実装度が高い・最新仕様) -代表的な実行環境(右にあるほど実装度が高い・最新仕様)
-|~対応環境    |                      |                      | +|~対応環境    |                      |                      |     
-|win32        |abcdw003 [OSASK 00106] |abcdw005 [OSASK 00114]| +|win32        |abcdw003 [OSASK 00106] |abcdw006 [OSASK 00116]|abcdw007 [OSASK 00117]| 
-|OSASK-HB/AT  |pencil000 [OSASK 00108]|                      | +|OSASK-HB/AT  |pencil000 [OSASK 00108]|                      |     
-|OSASK-HB/TOWNS|                      |                      | +|OSASK-HB/TOWNS|                      |                      |     
-|OSASK-HB/NEC98|                      |                      | +|OSASK-HB/NEC98|                      |                      |     
-|旧OSASK      |                      |                      | +|旧OSASK      |                      |                      |     
-|Linux        |abcdl000 [OSASK 00109] |                     +|Linux        |abcdl000 [OSASK 00109] |mabcdl00.tar.gz      |mabcdl01.tar.gz
-|MonaOS        |abcdm000 [OSASK 00107] |                      |+|MonaOS        |abcdm000 [OSASK 00107] |                      |       | 
 +|おれんじぺこ  |                      |op05_081214.zip      |      | 
 +|BeOS          |                      |mabcdb00.zip          |      | 
 +|NWSOS        |                      |                      |      | 
 +-MomongaLinuxのオプショナルパッケージにabcdw014相当のefg01あり(たぶん)
---- ----
--(2008.11.27時点) +-(2008.12.28時点) 
--アプリ(上のものほど新しい)(註:(b)=バグあり、(v)=既に旧バージョンで新バージョンがリリース済み) +-アプリ(上のものほど新しい)(註:(b)=バグあり、(v)=これは既に旧バージョンで、新バージョンがリリース済み、探しやすいように無印(=最新版)はCOLOR(#0000ff){青}で着色) 
---abcdw005相当およびそれ以上でバイナリの動作が期待できるもの +--abcdw007相当およびそれ以上でバイナリの動作が期待できるもの 
----cpy0bにバンドル([OSASK 00115]): nask, gas2nask, cpy +---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} 
----abcdw005にバンドル([OSASK 00114]): cpy(v), bim2g01, obj2bim, gas2nask(b), naskcnv0, sjisconv, golib00, bim2hrb, makefont, bin2obj, aksa +--abcdw006相当''のみ''でバイナリの動作が期待できるもの 
---abcdw004相当およびそれ以上でバイナリの動作が期待できるもの +---COLOR(#ff0000){abcdw006}にバンドル([OSASK 00116]): bim2g01(v), calc0(v), chars1(v), golib00(v), nask(v), obj2bim(v) 
----abcdw004にバンドル([OSASK 00113]): pi0, hellok1, helloc4, helloc5, echoc0, cp0(v), bim2g01(b)+--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相当''のみ''でバイナリの動作が期待できるもの --abcdw003相当''のみ''でバイナリの動作が期待できるもの
----abcdw003にバンドル([OSASK 00106]): calc0, pi0(v)+---COLOR(#ff0000){abcdw003}にバンドル([OSASK 00106]): calc0(v), pi0(v)
--abcdw002相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの --abcdw002相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの
----helloc4にバンドル([OSASK 00105]): helloc4(v), helloc5(v) +---COLOR(#ff0000){helloc4}にバンドル([OSASK 00105]): helloc4(v), helloc5(v) 
----abcdw002にバンドル([OSASK 00104]): helloc0(v), helloc1(v), helloc2(v), helloc3(v)+---COLOR(#ff0000){abcdw002}にバンドル([OSASK 00104]): helloc0(v), helloc1(v), helloc2(v), helloc3(v)
--abcdw001相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの --abcdw001相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの
----abcdw001にバンドル([OSASK 00103]): hellonr0(v), echonr0(v), calcnr0(v)+---COLOR(#ff0000){abcdw001}にバンドル([OSASK 00103]): hellonr0(v), echonr0(v), calcnr0(v)
--abcdw000相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの --abcdw000相当~abcdw003相当''のみ''でバイナリの動作が期待できるもの
----chars0にバンドル([OSASK 00102]): chars0 +---COLOR(#ff0000){chars0}にバンドル([OSASK 00102]): chars0(v) 
----abcdw000にバンドル([OSASK 00101]): hellok0(v)+---COLOR(#ff0000){abcdw000}にバンドル([OSASK 00101]): hellok0(v)
-*** (14) 仕様変更リスト +*** (14) 仕様変更リスト [#c00bdd6c] 
--(2008.11.27時点)+-(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.11.18)APIの基本の可変長整数値エンコードを変更。これに伴いabcdw003およびそれ以前向けのバイナリは全てabcdw004以降のバージョンでは使用不能。ソースレベルでの互換性はほぼ保たれているので、多くのアプリはヘッダファイルの交換と再コンパイル程度で対応可能。
-(2008.05.08)コマンドライン取得APIの仕様を変更する予定。これに伴い以下のアプリはabcdw004以降のバージョンでは使用不能。 -(2008.05.08)コマンドライン取得APIの仕様を変更する予定。これに伴い以下のアプリはabcdw004以降のバージョンでは使用不能。
--echonr0, calcnr0, calc0 --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

トップ   差分 バックアップ 複製 名前変更 リロード印刷に適した表示   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ
新着

目次
メンバー一覧


最新の20件
2016-10-01 2016-09-08
  • @MenuBar.
2016-09-07 2016-09-04 2016-08-15 2015-09-23 2014-07-30 2014-07-04 2014-02-04 2013-10-26 2013-06-21 2013-06-17 2013-06-15 2013-04-02 2013-02-09 2013-02-04 2012-12-25 2012-12-01 2012-05-28 2012-03-31

トピック一覧
一般用コメント最新
新掲示板lina
2016/9/5 20:58
SandBoxゲスト
2016/9/4 12:01
RecentDeletedlina
2015/6/2 19:29
Old-OSASK-MLlina
2014/6/29 9:14
hideyosi/メールhideyosi
2014/1/6 20:17
hideyosi/募集中lina
2013/11/8 19:56

このサイトは川合秀実から委託を受けて、OSASKコミュニティによって管理・運営されています。