I just tried the example in pdl2 and perldl for
cygwin and strawberry perl on winXP and was unable
to reproduce the problem.  Maybe someone else will
have better luck.  If you run pdl2, do you get the
same problem?  (If you don't have Devel::REPL installed
then pdl2 should fall back to perldl).

--Chris

On 11/11/2011 7:40 PM, Derek Lamb wrote:
I'm resurrecting this old email, because I think a similar problem
I'm having is related, and am looking for more ways to dig into it.

In the perldl shell, PDL::AutoLoader doesn't complain (as I expect it
to) if it can't find a file to autoload.  In particular if I do the
following: ---------- pdl>  $PDL::verbose=1 pdl>  $PDL::debug=1 pdl>
asdf() AutoLoader: Expanding directories from .:.:+~/pdl:+./pdl...
AutoLoader: returning  .,.,/Users/derek/pdl,<snip a whole bunch of
directories>, Loading asdf.pdl ...I am here and $s is PDL AutoLoader:
Undefined subroutine asdf() cannot be autoloaded. ----------- Where I
have inserted a statement

print "I am here and \$s is $s\n"

to line 208 of Basic/AutoLoader.pm, right before the line

die $s."\tNo file `$func.pdl' was found in your \@PDLLIB path.\n";

It seems like the call to perl's die is getting executed, because a
print statement inserted after the die call does not get executed.

If I run the same thing as a one-liner I get the appropriate error:
-------- $ perl -MPDL::AutoLoader -e 'asdf();' PDL AutoLoader:
Undefined subroutine asdf() cannot be autoloaded. No file `asdf.pdl'
was found in your @PDLLIB path. --------

***And if I run perldl in the debugger, I also get the desired
error***

------- $ perl -d perldl __DB<1>  n ##then press enter until it gets
to the addhistory line around perldl:252 DB<2>  use PDL::AutoLoader

DB<3>  asdf() PDL AutoLoader:  Undefined subroutine asdf() cannot be
autoloaded. No file `asdf.pdl' was found in your @PDLLIB path.
-------

So it's not like AutoLoader is inherently broken, but rather
something about running perldl _NOT_ in the debugger is causing calls
to perl's die() to not print their messages. I'm running a much
simpler Perl installation now, since I accidentally wiped my whole
perl tree last weekend.  So now the only PDL installed is 2.4.9_010.
And experiments with different ReadLine modules (Perl, Gnu) that
Chris suggested did not seem to help any.  I don't see any
$SIG{__DIE__} definitions in perldl, but there are some elsewhere in
the PDL source tree, but nothing looked likely to me.

Any other ideas?

cheers, Derek


On Aug 5, 2011, at 8:03 AM, Chris Marshall wrote:

Hi Derek-

I cannot reproduce the problem with PDL-2.4.9 for either the
one-liner, pdl2, or perldl.  All report the mismatch error.  Two
thoughts come to mind:

