-----Original Message----- From: Chris Marshall

Looking at the patch, suggests it is the
result of a Filter::Simple bug that I had to
runtime patch to handle POD terminators
correctly.

Yes, I wondered whether the intermingling of pod and code in the affected files had something to do with the problem.

Btw, the 3 attached (very simplistic) patches allow _006 to build fine on all my 32-bit and 64-bit perls - for both MinGW and MS compilers.

I'm going to bump up the minimum
version for Filter::Simple to 0.86 since that
is what I have on my working system.  Is
that the version you have on the older platforms
with problems?

I have 0.88 throughout - even on the older perls that were giving the problems prior to applying the attached patches, I was using 0.88.

In a nutshell, here are the 3 problems I faced. (I doubt that they are specific to Windows.)

~~~~~~~~~~~
PROBLEM 1:
~~~~~~~~~~~
Any of my _006 build that built in PDL::Graphics::PGPLOT were unable to load the module because of the following syntax errors:

#############################
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2693, near ")                                        ]"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2697, near "1) "
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2707, near "} elsif"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2719, near "}"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2782, near "}"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2815, near "}"
Can't use global @_ in "my" at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2832, near "= @_"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line
2846, near "}"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line 2878, near "}"
syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm line 2909, near "}" C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT/Window.pm has too many errors.
Compilation failed in require at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Graphics/PGPLOT.pm line 148, <DATA> line 207. BEGIN failed--compilation aborted at C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/
Graphics/PGPLOT.pm line 148, <DATA> line 207.
Compilation failed in require at (eval 38) line 1, <DATA> line 207.
BEGIN failed--compilation aborted at (eval 38) line 1, <DATA> line 207.
#############################

~~~~~~~~~~~
PROBLEM 2:
~~~~~~~~~~~

With any perls older than 5.14.0, slatec.pd could not be processed during the dmake stage because of the following syntax errors in MatrixOps.pm

#############################
C:\MinGW\perl512\bin\perl.exe -IC:/sisyphusion/PDL-2.4.11_005/blib/lib 
-IC:/sisyphusion/PDL-2.4.11_005/blib/arch
"-MPDL::PP qw/PDL::Slatec PDL::Slatec Slatec/" slatec.pd
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
430, near "0:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
435, near "1:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
436, near "0:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
853, near "0:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
863, near "$col:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
873, near "$whc("
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
874, near "(:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
893, near "1:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
1004, near "0:"
syntax error at C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm line
1014, near "1:"
C:/sisyphusion/PDL-2.4.11_005/blib/lib/PDL/MatrixOps.pm has too many errors.
Compilation failed in require at slatec.pd line 248.
BEGIN failed--compilation aborted at slatec.pd line 248.
dmake:  Error code 255, while making 'Slatec.pm'
dmake:  Error code 255, while making 'subdirs'
dmake:  Error code 255, while making 'subdirs'
#############################

This meant that _006 couldn't even be built on those older perls.

~~~~~~~~~~~
PROBLEM 3:
~~~~~~~~~~~

On perls older than 5.14.0, PDL::Transform could not be loaded because of the following syntax errors:

######################################
t/transform.t ............... syntax error at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3073, near "$p(" syntax error at C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3074, near "$p(" syntax error at C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3086, near "$p(" syntax error at C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3090, near "0:" syntax error at C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3107, near "0:" syntax error at C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3115, near "0:"
BEGIN not safe after errors--compilation aborted at
C:\sisyphusion\PDL-2.4.11_006\blib\lib/PDL/Transform.pm line 3137.
Compilation failed in require at t/transform.t line 8.
BEGIN failed--compilation aborted at t/transform.t line 8.
######################################

I'll send the perl-V outputs in a separate (offlist) post shortly.

Cheers,
Rob
--- transform.pd_orig   2013-01-31 19:55:49 +1100
+++ transform.pd        2013-01-31 19:56:23 +1100
@@ -3691,6 +3691,7 @@
=cut

sub t_projective {
+  use PDL::NiceSlice;
  my($class) = 'PDL::Transform';
  my($o) = $_[0];
  if(ref $o ne 'HASH') {
--- Window.pm_orig      2013-01-31 16:07:38 +1100
+++ Window.pm   2013-01-31 16:09:53 +1100
@@ -2260,6 +2260,8 @@
use SelfLoader;
use PGPLOT;

+no PDL::NiceSlice;
+
require DynaLoader;

@ISA = qw( Exporter SelfLoader DynaLoader );
@@ -4070,6 +4072,9 @@
=cut

sub _image_xyrange {
+
+  use PDL::NiceSlice;
+
  my($tr,$nx,$ny,$opt) = @_;

  # Set identity $tr if no $tr is passed in.  This looks funny
--- matrixops.pd_orig   2013-01-31 19:27:42 +1100
+++ matrixops.pd        2013-01-31 19:23:19 +1100
@@ -410,6 +410,7 @@

*PDL::determinant = \&determinant;
sub determinant {
+  use PDL::NiceSlice;
  my($a) = shift;
  my($n);
  return undef unless(
@@ -1059,6 +1060,7 @@
*PDL::lu_decomp2 = \&lu_decomp2;

sub lu_decomp2 {
+  use PDL::NiceSlice;
  my($in) = shift;
  my($perm) = shift;
  my($par) = shift;
_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to