Thu Jun 30 18:46:41 2011: Request 69213 was acted upon.
Transaction: Ticket created by schut...@cisco.com
       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: schut...@cisco.com
      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.


Reply via email to