In pdl2 it works just fine.  Here's an example that has nothing to do with any 
PDL module, only the PDL shell being used.  In the perldl shell, when I try to 
print to an unopened file handle, I get no error, but when I do the same thing 
in the pdl2 shell it gives me an appropriate error.  I guess one workaround 
would be to abandon the perldl shell on this machine, but it's worked just fine 
for so many years, and works just fine on other platforms...  I'm so confused.

cheers,
Derek

###use perldl shell
$ perl -Mblib perldl
perlDL shell v1.354_001
<snip>
Loaded PDL v2.4.9_010 (supports bad values)
pdl> print STDOUT "here is a stdout message\n";
here is a stdout message

pdl> print STDERR "here is a stderr message\n";
here is a stderr message

pdl> print ASDF "here is a asdf message\n";

pdl> exit

### use pdl2 shell
$ perl -Mblib blib/script/pdl2
Use of qw(...) as parentheses is deprecated at 
/Users/derek/Build/PDL/blib/lib/PDL/Perldl2/Script.pm line 28.
Use of qw(...) as parentheses is deprecated at 
/Users/derek/Build/PDL/blib/lib/PDL/Perldl2/Script.pm line 38.
Perldl2 Shell v0.005
<snip>
Loaded PDL v2.4.9_010

load_rcfile: got $HOME = /Users/derek
load_rcfile: loading /Users/derek/.perldlrc
pdl> print STDOUT "here is a stdout message\n";
here is a stdout message

pdl> print STDERR "here is a stderr message\n";
here is a stderr message

pdl> print ASDF "here is a asdf message\n";
print() on unopened filehandle ASDF at (eval 367) line 5, <DATA> line 387.

pdl> exit


On Nov 12, 2011, at 12:13 AM, chm wrote:

> 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