Hi Jim: On 2015-02-17 13:11-0500 Jim Dishaw wrote:
> Hopefully this patch series will work correctly. I started a new topic branch as recommended. Thanks for this new patch series which applies on top of master tip without issues, and after default cmake configuration (except for adding -DPLD_plmeta=ON) make test_plbuf make ps make plmeta builds those targets without issues. Furthermore examples/c/test_plbuf runs without issues and produces test_plbuf_0.plm test_plbuf_2.out test_plbuf_0.out test_plbuf_1.out where the last three are differing PostScript plots that are similar to example 1. If you ignore the date stamp, test_plbuf_[01].out only differ by a colour command, but test_plbuf_2.out is very different from the other two which is probably relevant to my further coordinate remarks below. Finally, here are the corresponding valgrind results: software@raven> valgrind examples/c/test_plbuf ==2053== Memcheck, a memory error detector ==2053== Copyright (C) 2002-2011, and GNU GPL'd, by Julian Seward et al. ==2053== Using Valgrind-3.7.0 and LibVEX; rerun with -h for copyright info ==2053== Command: examples/c/test_plbuf ==2053== ==2053== ==2053== HEAP SUMMARY: ==2053== in use at exit: 1,228 bytes in 64 blocks ==2053== total heap usage: 6,780 allocs, 6,716 frees, 1,046,238 bytes allocated ==2053== ==2053== LEAK SUMMARY: ==2053== definitely lost: 1,228 bytes in 64 blocks ==2053== indirectly lost: 0 bytes in 0 blocks ==2053== possibly lost: 0 bytes in 0 blocks ==2053== still reachable: 0 bytes in 0 blocks ==2053== suppressed: 0 bytes in 0 blocks ==2053== Rerun with --leak-check=full to see details of leaked memory ==2053== ==2053== For counts of detected and suppressed errors, rerun with: -v ==2053== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 4 from 4) I very much like that 0 errors result in the summary although there are obviously still some unfreed memory issues reported here that should be addressed. So my conclusion from these tests is this patch series does not introduce any major issues so I have pushed it along with a subsequent commit of my own to fix the source code style issues in this patch series. IMPORTANT. Which means your patch series and my subsequent patch to style it are now in the master branch at SourceForge and any further changes you do to plmeta/plbuf should start from a fresh new topic branch based on master tip. Although I am obviously willing to run scripts/style_source.sh myself, I also encourage you to look at the recent thread here concerning how to do that for yourself to get the result of your series of commits to match PLplot code standards. > The plot metafile read will generate an output identical to plrender. Visually, the plot is similar to the output generated by plplot directly; however, due to the difference in coordinates the file contents are not identical. For me, this is a big issue for the current code in master tip. I did read the comments in your 6th patch which said this change in coordinates was necessary, but is that really the case? I am concerned you are trying to replicate the old bad behaviour of the plmeta device rather than rewriting plmeta/plrender completely (without that old bad behaviour) using plbuf capabilities. Here is my mental model of what goes on with PLplot coordinates. (Please update/correct this if your recent digging into PLplot code shows you something different is going on.) The user specifies a series of plot commands using a variety of coordinate systems that are available to the user (world coordinates, normalized subpage coordinates, etc.) Then when using any device, that series of plot commands containing a variety of coordinates are transformed into (currently 16-bit) internal physical coordinates which the device driver code linearly transforms into real physical coordinates of the device. So to my mind, if the new plmeta device did no linear transformation from internal physical coordinates to real physical coordinates (i.e, simply stored in the plmeta file the internal physical coordinates associated with each command), and plrender replayed those commands using their associated internal coordinates for <some device> then the "indirect" results from <some_standard_example> -dev plmeta -o test.plm plrender test.plm -dev <some device> should be absolutely identical (by construction of the new plmeta/plrender capability) with the "direct" result <some_standard_example> -dev <some device> A major issue with the old plmeta/plrender capability is it did not follow the above model and did not store/replay using internal physical coordinates and therefore lost the ability to produce identical "indirect" and "direct" results. In fact, in the old days I had the following result: <some_standard_example> -dev plmeta -o test.plm plrender test.plm -dev plmeta -o test1.plm BUT, test1.plm was different from test.plm which was my first clue as a PLplot newbie 15 years ago that there was something not quite right with how -dev plmeta stored coordinates and plrender replayed using those. Therefore, I strongly hope you can find a way to store all new plmeta coordinate results in internal physical coordinates to make this important replication issue go away and also to make it extremely easy to test plbuf capabilities with plmeta/plrender by comparing indirect and direct results for each of our standard examples. 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 __________________________ ------------------------------------------------------------------------------ Download BIRT iHub F-Type - The Free Enterprise-Grade BIRT Server from Actuate! Instantly Supercharge Your Business Reports and Dashboards with Interactivity, Sharing, Native Excel Exports, App Integration & more Get technology previously reserved for billion-dollar corporations, FREE http://pubads.g.doubleclick.net/gampad/clk?id=190641631&iu=/4140/ostg.clktrk _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel