こんにちは、なかむら(う)です。

At Aug.21,2002 02:18:23, <eban / os.rim.or.jp> wrote in
    '[ruby-dev:18050] Re: msvcrt'
> $(arch)というのはCONFIG["arch"]なわけで、これは今現在それぞれ
>   CONFIG["arch"] = "i386-mingw32"
>   CONFIG["arch"] = "i386-mswin32"
> となってますよね?これが
>   CONFIG["arch"] = "i386-msvcrt"
> になるようにするにはconfigure.inでarchを変更しなければいけな
> いけど、そうするとRUBY_PLATFORMもi386-msvcrtになってしまうん
> じゃないかなと思ってました。でも
>     arch="${target_cpu}-${target_os}"
>     AC_DEFINE_UNQUOTED(RUBY_PLATFORM, "${arch}")
> の後に
>     case "$target_os" in
>       mingw*) arch='i386-msvcrt';;
>     esac
> を追加すればいい気がしてきました。

理解しました。

他にもなんか引っかかるところがあるんじゃないかとも思ってます
が、Ruby本体で発生する問題は、それなりに回避できるんじゃない
かと楽観的に考えてます。


> 後はruby.cでRUBY_THIN_ARCHLIB, RUBY_SITE_THIN_ARCHLIBのよう
> な定数を用意して処理を加えればよしと。
> となると決めなきゃいけないのはその名前と優先順位ぐらいかな?
> i386-msvcrt/とi386-(mswin32|mingw32)/のどちらを優先するか?
> 今までi386-(mswin32|mingw32)/だったからそこには古い拡張ライ
> ブラリが残っているのでi386-msvcrtを優先しないとまずい。

定数の名前は特によさそうなアイデアがないので保留します。
あと、rbconfig.rbの中でどんな名前でi386-(mswin32|mingw32)を
残すか、も考える必要がありますね。
こっちもアイデアはまだありません(定数と同じような名前になる
んでしょうけど)。

優先順位ですが、古い拡張ライブラリが残っていることは気にしな
くていいんでないでしょうか。
1.6から1.8へ移行する人の場合はバージョン番号が違うから関係な
いし、1.7を使ってる人は覚悟の上ということで。

と、いうわけで、

> でも専用と汎用という観点からはi386-msvcrtのほうが後のほうが
> いいんじゃないという気もする。うーむ。

こっちに一票です。
よって、

> というわけで、archは今まで通りi386-(mswin32|mingw32)のままで
>    CONFIG["archdir"] = "$(rubylibdir)/$(arch)"
> として、単にi386-msvcrt/も探すようにruby.cを変更。後から追加
> する拡張ライブラリはi386-msvcrt/へインストールされるように
> mkmf.rbを改造するという案はどうでしょう?

ではなく、やはりarchをi386-msvcrtとする案を提案します。


それでは。
--
U.Nakamura <usa / osb.att.ne.jp>