(1) Try using the perl readline for your shell (assuming you are
using GNU readline by default.  Maybe the error is there but being
"lost" somehow, e.g.:

PERL_RL=Perl perldl

(2) It is possible that you have some contamination between the
2.4.7 PDL install and any others on your system.  Sometimes it is
difficult to isolate everything. The only sure way would probably
be a complete, separate perl install and all modules for the 2.4.7
stuff.

Are the two systems you need to be bug-for-bug compatible on the
same OS, hardware, perl, ...? If not, it might be difficult to be
fully "compatible".

Cheers, Chris

On Thu, Aug 4, 2011 at 4:47 PM, Derek Lamb<[email protected]>
wrote:
If I run this one-liner on the command-line, I get the expected
warning:

$ perl -MPDL -e 'print ones(2,4)+zeroes(5,7);' PDL:
PDL::Ops::plus(a,b,c): Parameter 'b' PDL: Mismatched implicit
thread dimension 0: should be 2, is 5

Caught at file -e, line 1, pkg main


If I run it in the pdl2 shell, I get the warning.  But if I run
the same thing in the perldl shell, I get no warning at all--it
looks like a successful command unless I try to assign that to a
variable and find out later that the variable doesn't exist.
This happens for PDL 2.4.7 as well as the current git
(2.4.9_004).  I do get the warning in the perldl shell on a Linux
machine running 2.4.9_002.  So it makes me think there is a funny
interaction between the components of my current setup.  perldl
-V output is pasted below.  FWIW I'm still running PDL 2.4.7
because for now I need to be bug-for-bug compatible with another
machine in a production environment.  Has anybody else seen
something like this, or have any ideas?

Derek

----------

$ perldl -V perlDL shell v1.354 PDL comes with ABSOLUTELY NO
WARRANTY. For details, see the file 'COPYING' in the PDL
distribution. This is free software and you are welcome to
redistribute it under certain conditions, see the same file for
details.

Summary of my PDL configuration

VERSION: PDL v2.4.7 (supports bad values)

$%PDL::Config = { 'BADVAL_PER_PDL' =>  '0', 'WITH_PROJ' =>  '1',
'FFTW_TYPE' =>  'double', 'FFTW_LIBS' =>  [ '/opt/local/lib' ],
'WITH_FFTW' =>  '1', 'GSL_LIBS' =>  undef, 'GL_BUILD' =>  '0',
'WITH_IO_BROWSER' =>  '0', 'PROJ_INC' =>  [ '/opt/local/include'
], 'WHERE_PLPLOT_INCLUDE' =>
'/Users/derek/local/include/plplot', 'WITH_KARMA' =>  '0',
'WHERE_KARMA' =>  undef, 'HTML_DOCS' =>  '1',
'SKIP_KNOWN_PROBLEMS' =>  '0', 'WHERE_PLPLOT_LIBS' =>
'/Users/derek/local/lib', 'WITH_3D' =>  '1', 'WITH_POSIX_THREADS'
=>  '0', 'FFTW_INC' =>  [ '/opt/local/include' ], 'POGL_VERSION'
=>  '0.63', 'HIDE_TRYLINK' =>  '1', 'HDF_INC' =>  [
'/opt/local/include' ], 'WITH_HDF' =>  '1', 'POGL_WINDOW_TYPE' =>
'glut', 'WITH_GD' =>  '1', 'WITH_BADVAL' =>  '1', 'FITS_LEGACY'
=>  '1', 'WITH_SLATEC' =>  '1', 'BADVAL_USENAN' =>  '0',
'WITH_DEVEL_REPL' =>  '1', 'TEMPDIR' =>
'/var/folders/cp/cpF7SuTpEJqtly5xlloAak+++TI/-Tmp-', 'PROJ_LIBS'
=>  [ '/opt/local/lib' ], 'USE_POGL' =>  '1', 'GD_LIBS' =>  [
'/opt/local/lib' ], 'GSL_INC' =>  undef, 'GD_INC' =>  [
'/opt/local/include' ], 'OPTIMIZE' =>  '-g', 'WITH_GSL' =>  '1',
'HDF_LIBS' =>  [ '/opt/local/lib' ], 'MALLOCDBG' =>  {},
'WITH_PLPLOT' =>  '0', 'WITH_MINUIT' =>  '1', 'MINUIT_LIB' =>
undef }; Summary of my perl5 (revision 5 version 14 subversion 1)
configuration:

Platform: osname=darwin, osvers=10.7.0,
archname=darwin-multi-2level uname='darwin turul 10.7.0 darwin
kernel version 10.7.0: sat jan 29 15:17:16 pst 2011;
root:xnu-1504.9.37~1release_i386 i386 ' config_args='-D
inc_version_list=5.14.0/darwin-multi-2level 5.14.0 -des
-Dprefix=/opt/local -Dscriptdir=/opt/local/bin
-Dcppflags=-I/opt/local/include -Dccflags=-pipe -O2 -arch x86_64
-Dldflags=-L/opt/local/lib -arch x86_64 -Dvendorprefix=/opt/local
-Dusemultiplicity=y -D cc=/usr/bin/gcc-4.2 -D ld=/usr/bin/gcc-4.2
-D man1ext=1pm -D man3ext=3pm -D
man1dir=/opt/local/share/man/man1p -D
man3dir=/opt/local/share/man/man3p -D
siteman1dir=/opt/local/share/man/man1 -D
siteman3dir=/opt/local/share/man/man3 -D
vendorman1dir=/opt/local/share/man/man1 -D
vendorman3dir=/opt/local/share/man/man3 -D pager=/usr/bin/less
-sR' hint=recommended, useposix=true, d_sigaction=define
useithreads=undef, usemultiplicity=define useperlio=define,
d_sfio=undef, uselargefiles=define, usesocks=undef
use64bitint=define, use64bitall=define, uselongdouble=undef
usemymalloc=n, bincompat5005=undef Compiler:
cc='/usr/bin/gcc-4.2', ccflags ='-pipe -O2 -arch x86_64
-fno-common -DPERL_DARWIN -I/opt/local/include -no-cpp-precomp
-fno-strict-aliasing -fstack-protector -I/opt/local/include',
optimize='-O3', cppflags='-I/opt/local/include -no-cpp-precomp
-pipe -O2 -arch x86_64 -fno-common -DPERL_DARWIN
-I/opt/local/include -no-cpp-precomp -fno-strict-aliasing
-fstack-protector -I/opt/local/include' ccversion='',
gccversion='4.2.1 (Apple Inc. build 5666) (dot 3)',
gccosandvers='' intsize=4, longsize=8, ptrsize=8, doublesize=8,
byteorder=12345678 d_longlong=define, longlongsize=8,
d_longdbl=define, longdblsize=16 ivtype='long', ivsize=8,
nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8
alignbytes=8, prototype=define Linker and Libraries: ld='env
MACOSX_DEPLOYMENT_TARGET=10.6 /usr/bin/gcc-4.2', ldflags
='-L/opt/local/lib -arch x86_64 -fstack-protector'
libpth=/opt/local/lib /usr/lib libs=-lgdbm -ldbm -ldl -lm -lutil
-lc perllibs=-ldl -lm -lutil -lc libc=, so=dylib,
useshrplib=false, libperl=libperl.a gnulibc_version='' Dynamic
Linking: dlsrc=dl_dlopen.xs, dlext=bundle, d_dlsymun=undef,
ccdlflags=' ' cccdlflags=' ', lddlflags='-L/opt/local/lib -arch
x86_64 -bundle -undefined dynamic_lookup -fstack-protector'
-----------


_______________________________________________ Perldl mailing
list [email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

_______________________________________________
Perldl mailing list
[email protected]
http://mailman.jach.hawaii.edu/mailman/listinfo/perldl

Reply via email to