Jarkko Hietaniemi wrote:
> Jarkko Hietaniemi wrote:
> 
>>Argh, duh.  Please ignore my earlier analysis, mostly.
>>I need to go back to the beginning and redo the "cutting
>>down" exercise.
> 
> 
> Now I know more - useithreads matters.  The breakage happens
> with the combination of -Duseithreads and the UTF-8 locales.
> Fun.  Could we get MakeMaker in there somehow? :-)
> 

Okay, here's a re-cut-down version of the test that still gives
the two original warnings (with linenumbers changed, though).
Cutting down seemed to be an awfully unpredictable and not making
much sense in general, so I don't expect that the same script will
trigger the bug in any other system or environment.

The corruption always seems to be in the filenames.  Or, at least,
the corruption that is detected by the /^File (.*)/.  Namely, there
seems to be other corruption going on in the xreftest.out.  For example:

File TUUEUUUUUUUU
  Subroutine (definitions)
    Package Test::More
      &_bogus_sort      s1120
      &_carp            s15
      &_deep_check      s945
      &_export_to_level  s46
      &_format_stack    s950
      ...

Then there is a package called "\x3f" with a single variable "\x3f\x3f".

Anyway, here's the script that still "works" for me:

BEGIN {
    chdir 't' if -d 't';
    @INC = qw(../lib);
    require Config;
}
use strict;
use warnings;
no warnings 'once';
use Test::More;
use B::Xref;
my $file = 'xreftest.out';
open SAVEOUT, ">&STDOUT";
close STDOUT;
(B::Xref::compile("-o$file"))->();
open XREF, $file;
while (<XREF>) {
    /^File (.*)/;
}


-- 
Jarkko Hietaniemi <[EMAIL PROTECTED]> http://www.iki.fi/jhi/ "There is this 
special
biologist word we use for 'stable'.  It is 'dead'." -- Jack Cohen

Reply via email to