[#46732] ヒアドキュメント内の変数展開が正常に行われない — ShingoKintaka <kamuycikap@...>

Ruby  :1.8.7 (Ubuntu9.10)

12 messages 2010/01/05
[#46733] Re: ヒアドキュメント内の変数展開が正常に行われない — rubikitch@... 2010/01/06

From: ShingoKintaka <kamuycikap@tulip.ocn.ne.jp>

[#46800] DLモジュールの使い方 — kouichi_someya@...

染谷と申します。

12 messages 2010/01/20
[#47678] プログラム実行時に「[BUG] Segmentation fault」 — 染谷 康一 <kouichi_someya@...> 2010/12/09

染谷と申します。

[ruby-list:46815] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生

From: Hidetoshi NAGAI <nagai@...>
Date: 2010-01-25 20:39:19 UTC
List: ruby-list #46815
永井@知能.九工大です.

From: 門脇 修司 <kadowaki.shuji@jp.fujitsu.com>
Subject: [ruby-list:46813] Re: TkTable.rbで"[BUG] Segmentaion fauilt"発生
Date: Mon, 25 Jan 2010 17:16:48 +0900
Message-ID: <20100125171642.2AA0.DA7C2934@jp.fujitsu.com>
> > そのため,tktable.rb 以外でも同じように SEGV する可能性がありますが,
> > それらについても応急処置として GC.disable/GC.enable で囲んでください.
> 
> わかりました。まずはこの手で回避し、もしも他の部分で同じことがおきたら
> 囲んでいきます。

ごめんなさい.
いくら応急処置にしてもインストール済みのものの変更が必須というのは
良い回避策提示とは言えませんでしたね.
ローカルの環境だけであればそれでもいいのでしょうけど,
作成したものを他所に提供する場合には困ります.

今回の回避策は monky patch で可能ですので,
他所でも動かすならその方がいいでしょう.
その場合は,アプリケーション上で require 'tk' をした後に
次の記述を加えてください.
--------------------------------------------------------
class << TkUtil::CallbackSubst
  alias _orig_setup_subst_table _setup_subst_table
  def _setup_subst_table(*args)
    st = GC.disable
    _orig_setup_subst_table(*args)
    GC.enable unless st
  end
end
--------------------------------------------------------
この程度の記述であれば,今後 bug fix が行なわれた後でも
特に問題を引き起こすことはないはずです.

> ruby_1_8に対して提供いただけるだけでとてもうれしいです。
> (ruby_1_9だけ、と言われても不思議でない時期ですよね?)

まだ暫くは ruby_1_8 への提供は終わらないと思います.
リリース版が出てなくても,
SVN サーバから ruby_1_8/ext/tk 以下を入手して置き換えて 
make, install すれば,新しいものを使えるはずです.
-- 
永井 秀利  (nagai@ai.kyutech.ac.jp)
九州工業大学 大学院情報工学研究院 知能情報工学研究系 知能情報メディア部門

In This Thread