[#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
[#32199] Re: [提案] Array#tail — Yukihiro Matsumoto <matz@...> 2007/11/10

まつもと ゆきひろです

[#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:32290] Re: toplevel irb method

From: Yukihiro Matsumoto <matz@...>
Date: 2007-11-14 08:19:27 UTC
List: ruby-dev #32290
まつもと ゆきひろです

In message "Re: [ruby-dev:32289] Re: toplevel irb method"
    on Wed, 14 Nov 2007 16:54:42 +0900, keiju@ishitsuka.com (石塚圭樹) writes:

|一応, rubyと同じ振る舞いをするのが目標ですので, 意図はしてなかったです.
|
|で, なぜこうなってしまったかというと, irb では 評価のBinding を
|TOP_LEVEL_BINDINGではなく,
|
|	  @binding = eval("def irb_binding; binding; end; irb_binding",
|		      TOPLEVEL_BINDING, 
|		      __FILE__,
|		      __LINE__ - 3)
|
|をデフォルトのコンテキストにしています. これは, サブirbを起動したとき
|にローカル変数を共有しないためにこうなっています.
|
|で, 上記 @binding で
|
|  eval("def foo;end", @binding)
|
|すると, publicなメソッドとなるのです. これは仕様なのでしょうか?

トップレベルバインディングではデフォルトprivateというのが仕
様です。で、@bindingはトップレベルではないので、デフォルトは
publicになります。これを変更する方法があるのかどうかよく分か
りませんが。

|仕様だとすると, 対した悪さをするわけでもないのでこのままほっとくか, 他
|のバインディングを使うかになるのですが...

手元では

@binding = eval("def irb_binding; binding; end; irb_binding",
                TOPLEVEL_BINDING, 
                __FILE__,
                __LINE__ - 3)

eval("def foo; p 42; end", @binding)

を実行した場合、fooはprivate methodになりました。なにが違うん
でしょうね。どうもYARVではvibisibility情報がbindingではなく、
crefに格納されているようで、静的に解決されてるみたいですけど、
それと関係あるのかなあ。

visibilityがcrefにあることとか、静的に解決されちゃう(evalで
すりかわらない)こととかはどうよ、という気もしないでもないの
ですが、それは後で考えることにしましょう。

In This Thread