From: Hidetoshi NAGAI Date: 2007-10-01T03:22:13+09:00 Subject: [ruby-dev:31923] Re: Import RubyGems to Ruby 1.9 永井@知能.九工大です. From: Yukihiro Matsumoto Subject: [ruby-dev:31920] Re: Import RubyGems to Ruby 1.9 Date: Mon, 1 Oct 2007 01:10:32 +0900 Message-ID: > |3. tkはどうしましょう。 > > 永井さんであるのは間違い無いです。問題は「1.9対応は大変」とおっ > しゃっていたので、1.9に対応できるかどうかですが。 色々な件 (私事) が一区切りとなったので, 丁度,どうにかしようとし始めたところでした. 1.9 対応にはかなりの労力がかかりそうなのは事実で, 新しい thread に適切に対応するためには tcltklib.c の大幅な書き直し (中枢部は完全な作り直し) が 必要になるのではないかと見ています. まずは現状 (リビジョン 13578) でどの程度動作するものかを 調べていたのですが,今の状態では,少なくとも イベントループ (Tk.mainloop) が main thread の上でしか動かず, 別スレッドからの命令も受け付けできないようです. # 暫く前は Thread.new{require 'tk'; Tk.mainloop} ではなんとか動き, # 別スレッドからの命令も受理できていたと思うのですが, # 今はこの形式でも # [BUG] cross-thread violation on eventloop_sleep() # ってことになります. サンプルを色々と動かして調べたいのですが, 現状は autoload がうまく働いていないようで, ---------------------------------------------------------- $ ruby require 'tk' TkButton.new /usr/local/lib/ruby/1.9/tk/label.rb:6:in `': uninitialized constant TkLabel (NameError) from /usr/local/lib/ruby/1.9/tk/button.rb:5:in `require' from /usr/local/lib/ruby/1.9/tk/button.rb:5:in `' from -:2:in `
' ---------------------------------------------------------- だったり, ---------------------------------------------------------- $ ruby require 'tk' require 'tk/label' TkButton.new /usr/local/lib/ruby/1.9/tk/label.rb:6:in `': uninitialized constant TkLabel (NameError) from -:2:in `require' from -:2:in `
' ---------------------------------------------------------- だったりします. そのくせ, ---------------------------------------------------------- $ ruby require 'tk' TkLabel.new TkButton.new ---------------------------------------------------------- は OK だったりするのがなんとも.(^_^; -- 永井 秀利 (九工大 知能情報) nagai@ai.kyutech.ac.jp