http://ponx.s5.xrea.com/bibo/20040309.html#p02
ツッコミ入れようと思ったらエラーになってしまったので、 こちらに書いておきます。
Windows 上で動く Ruby それぞれの違いについてです。 あくまで「ぼくが理解した……」という頭書きつきで読んでほしいのですが、 まとめると次のようになります。
msvcrt というのは MS VC++ Runtime のことで、 ようするに libc みたいなもんです。 mswin32 ruby は VC++ でコンパイルして msvcrt とリンクした ruby。 mingw ruby は MinGW の gcc でコンパイルして msvcrt とリンクした ruby です。 だから mswin32 ruby と mingw ruby は拡張ライブラリを共有できます。
ついでに Cygwin 版というのは、 Cygwin の gcc でコンパイルして、 Cygwin DLL とリンクした ruby のことです。
ただし本質的なのはコンパイラではなく リンクしているライブラリのほうなので、 対応しているビルドスイートさえあれば Linux 上で Cygwin 用や msvcrt 用の ruby をクロスコンパイルすることもできます。
よーするに、問題は動くときの calling convention と ランタイムライブラリなんです。 アーキテクチャは同じ (i386) なんですから。
でもって bcc 版がよくわからんのですが、 あれもランタイムライブラリは msvcrt なんでしょうか? それとも独自 libc?
(追記) あー、とっくの昔にうささんの説明が出てた……。
(追記 2) 田村さんのところにも言及があった……。
(19:36)
結局中古で買ってしまった。1280 円で安かった。 スーファミ本体は当然のごとく動態保存されているので問題なし。 AC 電源なんてファミコンのをずっと使ってるんだけど、よく壊れないな。
(20:17)
うっわ、これはまたすごいな。構造体型フラグがのきなみ変わってる。 1 ビット空けたということは、1bit GC への布石と予測してみる結合テスト。
(02:10)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
bccはbccwin32となります。Microsoftのところのmsvcrt.dllはないです。RubyはCコールなのと、関数の名前付け規則の問題で、MicrosoftとBorlandのDLLは相乗りできないのです;;
なるほど、別 DLL でしたか。
どうもありがとうございます。
RubyExtensionProgrammingGuide Rev12が途中で切れてるんだけど、これは改修中(意図的)だから? それとも事故?
最後の文字が途中で切れてたりするし、事故っぽいですね。
送信途中で回線が切れたとか、そういうことでしょうか。