[#80531] Re: [ruby-cvs:65407] normal:r58236 (trunk): thread.c: comments on M:N threading [ci skip] — Eric Wong <normalperson@...>
SASADA Koichi <ko1@ruby-lang.org> wrote:
On 2017/04/02 11:35, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
Eric Wong <normalperson@yhbt.net> wrote:
On 2017/05/08 9:33, Eric Wong wrote:
On 2017/05/08 10:53, SASADA Koichi wrote:
SASADA Koichi <ko1@atdot.net> wrote:
On 2017/05/08 12:01, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
On 2017/05/08 15:36, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
On 2017/05/09 12:38, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
On 2017/05/09 14:12, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
On 2017/05/09 15:23, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
Thank you.
[#80763] [Ruby trunk Feature#13434] better method definition in C API — naruse@...
Issue #13434 has been updated by naruse (Yui NARUSE).
[#80844] [Ruby trunk Bug#13503] Improve performance of some Time & Rational methods — watson1978@...
Issue #13503 has been updated by watson1978 (Shizuo Fujita).
[#80892] [Ruby trunk Misc#13514] [PATCH] thread_pthread.c (native_sleep): preserve old unblock function — ko1@...
Issue #13514 has been updated by ko1 (Koichi Sasada).
ko1@atdot.net wrote:
On 2017/04/27 8:58, Eric Wong wrote:
SASADA Koichi <ko1@atdot.net> wrote:
Eric Wong <normalperson@yhbt.net> wrote:
[ruby-core:80757] [Ruby trunk Bug#12834] `prepend` getting prepended even if it already exists in the ancestors chain
Issue #12834 has been updated by shyouhei (Shyouhei Urabe). We looked at this issue in yesterday's developer meeting. While discussing, we learned that prepended ancestors are not linearizable using the C3 algorithm. When you prepend something, you normally want to override a method in a specific order. So a prepending module and its prepended counterpart must be adjacent in a superclass resolution. Thus, matz started thinking that if a module is prepended multiple times, that should appear more than once in a method chain. ---------------------------------------- Bug #12834: `prepend` getting prepended even if it already exists in the ancestors chain https://bugs.ruby-lang.org/issues/12834#change-64313 * Author: ndn (Nikola Nenkov) * Status: Open * Priority: Normal * Assignee: * Target version: * ruby -v: 2.3.1 * Backport: 2.3: UNKNOWN ---------------------------------------- ``` module M; end class A; prepend M; end class B < A; prepend M; end B.ancestors # => [M, B, M, A, Object, Kernel, BasicObject] ``` Even though I find this behaviour to be more intuitive, it is inconsistent with `Module#include` and is potentially breaking. I didn't see a mention on the [[release notes]](https://www.ruby-lang.org/en/news/2015/12/25/ruby-2-3-0-released/) and the [[documentation]](https://ruby-doc.org/core-2.3.1/Module.html#method-i-prepend_features) is now outdated. -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>