[#46329] [ruby-trunk - Feature #7252][Assigned] version number of 2.0 release — "usa (Usaku NAKAMURA)" <usa@...>

26 messages 2012/11/01

[#46350] RubySpecメンテナ — Yukihiro Matsumoto <matz@...>

まつもと ゆきひろです

15 messages 2012/11/02
[#46352] Re: RubySpecメンテナ — Urabe Shyouhei <shyouhei@...> 2012/11/02

On 11/01/2012 07:43 PM, Yukihiro Matsumoto wrote:

[#46414] [ruby-trunk - Bug #7287][Open] please rename atomic.h which conflicts with /usr/include/atomic.h in Solaris10 — "ngoto (Naohisa Goto)" <ngotogenome@...>

10 messages 2012/11/06

[#46434] トラップハンドラで許されない操作はなにか — KOSAKI Motohiro <kosaki.motohiro@...>

GyRCPi46aiRHJDkbKEIKCltCdWcgIzcxMzRdIBskQiRyRDQkWSRGJCQkRj88SiUkSjtFTU1MZEJq

9 messages 2012/11/06

[#46440] [ruby-trunk - Bug #7300][Open] Hash#[] の挙動が 1.9.3 と異なっている — "hsbt (Hiroshi SHIBATA)" <shibata.hiroshi@...>

12 messages 2012/11/07

[#46477] Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — SASADA Koichi <ko1@...>

refinement を導入するときの性能に対する excuse が「method cache に殆どあ

20 messages 2012/11/11
[#46480] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — Shugo Maeda <shugo@...> 2012/11/11

前田です。

[#46488] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — SASADA Koichi <ko1@...> 2012/11/12

 ささだです.

[#46491] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — Shugo Maeda <shugo@...> 2012/11/12

前田です。

[#46493] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — SASADA Koichi <ko1@...> 2012/11/12

 ささだです.

[#46495] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — Shugo Maeda <shugo@...> 2012/11/12

前田です。

[#46497] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — SASADA Koichi <ko1@...> 2012/11/12

(2012/11/12 18:20), Shugo Maeda wrote:

[#46501] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — Shugo Maeda <shugo@...> 2012/11/12

前田です。

[#46513] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo): — Nobuyoshi Nakada <nobu@...> 2012/11/14

なかだです。

[#46509] [ruby-trunk - Bug #7344][Open] gem pristine bigdecimal が失敗してしまう — "hsbt (Hiroshi SHIBATA)" <shibata.hiroshi@...>

31 messages 2012/11/13

[#46520] [ruby-trunk - Bug #7356][Open] ruby-2.0.0-preview1 で adlint-2.6.10 が性能劣化 — "yanoh (Yutaka Yanoh)" <yutaka@...>

11 messages 2012/11/15

[#46647] [ruby-trunk - Bug #7452][Assigned] Main thread is stopped after running finalizers if the main thread has a finalizer — "mrkn (Kenta Murata)" <muraken@...>

8 messages 2012/11/28

[ruby-dev:46528] Re: Fwd: [ruby-changes:25559] shugo:r37616 (trunk): * vm_core.h (rb_call_info_t::refinements), compile.c (new_callinfo):

From: SASADA Koichi <ko1@...>
Date: 2012-11-16 08:52:36 UTC
List: ruby-dev #46528
(2012/11/16 17:22), Shugo Maeda wrote:
> 前田です。
> 
> 2012年11月16日 17:02 Nobuyoshi Nakada <nobu@ruby-lang.org>:
>>> それでもいいかもしれませんが、他のモジュールをprependした時に挿入位置を調整したり
>>> するのが面倒じゃないです?
>>> また、usingを使っていないコンテキストで呼ばれた時に、メソッド探索のコストが増えるように
>>> 思います。
>>
>> そういったデメリットもたしかに考えられるのですが、例えば以下のよ
>> うにusingのあとでさらにrefineされた場合はそのメソッドエントリは
>> 書き換えられないのではないかという気がします。
>>
>>   class X
>>   end
>>   module M
>>     refine(X) {}
>>   end
>>   using M
>>   module M
>>     refine(X) {def foo;:foo;end}
>>   end
>>   p X.new.foo
>>
>> refine中では対象のクラスはわかっているわけだから、メソッド定義の
>> ときにすでに書き換えられたメソッドエントリを書き直してまわればい
>> いのかな。
> 
> refineのブロック内でメソッド定義するたびにメソッドエントリを追加又は変更するものと思って
> いましたが、prependベースの案だとそうしなくてよいんです?
> # prependベースだと追加だけでよくなると思いますが。


 少なくとも今回の例は,2回目の refine まで X::foo は追加されないと思う
ので何も問題無いと思うんですが,勘違いでしょうか.

> どちらかというと、rb_method_definition_t::bodyに元のメソッドエントリを保存する方法だと
> メモリ管理の面で面倒(メソッドエントリはメモリ管理が特殊なので)な気がしてきたので、
> そういう意味でprependベースの方がすっきりするかもしれないですね。

 えーと,特殊かなぁ.たんに,refine type な definition が消えたときに,
一緒に original_definition を消せばいいだけのような.

 いや,やってみないとわからないかもしれないですが,何か複雑怪奇なリファ
レンスを持ち回るような場合はわからんですが,そうなる例が思いつきませんで
した.

 そういえば alias ってどうなんだろう.

-- 
// SASADA Koichi at atdot dot net

In This Thread