Thu Jun 30 18:46:41 2011: Request 69213 was acted upon.
Transaction: Ticket created by [email protected]
Queue: PAR
Subject: ScanDeps incompatible with AnyEvent (Perl 5.14, AnyEvent 5.34,
PAR 1.00.2)
Broken in: (no value)
Severity: (no value)
Owner: Nobody
Requestors: [email protected]
Status: new
Ticket <URL: https://rt.cpan.org/Ticket/Display.html?id=69213 >
PAR emits this error while trying to compile AnyEvent:
<<<<<
$ pp -c -M AnyEvent -M AnyEvent::Impl::EV -M EV -o repeng {SCRIPTNAME}
Variable "@models" is not available at T7uor6 line 1259.
SYSTEM ERROR in compiling
/usr/local/lib/perl5/site_perl/5.14.1/mach/AnyEvent.pm: 65280 at
/usr/local/lib/perl5/site_perl/5.14.1/Module/ScanDeps.pm line 1241.
>>>>>
The problem stems from something that's being done with WARNING_BITS. This is
a pruned version of the script that ScanDeps was using, and reproduces the
problem:
>>>>>
#use Module::ScanDeps::DataFeed 'KaVvk9.out';
sub {
package AnyEvent;# basically a tuned-down version of common::sensesub
common_sense {
# from common:.sense 3.4
${^WARNING_BITS} ^= ${^WARNING_BITS} ^
"\x3c\x3f\x33\x00\x0f\xf0\x0f\xc0\xf0\xfc\x33\x00";
# use strict vars subs - NO UTF-8, as Util.pm doesn't like this atm.
(uts46data.pl)
$^H |= 0x00000600;
}
BEGIN { AnyEvent::common_sense }
use Carp ();
our $VERSION = '5.34';
our $MODEL;
our $AUTOLOAD;
our @ISA;
our @REGISTRY;
our $VERBOSE;
my @models = ( );
sub detect() {
@models;
}
}
<<<<<
Problem encountered with:
perl 5, version 14, subversion 1 (v5.14.1) built for i386-freebsd-64int
AnyEvent version 5.34
PAR 1.00.2
Changing the "my" to an "our" allows compilation to complete, as does
eliminating the WARNING_BITS/^H modifications.
Cc'ing the AnyEvent bug list in case it makes more sense to address the problem
from that side.
-Scott Hutton
Software Engineer, Cisco Systems, Inc.