On 2015-02-13 00:04-0500 Jim Dishaw wrote:

> The attached patch is a roll-up of all the changes that I have made:
>
> - Moved the memory allocation routines from pdf_utils to plmem.c (new file)
> - Bug fixes to plbuf.c
> - Reading/Writing plot metafiles
> - Test routine for plbuf.c
>
> The plbuf.c changes should be production ready.  I'm still trying to figure 
> out why there is an extraneous color change at the beginning on a replot, but 
> it does not affect the appearance.
>
> The plot metafiles is still is a work in progress, but I wanted to make it 
> available for testing.  There are two new command line options, -mfo and 
> -mfi.  The -mfi option will read in a plot metafile and almost correctly 
> displays the output.  I have not finished the output method.

Thanks very much for your efforts.

I have found some minor issues that need fixing before I can test this
patch series and commit it to master.

test_plbuf doesn't build because of visibility issues.  Here is the
error message I get using the gcc option -fvisibility=hidden (which
makes all library functions in Linux hidden unless specified otherwise
so it is very similar to the Windows situation).

Linking C executable test_plbuf
CMakeFiles/test_plbuf.dir/test_plbuf.c.o: In function main':
test_plbuf.c:(.text.startup+0x32): undefined reference to
plreadmetafile'

To fix this visibility issue (this will also fix all visibility issues
on Windows) you must declare plreadmetafile in some PLplot header
using the PLDLLIMPEXP macro. (Currently you don't declare
plreadmetafile anywhere so I assume ANSI C is making some guesses
about what that declaration is.)

Your header choices depend on whether you feel this API is worth
having for each of our language bindings or only just for C.
In the former case you should declare the function in include/plplot.h
but otherwise you should declare it in include/plplotP.h.

When you fix this (as well as any other visibility issues you might
have for new functions like plreadmetafile that you have introduced),
then I suggest you should rebase your topic branch before sending
the series of patches.  In the present case git am errored out
the first time I tried it because your patch series was not based
on the current tip of the master branch (i.e., your patch series
included

- Moved the memory allocation routines from pdf_utils to plmem.c

and the subsequent quick-fix patch for that patch

where those two patches have already landed on the master branch.

The other issue I noticed is the current test_plbuf source code exits
almost immediately after reading in a metafile and playing the buffer.
Did you mean that to be the complete test from now on?  If so we need
some metafile to read in so the test can be run, and you should also
remove all the large amount of code after the exit.

I look forward to your updated patch series with the above issues fixed.
I also hope you achieve quick turnaround because Phil's series of
patches should arrive shortly which are based on top of yours.

@Phil: Whenever I get your wxwidgets patch series tomorrow, I will
just apply them on top of Jim's patch series (or on top of a new topic
branch based on the latest master if I have have had a chance to test
Jim's revised patch series and commit it to master).  So if you
have any of Jim's patches in your series I will just skip them using
the "git am -i option".

@everybody: I just double-checked and there are style changes that
need to be made for the following list of files:

software@raven> scripts/style_source.sh 
src/plargs.c
src/plbuf.c
src/plmem.c
src/plmetafile.c
src/plsdef.c
src/plstdio.c
include/metadefs.h
include/plplot.h
include/plplotP.h
include/plstrm.h
drivers/plmeta.c
examples/c/test_plbuf.c
bindings/tcl/plplot_parameters.h
bindings/tcl/tclAPI.c
bindings/f95/sc3d.c
bindings/f95/scstubs.c
bindings/d/plplot.d
examples/d/x08d.d
examples/d/x19d.d

Of course, this is an extremly intrusive change so I will hold off
doing this until everything lands on master to avoid conflicts with
all the work that is currently being developed in topic branches
by both Jim and Phil.

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
__________________________

------------------------------------------------------------------------------
Dive into the World of Parallel Programming. The Go Parallel Website,
sponsored by Intel and developed in partnership with Slashdot Media, is your
hub for all things parallel software development, from weekly thought
leadership blogs to news, videos, case studies, tutorials and more. Take a
look and join the conversation now. http://goparallel.sourceforge.net/
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to