[#32185] Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...>

こんにちは、山本と申します。

26 messages 2007/11/08
[#32186] Re: Date#+に大きな数字を与えるとおかしな日付に — Tadayoshi Funaba <tadf@...> 2007/11/08

> Dateオブジェクトに+で大きな数字を与えるとおかしくなるようです。

[#32188] Re: Date#+に大きな数字を与えるとおかしな日付に — "madoka yamamoto" <yamamotomadoka@...> 2007/11/09

山本です。

[#32191] Re: Date#+に大きな数字を与えるとおかしな日付に — tadf@... 2007/11/09

> アルゴリズムの意味がわからないで書いた、表層的なパッチなので

[#32194] Re: Date#+に大きな数字を与えるとおかしな日付に — Yukihiro Matsumoto <matz@...> 2007/11/09

Hi,

[#32200] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Tadayoshi Funaba <tadf@...> 2007/11/10

> 1.9ではRationalとComplexを組み込みに、という話はありましたが、

[#32225] Re: rational (Re: Date#+に大きな数字を与えるとおかしな日付に) — Shin-ichiro HARA <sinara@...> 2007/11/12

原です。

[#32198] [提案] Array#tail — "Yusuke ENDOH" <mame@...>

遠藤と申します。

21 messages 2007/11/09

[#32352] 1.9.1のリリース時期について — KIMURA Koichi <hogemuta@...>

木村です。

16 messages 2007/11/24
[#32353] Re: 1.9.1のリリース時期について — Yukihiro Matsumoto <matz@...> 2007/11/24

まつもと ゆきひろです

[#32403] Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Takahiro Kambe <taca@...>

こんばんは。

32 messages 2007/11/29
[#32414] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/11/30

卜部です。

[#32444] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Yukihiro Matsumoto <matz@...> 2007/12/03

まつもと ゆきひろです

[#32488] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — Urabe Shyouhei <shyouhei@...> 2007/12/08

卜部です。

[#32525] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/10

遠藤と申します。

[#32643] Re: Next 1.8.6 patch release? (was Re: 1.9.1のリリース時期について) — "Yusuke ENDOH" <mame@...> 2007/12/19

遠藤です。

[#32409] Re: [ruby-cvs:21293] Ruby:r14056 (trunk): * signal.c (trap_signm): SIGVTALRM no longer used for green — SASADA Koichi <ko1@...>

 ささだです.

10 messages 2007/11/30

[ruby-dev:32394] Proc 内の self の値が化ける?

From: Hidetoshi NAGAI <nagai@...>
Date: 2007-11-28 18:36:47 UTC
List: ruby-dev #32394
永井@知能.九工大です.

発生条件がよく分からないのですが,Proc オブジェクト内部の self の値が
いつの間にか化けてしまう現象が出てしまい,困っています.
例えば

  class A
    def initialize
      @proc = proc{p self.class}
    end
    def ex
      @proc.call
    end
  end
  a = A.new
  a.ex
  #--- 何かの処理 (X) ---
  a.ex

のようなことをすれば A, A を出力するはずですが,
proc オブジェクトの生成や取り扱い,
あるいは上記 (X) の部分の処理内容によっては 
A, <何か別のクラス> という結果が出てしまうことがあるようです.

バイナリは
  ruby 1.9.0 (2007-11-28 patchlevel 0) [i686-linux]
です.

問題が発生したのは ext/sample/tkballoonhelp.rb です.
上記の現象が発生した場合,本来参照しているインスタンス変数に
アクセスできないため,エラーダイアログが表示されます.
self 化けの結果として SEGV となる場合もあります.

何に化けているかを見るためにスクリプトをいじると
String に化けたり Array に化けたりと一定していませんが,
化けるまでの処理過程の途中で用いたいずれかのオブジェクトに
なってしまっているようです.
また,一度化けてしまった後は再度化けることはないようです.

Thread は作っていませんから,native thread 絡みの問題ではないと
考えています.

このような現象の原因について,どなたか心当たりはないでしょうか.
proc オブジェクトに直接には触れていない部分で変化してしまっているので
Ruby/Tk 固有の問題というわけではないように思っているのですが...

P.S.
ところで,Proc#binding ってなくなったんですか?
今回の現象を調べる際に使おうとしたら存在しなかったもので.
-- 
                                       永井 秀利 (九工大 知能情報)
                                           nagai@ai.kyutech.ac.jp

In This Thread