--- On Thu, 15/10/09, Richard Hainsworth <rich...@rusrating.ru> wrote:

> From: Richard Hainsworth <rich...@rusrating.ru>

> But the assumption in the paper is that the "class
> composer" resolves the conflict, without further programmer
> intervention. The perl6 spec does not require the class
> composer to resolve the conflict only to detect it.
> 
> Given the explanation in the spec about conflict
> resolution, it is my understanding that it is
> the programmer's task to rewrite to eliminate the
> conflict.

Ugh. That's ambiguity in the paper.  Thanks for pointing that out. The specific 
intention is that the programmer has to specifically address this issue (in 
this case, by potentially freezing one or more methods).

At the BBC, we never encounter this because semantically different methods are 
renamed and semantically identical methods are refactored (aliasing and 
excluding being code smells).  However, if roles start making their way on to 
the CPAN, you won't necessarily have control over the source code, forcing you 
to fork or simply not use the role in question.  Regrettably, that defeats the 
purpose of roles -- namely, to facilitate code reuse.

Cheers,
Ovid
--
Buy the book         - http://www.oreilly.com/catalog/perlhks/
Tech blog            - http://use.perl.org/~Ovid/journal/
Twitter              - http://twitter.com/OvidPerl
Official Perl 6 Wiki - http://www.perlfoundation.org/perl6

Reply via email to