永井@知能.九工大です.

From: Ryutaro Amano <wn9r-amn / asahi-net.or.jp>
Subject: [ruby-list:45149] Re: ソース:インストール:MacOSX10.3.9
Date: Fri, 27 Jun 2008 23:09:37 +0900
Message-ID: <B64D1AE8-19F0-424B-9285-7A1B84E51E9B / asahi-net.or.jp>
> extconf.rbへのpatch確かめました。OKです。

テストしていただいてありがとうございました.
enable-tcltk-framework の時には tcl.h, tk.h のチェックを行わないことで
問題はないようですね.

> 10.3.9+ruby-1.8.7-p22+8.5.2binaryのmakeエラーは以下のよ 
> うになります。
    (snip)
> ActiveTcl-8.5.2とTclTkAqua-8.5.2は、どちらもthreaded 
> です。

Tcl/Tk ライブラリの thread 対応の判別に失敗しているのが
一つの原因のようですね.
README.tcltklib の末尾あたりにある --enable-tcl-thread を
configure オプションに追加して,threaded であることを明示してやると
どうなるでしょうか.

> > また,以前のメールに記載されていた CFLAGS=- 
> > D_XOPEN_SOURCE=1 は
> > どのような環境では必要なのか (必要と判断されたの 
> > か) も
> > わかりましたら教えてください.
> 
> これは、[ruby-dev:33461] 以下のスレを見て、自分の環境で 
> 試したところ、
> 10.5.xの環境+PowerPCMacでは、CFLAGS=- 
> D_XOPEN_SOURCE=1がないと1.8
> .xは、makeでこけるとわかったということです。

10.5.x の PowerPC の場合には必ずそうなるんでしょうか.
intel Mac では必要ないという報告もありましたし...
10.3.9 のエラーログの分には -D_XOPEN_SOURCE となっているんですよね.
う〜む.何が悪いんだろう???

> > TclTkAqua-8.4.10だとエラーはおきません。ただし、tk/sample/demos-
> > jp/widget
> > は、漢字の部分が文字化けです。
> 
> TclTkAquaのwishは、英語なので、日本語の説明はありません 
> が、unicodeのサンプルは文字化けしています。

Tcl/Tk 自体がそうであるなら,Ruby/Tk ではどうしようもないですね.
まずは TclTkAqua に頑張ってもらうしかありません.

> > Tk_MacOSXSetupTkNotifier: first [load] of TkAqua has to occur in the
> > main thread!
> > Abort trap
> 上記用のpatchを当てても同じ結果です。
> 
> 10.5.3環境で、8.5.2をソースからインストールした 
> 後、patchを当てて1.9.0-2をインストールしても同じ 
> 結果でした。

そうですか...
そうなるとこの件の解決はかなりやっかいなのかもしれません.
インタープリタ初期化時のイベントループと native thread との絡み
ってことになるのでしょうけど...

時間をかけて丁寧に検討する必要があるかもしれません.
やはり開発環境がないと厳しいですね.

別の報告にあったように intel Mac では生じず,
PowerPC Mac のみで生じる問題というのであれば
MacOS X 版の Tcl/Tk の問題という可能性もありうるのですが...

MacOS X ユーザとして,何か気が付いたことはありませんか?
-- 
永井 秀利  (nagai / ai.kyutech.ac.jp)
九州工業大学 大学院情報工学研究院 知能情報工学研究系