-----Original Message----- 
From: Chris Marshall
Sent: Thursday, October 15, 2015 6:53 PM
To: pdl-devel@lists.sourceforge.net
Subject: [Pdl-devel] PDL-2.014 testing well

> It would be nice to have PDL building for all the ASPerl configurations
> but without inside help to debug we'll have to be satisfied with the
> latest perls.

I noticed that the 64-bit ActivePerl-5.16 happily built PDL-2.013, but not
PDL-2.014.
It so happens that I have the  same compiler as used by ActiveState  for 
their x64 perl-5.16 builds, so I was able to do some testing.

AIUI, the problem is that the compiler they're using (Platform SDK) expects
C90-compliant code, and PDL-2.014 generates a Bad.xs that is *not*
C90-compliant.
Specifically, once one of the ANYVAL_* macros has been called we can't
subsequently make any declarations in the same block - and it's our
non-compliance with that condition in Bad.xs that's causing the errors.
(Obviously, the Bad.xs code generated by PDL-2.013 complies with the
requirements of the Platform SDK compiler - and PDL-2.013 also builds fine
for me with Platform SDK.)

This type of problem has cropped up time and time again with PDL and
ActiveState's M$ compilers. I don't know if M$ have even released a
C99-compliant compiler yet.
In the past we've got around this problem by simply inserting some scoping 
brackets where needed, but this case seems (to me) to be 
not-so-simple-to-fix.
I don't know my way around the PDL source all that well so there may, in 
fact, be a trivial fix - but I think I'll leave this as an exercise for 
someone who cares.
However, I'll happily test any patches that are presented.

The 32-bit builds of ActivePerl-5.16 (and earlier) use MSVC++6.0, and that 
antiquated compiler imposes additional conditions.
The blocker there is the use of 'long long' in the generated 
Basic/Ops/Ops.xs (fixed just now with commit c2ae69d).
This is another constantly recurring problem with PDL and MSVC 6 - as soon 
as we fix one occurrence of 'long long' another one pops up to take its 
place :-)

Of course, MSVC++ 6.0 also requires that the above issue with Bad.xs be 
fixed.

I *do* agree that it "would be nice to have PDL building for all the ASPerl 
configurations", though I doubt it's really worth the effort.

Cheers,
Rob 


------------------------------------------------------------------------------
_______________________________________________
pdl-devel mailing list
pdl-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/pdl-devel

Reply via email to