Discussion:
[Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
s***@optusnet.com.au
2015-01-23 06:44:15 UTC
Permalink
Hi,

The top level Makefile.PL is still allowing PDL to be built on perl-5.8.x.

If we want to disallow that, we should modify the top level Makefile.PL
accordingly.
Otherwise t/lut.t needs some attention, as it fails for me (on Windows) on
perls 5.8.8 and 5.8.9 in PDL-2.007_08.

I struck no other issues with PDL-2.007_08.

Cheers,
Rob

PS Anticipating that we're going to disallow 5.8.x builds, I haven't looked
at those t/lut.t failures at all.
Ed
2015-01-27 16:23:50 UTC
Permalink
t/lut.t passes on my perlbrew 5.8.9 on Linux. I'm not going to go through
the agony of making a Windows 5.8.9. Can you tell me what the failure
message is, so I can fix it?

Cheers,
Ed

-----Original Message-----
From: ***@optusnet.com.au
Sent: Friday, January 23, 2015 6:44 AM
To: pdl-***@jach.hawaii.edu
Subject: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?

Hi,

The top level Makefile.PL is still allowing PDL to be built on perl-5.8.x.

If we want to disallow that, we should modify the top level Makefile.PL
accordingly.
Otherwise t/lut.t needs some attention, as it fails for me (on Windows) on
perls 5.8.8 and 5.8.9 in PDL-2.007_08.

I struck no other issues with PDL-2.007_08.

Cheers,
Rob

PS Anticipating that we're going to disallow 5.8.x builds, I haven't looked
at those t/lut.t failures at all.
s***@optusnet.com.au
2015-01-27 23:33:53 UTC
Permalink
-----Original Message-----
From: Ed
Sent: Wednesday, January 28, 2015 3:23 AM
To: ***@optusnet.com.au
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
Post by Ed
t/lut.t passes on my perlbrew 5.8.9 on Linux. I'm not going to go through
the agony of making a Windows 5.8.9. Can you tell me what the failure
message is, so I can fix it?
On 5.8.8:

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:11:59 2015
# Current time GMT: Tue Jan 27 22:11:59 2015
# Using Test.pm version 1.25
Can't locate autodie.pm in @INC (@INC contains:
C:\sisyphusion\PDL-2.007_08\blib\arch C:\sisyphusion\PDL-2.007_08\blib\lib
C:/MinGW/perl588/lib C:/MinGW/perl588/site/lib .) at
C:\sisyphusion\PDL-2.007_08blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################

I then installed autodie 2.19

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:17:58 2015
# Current time GMT: Tue Jan 27 22:17:58 2015
# Using Test.pm version 1.25

Incorrect version of Fatal.pm loaded by autodie.

The autodie pragma uses an updated version of Fatal to do its heavy lifting.
We seem to have loaded Fatal version 1.03, which is probably the version
that came with your version of Perl. However autodie needs version 2.19,
which would have come bundled with autodie.

You may be able to solve this problem by adding the following line of code
to your main program, before any use of Fatal or autodie.

use lib "C:/MinGW/perl588/site/lib/";

at C:/MinGW/perl588/site/lib/autodie.pm line 53
BEGIN failed--compilation aborted at C:/MinGW/perl588/site/lib/autodie.pm
line 53.
Compilation failed in require at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################

The problem there is that perl/lib comes ahead of perl/site/lib in @INC so,
although the requisite Fatal.pm has been installed, it's still the old
version in perl/lib that gets found first.

If I hide perl/lib/Fatal.pm I get:

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:32:55 2015
# Current time GMT: Tue Jan 27 22:32:55 2015
# Using Test.pm version 1.25
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
#################################

On Windows perl/site/lib came after perl/lib in @INC until perl 5.12.0 (when
sanity finally came to prevail).

So:
1) Add autodie to prereq_pm;
2) At the beginning of t/lut.t we need something like:

BEGIN {
# Swap $INC[-3] and $INC[-2] on 5.8.x builds of Windows perl
if($^O =~ /MSWin32/i && $] < 5.009 &&
$INC[-3] =~ /(\\|\/)lib/ &&
$INC[-2] =~ /site(\\|\/)lib/) {
my $first = $INC[-2];
$INC[-2] = $INC[-3];
$INC[-3] = $first;
}
}

Maybe you can think of something better for 2)
It makes assumptions that it oughtn't make, though I'd be surprised if it
ever strikes a situation where it fails to work as intended.
(But then I'd be surprised if PDL ever gets built on a Windows build of
perl-5.8.x - other than my own.)

What way to waste an hour ;-)

Cheers,
Rob
Ed
2015-01-28 01:33:17 UTC
Permalink
Thanks for taking the time over this!

The obvious way forward is to have that test simply not use autodie, which I
will put in my next Merge Request for Chris to ignore ;-)

