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