Hi Rob,
Just getting to it now. (I know Chris has already established that the
pthreads suport builds fine using his small patch to pthread.h. I'm
building PDL-2.4.9_009, also with pthreads support as provided by
2), above - and also with Chris's amendment to pthread.h.)
First thing I noticed with this Strawberry distro is that, as with
most (all ?) Strawberry distros, there's no gfortran compiler. This
means that the Slatec and Minuit parts of PDL won't get built.
That's old news, and not all that critical - but I thought I should
mention it anyway ;-)
I know about that :)
Apart from:
http://strawberryperl.com/package/kmx/p5.14.2.1-RC/strawberry-perl-5.14.2.1-portable-32bit-beta-1.zip
http://strawberryperl.com/package/kmx/32_libs/5.14-extras/32bit_pthreads-2.9.0-bin_20111101.zip
We have also prepared other PDL handy stuff - like:
http://strawberryperl.com/package/kmx/32_gcctoolchain/mingw64-w32-gfortran4.4.7-pre_20111101.zip
http://strawberryperl.com/package/kmx/32_libs/5.14-extras/32bit_gsl-1.15-bin_20111104.zip
http://strawberryperl.com/package/kmx/32_libs/5.14-extras/32bit_fftw-2.1.5-bin_20110506.zip
It is only about decision how fat should strawberry perl be. Anyway you
can unzip them into one directory and have a go.
Apart from that, all looks good
Unrelated to PDL, but the latest mpfr library (version 3.1.0) should
build with TLS (Thread Local Storage) by default and straight out of
the box. The version of the mpfr library that ships with Strawberry
(version 3.0.1) was not built with TLS - which probably means that you
didn't ask for it (--enable-TLS) when building the library.
Mind you, I haven't checked that --enable-TLS will work for mpfr-3.0.1
on Windows, but 3.1.0 certainly provided TLS for me ... and without my
asking.)
No big deal - just thought I'd mention.
On threaded perls, that TLS capability can be handy for Math::MPFR.
Thanks for this notice, I will try to use --enable-TLS by the next
mpfr-3.1+ rebuild (according ./configure --help it seems not to be
available in 3.0.1).
I noticed, too, that the mpc library that ships with Strawberry hasn't
been built to accommodate the complex.h types (double _Complex and
long double _Complex). From a perl point of view, this hardly matters
at all because there's no way to natively pass these types to or from
perl.
I did slap together a Math::Complex_C module that wraps the complex.h
types and functions, and thereby provides a gateway to passing these
types to Math::MPC, but I doubt that anyone makes use of this
capability anyway.
Besides, Math::Complex_C can sometimes fail a test or two, generally
because of compiler bugs (mainly in the form of incorrectly
implemented functions).
To enable this should I pass some extra option to mpc configure/make?
--
kmx