On 2016-02-15 02:59-0800 Alan W. Irwin wrote: [...] > Actually, plmap, plmapline, > plmapfill, etc., have the same near-duplicate messy code style issues > so I am trying to figure out how to fix those issues first before I > tackle implementing real fortran callbacks for plcont, plshade, > plshades, plimage and plvect.
Hi Arjen: As of commit 971cb37 I did discover a way to implement the two precision flavours of plmap, plmapline, etc. (and also plmeridians) in included_plplot_real_interfaces.f90 for a 50 per cent saving in code (and also likely a considerable improvement in developer understanding 20 years from now). The only caveat with this new "compact" style is you get the following two gfortran build warnings Warning: Symbol 'plmapformf2c' at (1) is marked PRIVATE but has been given the binding label 'plplot_double_plmapformf2c' and Warning: Symbol 'plmapformf2c' at (1) is marked PRIVATE but has been given the binding label 'plplot_single_plmapformf2c' When I looked up that build warning it appears to be regarded by certain legitimate-sounding users as a gfortran bug (see <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49111> and <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64861>). And I also liked the argument presented in one of those reports that there are two kinds of privacy in this case which are Fortran module privacy and overall privacy, and you may well want to keep parts of a module private from other modules (as I do in this case to avoid the plmapformf2c name clash) while there are still associated public results from this module code (i.e., the public symbols plplot_double_plmapformf2c and plplot_single_plmapformf2c exist in the library). So although the gfortran developers have not responded to this good argument (yet) one hopes they will do so in the long run to get rid of this warning message that says essentially that overall privacy has been violated. After all, that is a pretty spurious warning since essentially the same thing happens without a warning message for the names (which are also module-private but not overall private) of our module procedures. In any case the result at run-time (as you can see from my commit message) is perfect so I am going to ignore the above two warnings and assume no other compiler will have any issue with a private C binding. N.B. a quick check that ifort can build the present compactly styled library would be appreciated if you are not completely caught up finishing other things before your holiday. I intend to follow up the current good results for the compact style with (i) implementing with a similar compact style real Fortran callbacks for plcont, plshade, plshades, plimage, and plvector, (ii) testing all those real callbacks, and (iii) updating bindings/f95/plplotf95_ifort.def. (I noticed that file is rather incomplete at the moment, e.g., no single-precision version of any of the plmap* routines, but it should be straightforward to update it using the results from nm --defined-only bindings/f95/libplplotf95.so and the existing symbol patterns in that file.) Those three topics should finally finish off my Fortran plans for this release cycle, although I still have a lot of non-Fortran topics on my agenda for this release cycle so the forthcoming release date is still not settled. 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 __________________________ ------------------------------------------------------------------------------ Site24x7 APM Insight: Get Deep Visibility into Application Performance APM + Mobile APM + RUM: Monitor 3 App instances at just $35/Month Monitor end-to-end web transactions and take corrective actions now Troubleshoot faster and improve end-user experience. Signup Now! http://pubads.g.doubleclick.net/gampad/clk?id=272487151&iu=/4140 _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel