[#45341] 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...>

 ささだです.

28 messages 2012/03/11
[#45816] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

 ささだです.

[#45817] Re: 非同期割り込みに対する対処案(日本語版) — Tanaka Akira <akr@...> 2012/06/25

2012年6月25日 18:26 SASADA Koichi <[email protected]>:

[#45819] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

 ささだです.

[#45820] Re: 非同期割り込みに対する対処案(日本語版) — Tanaka Akira <akr@...> 2012/06/25

2012年6月25日 19:39 SASADA Koichi <[email protected]>:

[#45827] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

(2012/06/25 20:32), Tanaka Akira wrote:

[#45841] Re: 非同期割り込みに対する対処案(日本語版) — Tanaka Akira <akr@...> 2012/06/25

2012年6月26日 3:40 SASADA Koichi <[email protected]>:

[#45844] Re: 非同期割り込みに対する対処案(日本語版) — SASADA Koichi <ko1@...> 2012/06/25

(2012/06/26 5:07), Tanaka Akira wrote:

[#45372] Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (Keiju ISHITSUKA)

けいじゅ@いしつかです.

14 messages 2012/03/16
[#45376] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — Yukihiro Matsumoto <matz@...> 2012/03/17

まつもと ゆきひろです

[#45377] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (石塚圭樹) 2012/03/17

けいじゅ@いしつかです.

[#45381] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — Yukihiro Matsumoto <matz@...> 2012/03/17

まつもと ゆきひろです

[#45399] Re: Marshal.dumpにおけるインスタンス変数の取り扱いについて — keiju@... (石塚圭樹) 2012/03/18

けいじゅ@いしつかです.

[#45412] [ruby-trunk - Feature #6177][Open] array.cのrb_ary_equal()の高速化 — "Glass_saga (Masaki Matsushita)" <glass.saga@...>

13 messages 2012/03/20

[#45471] [ruby-trunk - Bug #6230][Open] [WEBrick] WEBrick::HTTPResponse#body の IO オブジェクトの読み込みに read メソッドを使っているため必要以上にブロックされる — "nobuoka (yu nobuoka)" <nobuoka@...>

7 messages 2012/03/30

[ruby-dev:45433] [ruby-trunk - Feature #4043][Assigned] グローバル関数current_classの提案

From: "mame (Yusuke Endoh)" <mame@...>
Date: 2012-03-25 05:27:52 UTC
List: ruby-dev #45433
Issue #4043 has been updated by mame (Yusuke Endoh).

Status changed from Open to Assigned
Assignee set to matz (Yukihiro Matsumoto)


----------------------------------------
Feature #4043: グローバル関数current_classの提案
https://bugs.ruby-lang.org/issues/4043#change-25102

Author: metanest (Makoto Kishimoto)
Status: Assigned
Priority: Low
Assignee: matz (Yukihiro Matsumoto)
Category: core
Target version: 2.0.0


=begin
 カレントクラス(MRIの内部でいうところのcref)をRubyから調べられるメソッドcurrent_classを提案します。
 グローバル関数(Kernelのプライベートメソッド)にする理由は、self(ないしなんらかのオブジェクト)とは関係ない値を返すメソッドであるため、です。
 ユースケースですが、例えば以下のようにして、モジュールのinstance_evalとmodule_evalの違いをRubyプログラマが確かめることができ、Rubyの理解に役立ちます。
 
 $ irb19
 irb(main):001:0> module M ; end
 => nil
 irb(main):002:0> M.instance_eval { current_class }
 => #<Class:M>
 irb(main):003:0> M.module_eval { current_class }
 => M
 
 差分を付けますが、クイックハックですので修正が必要かと思います。
 
 diff --git a/object.c b/object.c
 index 75192c1..82ad85a 100644
 --- a/object.c
 +++ b/object.c
 @@ -2408,6 +2408,13 @@ rb_f_array(VALUE obj, VALUE arg)
      return rb_Array(arg);
  }
 
 +VALUE rb_vm_cref_cls(void);
 +static VALUE
 +rb_f_current_class(VALUE obj)
 +{
 +    return rb_vm_cref_cls();
 +}
 +
  /*
   *  Document-class: Class
   *
 @@ -2588,6 +2595,8 @@ Init_Object(void)
      rb_define_global_function("String", rb_f_string, 1);
      rb_define_global_function("Array", rb_f_array, 1);
 
 +    rb_define_global_function("current_class", rb_f_current_class, 0);
 +
      rb_cNilClass = rb_define_class("NilClass", rb_cObject);
      rb_define_method(rb_cNilClass, "to_i", nil_to_i, 0);
      rb_define_method(rb_cNilClass, "to_f", nil_to_f, 0);
 diff --git a/vm.c b/vm.c
 index 980e7ea..dcc43df 100644
 --- a/vm.c
 +++ b/vm.c
 @@ -819,6 +819,12 @@ rb_vm_cref(void)
      return vm_get_cref(cfp->iseq, cfp->lfp, cfp->dfp);
  }
 
 +VALUE
 +rb_vm_cref_cls(void)
 +{
 +    return rb_vm_cref()->nd_clss;
 +}
 +
  #if 0
  void
  debug_cref(NODE *cref)
=end



-- 
http://bugs.ruby-lang.org/

In This Thread

Prev Next