-----Original Message-----
From: ***@optusnet.com.au
Sent: Tuesday, January 27, 2015 11:33 PM
To: Ed
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?

-----Original Message-----
From: Ed
Sent: Wednesday, January 28, 2015 3:23 AM
To: ***@optusnet.com.au
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
Post by Ed
t/lut.t passes on my perlbrew 5.8.9 on Linux. I'm not going to go through
the agony of making a Windows 5.8.9. Can you tell me what the failure
message is, so I can fix it?
On 5.8.8:

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:11:59 2015
# Current time GMT: Tue Jan 27 22:11:59 2015
# Using Test.pm version 1.25
Can't locate autodie.pm in @INC (@INC contains:
C:\sisyphusion\PDL-2.007_08\blib\arch C:\sisyphusion\PDL-2.007_08\blib\lib
C:/MinGW/perl588/lib C:/MinGW/perl588/site/lib .) at
C:\sisyphusion\PDL-2.007_08blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################

I then installed autodie 2.19

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:17:58 2015
# Current time GMT: Tue Jan 27 22:17:58 2015
# Using Test.pm version 1.25

Incorrect version of Fatal.pm loaded by autodie.

The autodie pragma uses an updated version of Fatal to do its heavy lifting.
We seem to have loaded Fatal version 1.03, which is probably the version
that came with your version of Perl. However autodie needs version 2.19,
which would have come bundled with autodie.

You may be able to solve this problem by adding the following line of code
to your main program, before any use of Fatal or autodie.

use lib "C:/MinGW/perl588/site/lib/";

at C:/MinGW/perl588/site/lib/autodie.pm line 53
BEGIN failed--compilation aborted at C:/MinGW/perl588/site/lib/autodie.pm
line 53.
Compilation failed in require at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################

The problem there is that perl/lib comes ahead of perl/site/lib in @INC so,
although the requisite Fatal.pm has been installed, it's still the old
version in perl/lib that gets found first.

If I hide perl/lib/Fatal.pm I get:

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:32:55 2015
# Current time GMT: Tue Jan 27 22:32:55 2015
# Using Test.pm version 1.25
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
#################################

On Windows perl/site/lib came after perl/lib in @INC until perl 5.12.0 (when
sanity finally came to prevail).

So:
1) Add autodie to prereq_pm;
2) At the beginning of t/lut.t we need something like:

BEGIN {
# Swap $INC[-3] and $INC[-2] on 5.8.x builds of Windows perl
if($^O =~ /MSWin32/i && $] < 5.009 &&
$INC[-3] =~ /(\\|\/)lib/ &&
$INC[-2] =~ /site(\\|\/)lib/) {
my $first = $INC[-2];
$INC[-2] = $INC[-3];
$INC[-3] = $first;
}
}

Maybe you can think of something better for 2)
It makes assumptions that it oughtn't make, though I'd be surprised if it
ever strikes a situation where it fails to work as intended.
(But then I'd be surprised if PDL ever gets built on a Windows build of
perl-5.8.x - other than my own.)

What way to waste an hour ;-)

Cheers,
Rob
Chris Marshall
2015-01-28 11:52:31 UTC
Permalink
Post by Ed
Thanks for taking the time over this!
The obvious way forward is to have that test simply not use autodie,
which I will put in my next Merge Request for Chris to ignore ;-)
The last merge request was problematic and I'm still waiting to hear from
you, Ed, on the issue. I've attached the build from my system to the
merge request ticket for you to ignore ;-)

Re perl 5.8.x, I just re-proposed we go to 5.10.x as the officially
supported
perl for PDL in another email. Assuming no "h--- no!"s come back, we
could bump immediately.

