Hi Alan, Thanks for your analysis, it was very interesting. Perhaps if I were to take an extended look at that 20-yr-old fix I might be able to dredge up some insights. OTOH, the ps driver was not my creation and I never felt truly comfortable modifying it. I basically just hacked it as needed to get the desired printable output. In other words, you're on your own, good luck. :)
Maurice On Thursday, October 23, 2014 at 22:44:52 (-0700) Alan W. Irwin writes: > To Maurice and Andrew: > > I think you will be interested both in the history of this issue and > also how I resolved it. If either of you think I screwed up this fix > of Maurice's (1994) fix, please let me know! > > Basically Maurice's fix emitted M commands for _every_ > state change other than PLSTATE_WIDTH. The complete list of those > state changes (as far as I know) other than PLSTATE_WIDTH is > PLSTATE_FILL, PLSTATE_COLOR[01], and PLSTATE_CMAP[01] and evidentally > one or more of those which are normally no-ops for the ps device (i.e., > PLSTATE_FILL and PLSTATE_CMAP[01]) have been triggered by rounding > differences with the result that isolated M commands are being emitted > for one type of rounding compared to another. > > My fix essentially returned the M command emitting code back to what it was > like > prior to Maurice's fix but with the undefined variable issue > fixed; the M commands are now only issued after a C command, > i.e., only for case PLSTATE_COLOR[01] and only if the relevant > variables for the M command are defined. > > Andrew's psttf device driver code is partially based on the ps device > driver code and evidentially Maurice's fix propagated to the psttf > device driver so I had to fix that as well. > > I still have no idea why the C command must be followed by an M > command for PostScrit. That decision was made before 1994. > Hopefully, Maurice or Andrew will be able to comment on the reason for > this. > > For further details about the current fix and Maurice's fix see > <http://sourceforge.net/p/plplot/plplot/ci/3028bea51568a023dcf3612a664a8a4345e91b14> > and > <http://sourceforge.net/p/plplot/plplot/ci/07eab71b70249ac03a0f89db4061583d968f7365>. > > Note the current fix likely does not get rid of all causes of extreme > sensitivity of the psc device results to rounding issues, but I do > recall a number of such issues in the past that also involved extra M > PostScript commands being emitted by one language compared to another. > Therefore, I believe this current fix will at least get rid of a > substantial subset of such issues, and it certainly gets rid of that > issue for the Python/C special test comparison of the new example 8 results. > > Tomorrow after removing some special testing hacks and throughly > testing the final new Python example 8 against the repository version > of the C code, you should see a commit from me of that new Python code, > and I hope my further planned changes to example 8 for Octave and Java > are a lot less interesting than they have been for the Python case! > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel