Thanks! Argh. I'll rework this to a 1.2 for Windows support in the next day or so. I worked hard to merge the two cases, but somehow dropped the "or $MS_io_braindamage" clause, sorry. I think the best way to do it is to break the two cases out into separate paths through the code. Rob is out-of-pocket until Tuesday - would you be willing to test a 1.2b if I send it directly to you? (I don't have a working Microsoft Windows setup and, although I do have VirtualBox and tried to get Strawberry Perl working, trying to mess around with it saps my will to live.)
Cheers, Craig On Oct 12, 2012, at 1:27 PM, Jürgen Mück wrote: > > Craig, > > working with Perl 5.14.2 / PDL 2.4.11 under Windows 7, I installed your > PDL::Graphics::Gnuplot-1.1 from October 11th, directly after installing > gnuplot. > > Here are my learnings, maybe they are of some help for you and others: > > 1. Windows PATH variable > When installing gnuplot (gp470-20120916-win32-mingw.exe) I activated the > option to add the gnuplot directory to the windows PATH variable. This is > necessary for your module to find gnuplot under Windows, already during > installation via cpan. > > 2. cpan>notest install PDL::Graphics::Gnuplot > I had to install PDL::Graphics::Gnuplot without running the tests. Changes in > your Gnuplot.pm had been necessary to make it run gnuplot (->3.) > > 3. Gnuplot.pm > I had to add some changes similar to those proposed by Rob for > PDL::Graphics::Gnuplot 1.0. > I have no chance to produce a nice diff (at least I don't know how to do), so > here are my changes: > a) Line 5789: add "or $MS_io_braindamage" to the condition > b) Lines 5833ff: I set $fromerr = '' after throwing warning. > > Both changes are similar to those from Robs mail, I wouldn't be able to solve > problems like this myself ... > > Finally the gnuplot commands are shown in my cmd.exe window (help me learning > gnuplot:-), and Robs example works. > > Thanks for PDL::Graphics::Gnuplot, I'll be happy to work with it on the > weekend. > > Juergen > > Sisyphus schrieb: >> >> ----- Original Message ----- From: "Craig DeForest" >> <[email protected]> >> To: <[email protected]> >> Sent: Tuesday, September 25, 2012 2:23 PM >> Subject: [Perldl] PDL::Graphics::Gnuplot 1.0 available in CPAN >> >>> PDL::Graphics::Gnuplot has been tested on MacOS and several flavors of >>> Linux. It allegedly works with Microsoft Windows (via IPC::Run) but has >>> not been tested there. >> >> Hi Craig, >> Attached is a patch (gnuplot.win32.diff) that enables PDL-G-G-1.0 to work on >> MS Windows. >> Without this patch, windows will invariably and inevitably enter the code >> block that prints out the warning: >> >> print STDERR <<"EOM" >> WARNING: Hmmm, gnuplot didn't respond for 8 seconds. I was expecting to >> read >> a version number. Ah, well, I'm returning the object anyway -- but don't >> be surprised if it doesn't work. >> EOM >> >> It will then invariably and inevitably enter the code block that prints out >> the error: >> >> barf <<"EOM"; >> Hmmm, my $suffix Gnuplot process didn't respond for $delay seconds. >> This could be a bug in PDL::Graphics::Gnuplot or gnuplot itself -- although >> for some terminals (like x11) it could be because of a >> slow network. If you don't think it is a network problem, please >> report it as a PDL::Graphics::Gnuplot bug. You might be able to >> ignore this message, or you might have to restart() the object. >> EOM >> >> Obviously, at that point it dies. This all happens because can_read() >> immediately returns false on Windows whenever it is called on pipes or >> filehandles. >> >> This patched version also sets $fromerr to the empty string (again to avoid >> having the script die). >> And it it prints the contents of $fromerr to STDERR - so that we can at >> least see what $fromerr contained. >> >> For my test program I'm using the attached synopsis1.pl. The output that it >> sends to the console (which is simply the contents of $fromerr) is provided >> in the attached console.txt. >> The gnuplot graph that synopsis1.pl produces looks fine. >> >> This is just a starting point ... does anyone here have any suggestions >> regarding improvements to this rather lame patch that I've come up with ? >> (If not, I'll just submit the patch in its existing form to rt.cpan in a day >> or two.) >> >> Some things that bother me: >> >> 1) Note that, in console.txt, every print of $fromerr seems to be missing >> the final doublequote character. >> Also, all but the first print of $fromerr begin with a doublequote char. (Is >> that the doublequote that was missing from the end of the previous print ?) >> >> 2) I need to employ an <STDIN>; at the end of the script in order to keep >> the gnuplot window open. Is that normal ? >> >> 3) I'm not really very comfortable with having to, in essence, ignore the >> contents of $fromerr and re-set it to the empty string. There must be >> something better. >> >> 4) http://www.perlmonks.org/index.pl?node_id=942603 mentions some Win32 >> options to replace IO::Select::can_read(). The alternatives look non-trivial >> to me, but maybe I just need to look a bit closer. >> >> For anyone interested, I've also attached demo2.pl which contains 11 demos >> (0 .. 10) all of which seem to work pretty well - except for #9, which >> hangs. >> >> I'm using gnuplot-4.6.0 binaries from >> http://www.tatsuromatsuoka.com/gnuplot/Eng/winbin/ >> >> Cheers, >> Rob >> $fromerr: >> #### >> 0 last modified 2012-03-04 >> Build System: MS-Windows 32 bit >> >> >> Copyright (C) 1986-1993, 1998, 2004, 2007-2012 >> >> Thomas Williams, Colin Kelley and many others >> >> >> >> gnuplot home: http://www.gnuplot.info >> >> faq, bugs, etc: type "help FAQ" >> >> immediate help: type "help" (plot window: hit 'h') >> >> >> >> gnuplot> >> gnuplot> >> gnuplot> print "xxxxxxx Synchronizing gnuplot i/o 1 xxxxxxx >> #### >> >> >> $fromerr: >> #### >> " >> >> xxxxxxx Synchronizing gnuplot i/o 1 xxxxxxx >> >> gnuplot> set palette >> gnuplot> plot '-' binary array=(101) format="%double" using 1 notitle >> with lines >> gnuplot> >> gnuplot> >> gnuplot> print "xxxxxxx Synchronizing gnuplot i/o 2 xxxxxxx >> #### >> >> >> $fromerr: >> #### >> " >> >> xxxxxxx Synchronizing gnuplot i/o 2 xxxxxxx >> >> gnuplot> set size noratio >> >> gnuplot> set view noequal >> >> gnuplot> set view 60,30,1.0,1.0 >> >> gnuplot> >> gnuplot> >> gnuplot> print "xxxxxxx Synchronizing gnuplot i/o 3 xxxxxxx >> #### >> >> >> $fromerr: >> #### >> " >> >> xxxxxxx Synchronizing gnuplot i/o 3 xxxxxxx >> >> gnuplot> set palette >> gnuplot> set title "Parabola with error bars" >> gnuplot> plot '-' binary array=(101) format="%double%double%double" >> using 1:2:3 title "Parabola" with xyerrorbars >> gnuplot> >> gnuplot> >> gnuplot> print "xxxxxxx Synchronizing gnuplot i/o 4 xxxxxxx >> #### >> >> >> $fromerr: >> #### >> " >> >> xxxxxxx Synchronizing gnuplot i/o 4 xxxxxxx >> >> gnuplot> set size noratio >> >> gnuplot> set view noequal >> >> gnuplot> set view 60,30,1.0,1.0 >> >> gnuplot> >> gnuplot> >> gnuplot> print "xxxxxxx Synchronizing gnuplot i/o 5 xxxxxxx >> #### >> >> >> >> _______________________________________________ >> 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