--Chris
Post by Ed
Sent: Tuesday, January 27, 2015 11:33 PM
To: Ed
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
-----Original Message----- From: Ed
Sent: Wednesday, January 28, 2015 3:23 AM
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
Post by Ed
t/lut.t passes on my perlbrew 5.8.9 on Linux. I'm not going to go
through the agony of making a Windows 5.8.9. Can you tell me what the
failure message is, so I can fix it?
#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:11:59 2015
# Current time GMT: Tue Jan 27 22:11:59 2015
# Using Test.pm version 1.25
C:\sisyphusion\PDL-2.007_08\blib\arch
C:\sisyphusion\PDL-2.007_08\blib\lib
C:/MinGW/perl588/lib C:/MinGW/perl588/site/lib .) at
C:\sisyphusion\PDL-2.007_08blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################
I then installed autodie 2.19
#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:17:58 2015
# Current time GMT: Tue Jan 27 22:17:58 2015
# Using Test.pm version 1.25
Incorrect version of Fatal.pm loaded by autodie.
The autodie pragma uses an updated version of Fatal to do its heavy lifting.
We seem to have loaded Fatal version 1.03, which is probably the version
that came with your version of Perl. However autodie needs version 2.19,
which would have come bundled with autodie.
You may be able to solve this problem by adding the following line of code
to your main program, before any use of Fatal or autodie.
use lib "C:/MinGW/perl588/site/lib/";
at C:/MinGW/perl588/site/lib/autodie.pm line 53
BEGIN failed--compilation aborted at C:/MinGW/perl588/site/lib/autodie.pm
line 53.
Compilation failed in require at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################
although the requisite Fatal.pm has been installed, it's still the old
version in perl/lib that gets found first.
#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:32:55 2015
# Current time GMT: Tue Jan 27 22:32:55 2015
# Using Test.pm version 1.25
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
#################################
sanity finally came to prevail).
1) Add autodie to prereq_pm;
BEGIN {
# Swap $INC[-3] and $INC[-2] on 5.8.x builds of Windows perl
if($^O =~ /MSWin32/i && $] < 5.009 &&
$INC[-3] =~ /(\\|\/)lib/ &&
$INC[-2] =~ /site(\\|\/)lib/) {
my $first = $INC[-2];
$INC[-2] = $INC[-3];
$INC[-3] = $first;
}
}
Maybe you can think of something better for 2)
It makes assumptions that it oughtn't make, though I'd be surprised if it
ever strikes a situation where it fails to work as intended.
(But then I'd be surprised if PDL ever gets built on a Windows build of
perl-5.8.x - other than my own.)
What way to waste an hour ;-)
Cheers,
Rob
_______________________________________________
PDL-porters mailing list
http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters
Ed
2015-01-28 15:28:20 UTC
Permalink
Chris,

Unfortunately you would have waited forever, since this is the first I have
heard of any such problems. Where did you flag them? I am assuming something
to do with sourceforge, which didn't notify me. It's a real pity you didn't
email or similar.

For the price of a two-line change in PDL::Graphics::LUT to remove the
dependency on autodie, it doesn't seem worth breaking back-compatibility
when the Perl Toolchain policy is support back to 5.8. However, personally I
am very neutral on the point.

Ed

-----Original Message-----
From: Chris Marshall
Sent: Wednesday, January 28, 2015 11:52 AM
To: Ed ; ***@optusnet.com.au
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
Post by Ed
Thanks for taking the time over this!
The obvious way forward is to have that test simply not use autodie, which
I will put in my next Merge Request for Chris to ignore ;-)
The last merge request was problematic and I'm still waiting to hear from
you, Ed, on the issue. I've attached the build from my system to the
merge request ticket for you to ignore ;-)

Re perl 5.8.x, I just re-proposed we go to 5.10.x as the officially
supported
perl for PDL in another email. Assuming no "h--- no!"s come back, we
could bump immediately.

--Chris
Post by Ed
Sent: Tuesday, January 27, 2015 11:33 PM
To: Ed
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
-----Original Message----- From: Ed
Sent: Wednesday, January 28, 2015 3:23 AM
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
Post by Ed
t/lut.t passes on my perlbrew 5.8.9 on Linux. I'm not going to go through
the agony of making a Windows 5.8.9. Can you tell me what the failure
message is, so I can fix it?
#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:11:59 2015
# Current time GMT: Tue Jan 27 22:11:59 2015
# Using Test.pm version 1.25
C:\sisyphusion\PDL-2.007_08\blib\arch C:\sisyphusion\PDL-2.007_08\blib\lib
C:/MinGW/perl588/lib C:/MinGW/perl588/site/lib .) at
C:\sisyphusion\PDL-2.007_08blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################
I then installed autodie 2.19
#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:17:58 2015
# Current time GMT: Tue Jan 27 22:17:58 2015
# Using Test.pm version 1.25
Incorrect version of Fatal.pm loaded by autodie.
The autodie pragma uses an updated version of Fatal to do its heavy lifting.
We seem to have loaded Fatal version 1.03, which is probably the version
that came with your version of Perl. However autodie needs version 2.19,
which would have come bundled with autodie.
You may be able to solve this problem by adding the following line of code
to your main program, before any use of Fatal or autodie.
use lib "C:/MinGW/perl588/site/lib/";
at C:/MinGW/perl588/site/lib/autodie.pm line 53
BEGIN failed--compilation aborted at C:/MinGW/perl588/site/lib/autodie.pm
line 53.
Compilation failed in require at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################
although the requisite Fatal.pm has been installed, it's still the old
version in perl/lib that gets found first.
#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:32:55 2015
# Current time GMT: Tue Jan 27 22:32:55 2015
# Using Test.pm version 1.25
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
#################################
sanity finally came to prevail).
1) Add autodie to prereq_pm;
BEGIN {
# Swap $INC[-3] and $INC[-2] on 5.8.x builds of Windows perl
if($^O =~ /MSWin32/i && $] < 5.009 &&
$INC[-3] =~ /(\\|\/)lib/ &&
$INC[-2] =~ /site(\\|\/)lib/) {
my $first = $INC[-2];
$INC[-2] = $INC[-3];
$INC[-3] = $first;
}
}
Maybe you can think of something better for 2)
It makes assumptions that it oughtn't make, though I'd be surprised if it
ever strikes a situation where it fails to work as intended.
(But then I'd be surprised if PDL ever gets built on a Windows build of
perl-5.8.x - other than my own.)
What way to waste an hour ;-)
Cheers,
Rob
_______________________________________________
PDL-porters mailing list
http://mailman.jach.hawaii.edu/mailman/listinfo/pdl-porters
Ed
2015-01-28 02:26:47 UTC
Permalink
Turns out (after 1 second of "git grep autodie") that it's
Graphics/LUT/LUT.pm that uses autodie. I'll make a change to that.

