[#41916] Proposal: Bitmap Marking GC — Narihiro Nakamura <authornari@...>

Hi.

18 messages 2012/01/05

[#41941] [ruby-trunk - Bug #5851][Open] make check fails when compiling with GCC 4.7 - *** longjmp causes uninitialized stack frame *** — Vit Ondruch <v.ondruch@...>

12 messages 2012/01/06

[#41979] [ruby-trunk - Bug #5865][Open] Exception#== should return false if the classes differ — Hiro Asari <asari.ruby@...>

10 messages 2012/01/08

[#42003] [ruby-trunk - Bug #5871][Open] regexp \W matches some word characters when inside a case-insensitive character class — Gareth Adams <gareth@...>

14 messages 2012/01/09

[#42016] [ruby-trunk - Feature #5873][Open] Adopt FFI over DL — Heesob Park <phasis@...>

15 messages 2012/01/10

[#42149] [ruby-trunk - Feature #5899][Open] chaining comparsions. — Ondrej Bilka <neleai@...>

12 messages 2012/01/16

[#42164] [ruby-trunk - Feature #5903][Open] Optimize st_table (take 2) — Yura Sokolov <funny.falcon@...>

18 messages 2012/01/17

[ruby-core:42254] Re: [ruby-trunk - Bug #5940][Open] Resolve conflict between inheritance and mixins

From: "Haase, Konstantin" <Konstantin.Haase@...>
Date: 2012-01-29 09:39:36 UTC
List: ruby-core #42254
What you want is a feature planned for Ruby 2.0 called Module#prepend (as compared to Module#include).

Konstantin

On Jan 28, 2012, at 00:53 , Mario Lanza wrote:

> 
> Issue #5940 has been reported by Mario Lanza.
> 
> ----------------------------------------
> Bug #5940: Resolve conflict between inheritance and mixins
> https://bugs.ruby-lang.org/issues/5940
> 
> Author: Mario Lanza
> Status: Open
> Priority: Normal
> Assignee: 
> Category: 
> Target version: 
> ruby -v: 1.9.2
> 
> 
> Some in the Ruby community (like Chad Fowler) have noticed issues around how Ruby attempts to transverse a method's pipeline up the inheritance chain.  When you inherit a class from another class and then add a mixin, the mixin is not able to supercede the methods defined in the inherited-from class.
> 
> I've demonstrated the issue here:
> https://gist.github.com/515856
> 
> It would be nice if Ruby were to change its default inheritance behavior so that mixin do override a class's methods.  Essentially, the behavior would treat inheritance in nearly the same manner that it treats mixins.
> 
>  class Person < ActiveRecord::Base
>  end
> 
> would be effectively treated, in a manner of speaking, as:
> 
>  class Person
>    include ActiveRecord::Base
>  end
> 
> (I would go so far as to say that we get rid of direct inheritance in favor of always using mixins to accomplish our inheritance goals.  I do have a reservation for how this would affect backwards compatibility.)
> 
> I dunno if Ruby's current behavior is intentional (having purposeful benefits) but I find it annoying as it makes it difficult to override a behavior in third-party libraries.  When I own the classes, I can simply refactor them to prefer mixins as to avoid this issue, but this doesn't solve the dilemma when dealing with vendor libraries.
> 
> 
> -- 
> http://bugs.ruby-lang.org/
> 


In This Thread