(adding rjbs to cc: as a heads-up for him)
On 05/12/2012 01:46 AM, Slaven_Rezic via RT wrote:
Show quoted text
(I've done some further checking, and don't see any evidence that I
received the email that Andreas sent to me about this, so it appears
that the email gods lost it.)
This appears to be a bug in the module. The failing test is attempting
to change the behavior of the user-defined property at run time. The
documentation for it says,
Setting C<$Unicode::EastAsianWidth::EastAsian> at run-time only
works on Perl version 5.8 or above. Perl 5.6 users must use
a BEGIN block to set it before the C<use> statement:
BEGIN { $Unicode::EastAsianWidth::EastAsian = 1 }
use Unicode::EastAsianWidth;
And, indeed the failing test is only done for those newer Perls.
However, it only worked through an accident of the implementation; it
was never supposed to work. perlunicode.pod explicitly says (from its
blame log):
bac0b425 (Jeff Pinyan 2004-04-14 13:01:38 -0400 824) Note
that the effect is compile-time and immutable once defined.
"824)" means this text is on line 824 of the current blead. The date of
that commit is apparently for 5.8.3. I didn't bother to see what we
said before that commit.
So, I don't know what to do. I could fix things so user-defined
properties are never determined at compile-time, which would revert to
the old behavior, which differs from the long-standing core
documentation. Doing so would require getting approval on p5p. Or, the
module could change its documentation to say that the run-time
changeable behavior stops at 5.14, and change its test accordingly.
That would affect its users.