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

Reply via email to