[#4858] Build fails on OSX Tiger 10.4 — noreply@...

Bugs item #1883, was opened at 2005-05-06 14:55

21 messages 2005/05/06
[#4862] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Yukihiro Matsumoto <matz@...> 2005/05/07

Hi,

[#4865] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Ryan Davis <ryand-ruby@...> 2005/05/07

[#4868] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — nobu.nokada@... 2005/05/07

Hi,

[#5053] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Shugo Maeda <shugo@...> 2005/05/19

Hi,

[#5056] Re: [ ruby-Bugs-1883 ] Build fails on OSX Tiger 10.4 — Mark Hubbart <discordantus@...> 2005/05/19

On 5/19/05, Shugo Maeda <shugo@ruby-lang.org> wrote:

[#4874] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...>

Hello all,

31 messages 2005/05/10
[#4879] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Pit Capitain <pit@...> 2005/05/11

Ilias Lazaridis schrieb:

[#4883] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

Pit Capitain wrote:

[#4884] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ryan Davis <ryand-ruby@...> 2005/05/12

[#4888] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

Ryan Davis wrote:

[#4889] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — ES <ruby-ml@...> 2005/05/12

[#4890] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Ilias Lazaridis <ilias@...> 2005/05/12

ES wrote:

[#4891] Re: [THIN] - Need to reduce Ruby Sources to the Minimal — Alexander Kellett <ruby-lists@...> 2005/05/12

On May 12, 2005, at 3:13 PM, Ilias Lazaridis wrote:

[#4911] Pointless argc check in Array#select — noreply@...

Patches item #1900, was opened at 2005-05-12 09:33

11 messages 2005/05/12

[#4919] - Hierarchical/Modular Directory Structure — Ilias Lazaridis <ilias@...>

The source-code structure should be simplified, lowering barriers for

20 messages 2005/05/12

Method hooks in singleton classes

From: Pit Capitain <pit@...>
Date: 2005-05-06 08:01:59 UTC
List: ruby-core #4855
Hello Ruby-maintainers,

currently the hooks method_added, method_removed, method_undefined are 
*not* sent to singleton_classes. Instead, the corresponding singleton 
method hooks are sent to the "attached" instance.

Example from eval.c:

   if (FL_TEST(klass, FL_SINGLETON)) {
     rb_funcall(rb_iv_get(klass, "__attached__"), singleton_added, 1, 
ID2SYM(mid));
   }
   else {
     rb_funcall(klass, added, 1, ID2SYM(mid));
   }

Is there any chance to always execute the else clause, as in:

   if (FL_TEST(klass, FL_SINGLETON)) {
     rb_funcall(rb_iv_get(klass, "__attached__"), singleton_added, 1, 
ID2SYM(mid));
   }
   rb_funcall(klass, added, 1, ID2SYM(mid));

With this change, both the singleton method hooks and the method hooks 
would be called in the case of a singleton class.

The reason I'm asking: in a library I'm writing I'd like to be able to 
catch *every* method redefinition for a given object. Something like

   o = Object.new

   def o.singleton_method_added( m )
     puts "gotcha"
   end

Currently, this works only as long as the singleton_method_added method 
isn't overridden. If someone later redefines

   def o.singleton_method_added( m )
     puts "no more"
   end

the original method isn't called anymore. Changing Ruby as proposed 
would allow me to do

   class << o
     def method_added( m )
       puts "gotcha"
     end
   end

and get notified even when singleton_method_added is redefined.

I could send patches for this change, if you like.

Regards,
Pit

In This Thread

Prev Next