[#45189] 『初めてのRuby』出版記念トークイベントのお知らせ — KOU Keiko <keiko@...>
オライリー・ジャパンの高と申します。
2 messages
2008/07/04
[#45199] Windows版のirbでカットアンドペーストはできますか? — take_tk <ggb03124@...>
たけ(tk)です。
5 messages
2008/07/06
[#45214] Debian4 GNU/LinuxとRubyGemsについて。 — hrkt0115311 <hrkt0115311@...>
Rubyistの皆さん、おはようございます。
5 messages
2008/07/10
[#45227] [ANN/ADV] RubyKaigi2009 会場候補地を探してます — "Shintaro KAKUTANI" <shintaro@...>
かくたにです。
5 messages
2008/07/16
[#45234] Matrix のサブクラスのインスタンス生成 — "M.Uemura" <mitsuhideuemura@...>
うえむら@文京区と申します。
5 messages
2008/07/17
[#45240] ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました — hayashi <36hayashi@...>
林と申します。
9 messages
2008/07/18
[#45244] Re: ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました
— Nobuyoshi Nakada <nobu@...>
2008/07/19
なかだです。
[#45246] Re: ruby-1.8.5-p231にアップデートしたら"original_filename"が取れなくなりました
— とみたまさひろ <tommy@...>
2008/07/20
とみたです。
[#45241] Ruby版Camelliaライブラリ — Satoru Kanno <kanno-s@...>
Ruby-listの皆さま
5 messages
2008/07/18
[#45259] nkf -j problem? — OHARA Shigeki <os@...>
大原です。
7 messages
2008/07/25
[#45267] [ANN] Ruby 1.9.0-3リリース — "Yugui (Yuki Sonoda)" <yugui@...>
Yuguiです。
16 messages
2008/07/25
[#45268] Re: [ANN] Ruby 1.9.0-3リリース
— take_tk <ggb03124@...>
2008/07/25
たけ(tk)です。
[#45289] Fwd: [ReferenceManualRenewalProject - Bug #379] (Open) String#intern は空文字列に使えない(Ruby 1.8) -- Ruby 1.9 は違うのでは — Kouya <kouyataifu4@...>
こんばんは、kouyaです。
3 messages
2008/07/31
[ruby-list:45186] Re: ソース:インストール:MacOSX10.3.9
From:
Hidetoshi NAGAI <nagai@...>
Date:
2008-07-04 05:15:25 UTC
List:
ruby-list #45186
永井@知能.九工大です.
rom: Ryutaro Amano <wn9r-amn@asahi-net.or.jp>
Subject: [ruby-list:45184] Re: ソース:インストール:MacOSX10.3.9
Date: Thu, 3 Jul 2008 20:01:06 +0900
Message-ID: <BBDF25D8-9635-489B-AE43-774900126281@asahi-net.or.jp>
> 天野です。RES遅くなり申し訳ありません。
お世話になってます.
> > README.tcltklib の末尾あたりにある --enable-tcl-thread を
> > configure オプションに追加して,threaded であることを
> > 明示してやると
> > どうなるでしょうか.
>
> 確かにpthreadへのwarningはなくなりますが、やはり
> 同じエラーです。
(snip)
> パッケージ作者のDaniel A. Steffenさんは、既に10.3.9
> の走るマシンを持ってないそうです。
早い話,この点については Ruby/Tk 側には責任はないということで
良いのでしょうね.
# pthread 認識の失敗については,tclConfig ファイルの内容と
# 現実のライブラリとに不整合があるのかもしれません.
> 10.3.9の方はtcltkをソースからインストールすると問題ない
> 訳ですが、10.5のほうの
> 1.9.0-2と組み合わせた際の
>
> Tk_MacOSXSetupTkNotifier: first [load] of TkAqua has to occur in the
> main thread!
> Abort trap
>
> これはソースからインストールしても同じなので、何とかなると嬉
> しいのですが。
このエラーは tkMacOSXNotify.c の Tk_MacOSXSetupTkNotifier で
出ているのですが,コメントによると eventloop thread は
アプリケーションの main native thread で動かさないと
ならないということのようなので困っています.
ご存じの通り,Ruby 1.9 では thread ごとに native thread が
生成されます.
Tk の eventloop は,Tcl/Tk インタープリタを初期化した
native thread 上でしかまともにはきませんから,
Ruby 1.9 では新しく thread を生成して
その中でインタープリタの生成および eventloop の稼働を
行うようにしています.
で,Tk.mainloop はこの thread を監視するような形にすることで
Thread.new{Tk.mainloop} としても大丈夫なように対策し,
Ruby 1.8 との互換性を維持しています.
ところが,MacOS X (Carbon) では,eventloop を
main thread で動かさない限りは動作しないということになると,
この方法が使えないということになるわけです.
かといって main thread を勝手に乗っ取るわけにもいかないので,
「はてさてどうすべきか...」という状況です.
Tk.mainloop を main thread で実行しさえすれば問題は出ず,
かつ,アプリケーションの最後で Tk.mainloop を実行するような
コーディングで構わないということであれば,
「そんなときのために」の機能をすでに組み入れてはいます.
もし試してみていただけるなら,
----------------------------------------------------------
module TkCore; RUN_EVENTLOOP_ON_MAIN_THREAD = true; end
require 'tk'
----------------------------------------------------------
というように,'tk' を require する前に
定数を宣言していただけないでしょうか.
これをやれば,Ruby 1.8 と同様に,
インタープリタ生成に際して thread を作って
eventloop まで起動しておくというのはしなくなります.
その代り,main thread 以外で Tk.mainloop を動かしても
全く機能しないはずです.
試してみていただいた結果,これであれば動くということであれば,
応急処置的に MacOS X (Carbon) では RUN_EVENTLOOP_ON_MAIN_THREAD を
true としてしまうことは可能かと思います.
制約はあるわけですが,全く動かないよりはマシですので.
# 「応急処置的に」とは言ってますが,
# 仕組みに対しての理解が正しければ,
# 解消できるかどうかは甚だ疑問です.
intel Mac と PowerPC Mac とでは違うという話もあるようですし,
正直なところ,テスト環境のない私ではすべてに確信が持てません.
MacOS X 10.5 + Ruby 1.9.0-2 + Tcl/Tk 8.5 というような環境での
テストが可能な方がいらっしゃいましたら,
テスト結果を教えていただけますと助かります.
ただ,残念ながら「報告いただければ解決します」とは言えないのが
現実であり,申し訳なくもあるのですが...
--
永井 秀利 (nagai@ai.kyutech.ac.jp)
九州工業大学 大学院情報工学研究院 知能情報工学研究系