----- Original Message ----- From: "kmx"

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.

Yes - and making those additional drop-in zips available is probably a fair compromise. I don't think I've ever seen anyone other than me raise this matter, so demand for this support can't be all that high :-)

I'll grab and install those additional bits and try them out next time I build PDL with Strawberry. (I'm sure they're fine - there's absolutely no reason to expect otherwise.)

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).

With 3.1+ TLS should be built in without any need for being requested. If it doesn't happen, it means that the compiler has been found to *not* support TLS - but both my mingw64.sf 4.7.0 cross-compiler and mingw.org 4.5.2 compiler do provide the necessary bits. Mingw.org's 3.4.5 compiler apparently did not. So, I'm guessing (and it is only a guess) that the Strawberry compilers will provide TLS as well. If it gives you trouble you can, of course, still --disable-TLS. I *think* the 3.1.0 release notes implied that the --enable-TLS option was valid for the 3.0* versions of the mpfr library, but I never tried it out and I could be wrong. I wasn't even expecting 3.1.0 to build with TLS support, and was pleasantly surprised when it did :-)

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).

To enable this should I pass some extra option to mpc configure/make?

No - the problem is a bug in mpc.h. The expectation is that if a there's a suitable complex.h available, then the symbol _COMPLEX_H will be defined, but this is wrong since many complex.h versions (including mingw) don't define that symbol. I hacked my compiler's complex.h to define that symbol, and that worked fine - but many would consider that to be the *wrong* hack.

Here's the offending piece of code in mpc.h:

/* Check if complex.h is included */
#if defined (_COMPLEX_H)
# define _MPC_H_HAVE_COMPLEX 1
#endif

I guess you might prefer to change *it* instead of altering your compiler's complex.h. The fix on the svn repo has mpc.h check that _Complex_I is defined, so changing the first line of the above code to

#if defined(_Complex_I)

should work for you.
In any case, there should be no such issue with the next release of mpc.

Cheers,
Rob

Reply via email to