FWIW, the bug was that gnuplot is very non-orthogonal in how it treats implicit dimensions. Binary transfer has an "ARRAY" mode that autogenerates implicit dimensions; ASCII does not. Some plot styles (e.g. "lines" and "points") autogenerate implicit dimensions anyway. Others (xyerrorbars) do not, and require an explicit reference to a phantom column of data. The xyerrorbar plot was sending ASCII data and assuming the implicit dimension would work properly, as it does with the line plot of the parabola. The solution is to trap that case and refer to the phantom column.
On Feb 28, 2013, at 7:36 PM, Craig DeForest <[email protected]> wrote: > Cool, found it. There's a bug in the ASCII comms (in an obscure case). I'll > patch it momentarily and include a test. Well done. > > It looks like a 1.5 might be necessary in the next couple of days -- if > nothing else to trap a failing test under the (unsupported) gnuplot 4.2 for > BSD. > > > On Feb 28, 2013, at 5:24 PM, [email protected] wrote: > >> Hi, >> >> Somewhere along the way, the interactive test "error bars are OK" (currently >> test 96 in the 1.4 test suite) started to fail on Windows .... and I've only >> just now noticed. >> (This should be re-producible on *any* Windows build of perl, not just mine.) >> >> The failure occurs in this piece of code: >> >> eval { $w->reset; $w->plot( {title => "Parabola with error bars"}, >> with=>"xyerrorbars", legend=>"Parabola", >> $x**2 * 10, abs($x)/10, abs($x)*5 ); }; >> >> If I print out $@ immediately after that code has executed, I find it >> contains: >> >> PDL::Graphics::Gnuplot: ERROR: the gnuplot backend issued an error: >> 24010 4.9 245 >> ^ >> invalid command >> ^ >> invalid command >> ^ >> invalid command >> at C:/MinGW/perl516/site/lib/PDL/Graphics/Gnuplot.pm line 6767, <STDIN> line >> 3. >> >> >> PDL::Graphics::Gnuplot::_checkpoint('PDL::Graphics::Gnuplot=HASH(0x36ac53c)', >> 'main', 'HASH(0x36ae30c)') called at >> C:/MinGW/perl516/site/lib/PDL/Graphics/Gnuplot.pm line 2832 >> PDL::Graphics::Gnuplot::plot(undef, undef, 'with', 'xyerrorbars', >> 'legend', 'Parabola', 'PDL=SCALAR(0x36aec1c)', 'PDL=SCALAR(0x36ae79c)', >> 'PDL=SCALAR(0x36ae1fc)', ...) called at t/plot.t line 527 >> eval {...} called at t/plot.t line 527 >> >> The effect of this failure is that the graph remains unchanged - the error >> bars do not appear. >> All previous and subsequent tests pass. >> >> I don't know why that failure has started occurring. So long as I specified >> gpwin('wxt') in t/plot.t, the exact same test was working fine a fortnight >> ago with the P::G::G git version (when it was test 81). >> >> I have, however, ascertained that the problem is NOT caused any of the >> subsequent changes to t/plot.t script itself - so it must be some recent >> change in Gnuplot.pm that has changed the behaviour. >> >> Sorry, that's about all I have time for right now. >> >> Cheers, >> Rob >> >> >> >> >> >> _______________________________________________ >> 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