-----Original Message-----
From: ***@optusnet.com.au
Sent: Tuesday, January 27, 2015 11:33 PM
To: Ed
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?

-----Original Message-----
From: Ed
Sent: Wednesday, January 28, 2015 3:23 AM
To: ***@optusnet.com.au
Cc: pdl-porters
Subject: Re: [Pdl-porters] Support for perl-5.8.x in PDL-2.008 ?
Post by Ed
t/lut.t passes on my perlbrew 5.8.9 on Linux. I'm not going to go through
the agony of making a Windows 5.8.9. Can you tell me what the failure
message is, so I can fix it?
On 5.8.8:

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:11:59 2015
# Current time GMT: Tue Jan 27 22:11:59 2015
# Using Test.pm version 1.25
Can't locate autodie.pm in @INC (@INC contains:
C:\sisyphusion\PDL-2.007_08\blib\arch C:\sisyphusion\PDL-2.007_08\blib\lib
C:/MinGW/perl588/lib C:/MinGW/perl588/site/lib .) at
C:\sisyphusion\PDL-2.007_08blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################

I then installed autodie 2.19

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:17:58 2015
# Current time GMT: Tue Jan 27 22:17:58 2015
# Using Test.pm version 1.25

Incorrect version of Fatal.pm loaded by autodie.

The autodie pragma uses an updated version of Fatal to do its heavy lifting.
We seem to have loaded Fatal version 1.03, which is probably the version
that came with your version of Perl. However autodie needs version 2.19,
which would have come bundled with autodie.

You may be able to solve this problem by adding the following line of code
to your main program, before any use of Fatal or autodie.

use lib "C:/MinGW/perl588/site/lib/";

at C:/MinGW/perl588/site/lib/autodie.pm line 53
BEGIN failed--compilation aborted at C:/MinGW/perl588/site/lib/autodie.pm
line 53.
Compilation failed in require at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
BEGIN failed--compilation aborted at
C:\sisyphusion\PDL-2.007_08\blib\lib/PDL/Graphics/LUT.pm line 131.
Compilation failed in require at t/lut.t line 12.
BEGIN failed--compilation aborted at t/lut.t line 12.
#################################

The problem there is that perl/lib comes ahead of perl/site/lib in @INC so,
although the requisite Fatal.pm has been installed, it's still the old
version in perl/lib that gets found first.

If I hide perl/lib/Fatal.pm I get:

#################################
C:\sisyphusion\PDL-2.007_08>perl -Mblib t/lut.t
1..8
# Running under perl version 5.008008 for MSWin32
# Current time local: Wed Jan 28 09:32:55 2015
# Current time GMT: Tue Jan 27 22:32:55 2015
# Using Test.pm version 1.25
ok 1
ok 2
ok 3
ok 4
ok 5
ok 6
ok 7
ok 8
#################################

On Windows perl/site/lib came after perl/lib in @INC until perl 5.12.0 (when
sanity finally came to prevail).

So:
1) Add autodie to prereq_pm;
2) At the beginning of t/lut.t we need something like:

BEGIN {
# Swap $INC[-3] and $INC[-2] on 5.8.x builds of Windows perl
if($^O =~ /MSWin32/i && $] < 5.009 &&
$INC[-3] =~ /(\\|\/)lib/ &&
$INC[-2] =~ /site(\\|\/)lib/) {
my $first = $INC[-2];
$INC[-2] = $INC[-3];
$INC[-3] = $first;
}
}

Maybe you can think of something better for 2)
It makes assumptions that it oughtn't make, though I'd be surprised if it
ever strikes a situation where it fails to work as intended.
(But then I'd be surprised if PDL ever gets built on a Windows build of
perl-5.8.x - other than my own.)

What way to waste an hour ;-)

Cheers,
Rob
Loading...