I just finished committing the C++ code that Andrew Ross donated and I also
committed some additional C++ configuration changes. Everything builds,
checks, and installs nicely on my machine, and the results of all the new
examples look good (except for a small problem with x02.cc noted below).
Andrew, please see the plplot-cvs archive at
http://sourceforge.net/mailarchive/forum.php?forum_id=33536 for the detailed
commit messages. Also, please note that the actual file changes will not be
available to you for several days (because of on-going SourceForge load
issues on their cvs servers) when you use anonymous cvs access. Developers
will have immediate access (sorry, Andrew that SF discriminates against
non-developers this way).
Here are some additional notes:
* Copyright line(s) and (LGPL) copying conditions added to both the java and
* I removed some java commentary that got into the x01.cc example by accident.
* The HAVE_USLEEP code in x01.cc and x17.cc would not compile properly on my
Debian stable system so I temporarily disabled it until it can be figured
out. Andrew, if you have access to a Linux system, will you give this
a try with g++?
* x02, x04, x16, and x21 produce different results than the corresponding
C examples. Andrew, could you have a look at this? x02 should be easy
to figure out. The size of the symbols changes dramatically between
C and C++ for the x02 example. The remaining differences are much more
subtle, and only showed up in diff's between postscript files. I could
not see anything using visual inspection. You can probably forget about
these since there are similar java/C differences.
Of course, the good news is that every other example gives absolutely
identical postscript results between the C++ and C examples. This, plus the
good-looking (except for x02) results for the remaining examples which don't
produce identical results largely validates the C++ interface that Andrew
has been updating.
* Changed the old example, x01cc.cc to use the updated C++ interface.
Command-line options now work! (as they do for the x??.cc examples).
* examples/c++/Makefile.examples.in: extend the build list and clean list to
the new examples.
* examples/c++/Makefile.am: extend the install to include the new examples.
Also reorganize in better style (no more .samename). This works for make
check and make install, but Rafael, please check that the additional special
targets you need when you make a tarball will work as well.
* test/test_cxx.sh: Take advantage of command-line options that are now
available for C++. Also, do all the new C++ examples. This significantly
extends the number of examples executed by plplot-test.sh for the C++
* bindings/c++/plstream.cc and bindings/c++/plstream.h. 13 API additions
and a backwards-incompatible API change for initializing PLplot. As discussed
on this list, everybody seemed willing to go along with this C++ API change
because of the many benefits (e.g., allows command-line options to work for
the first time from the C++ interface). Rafael, note you will have to
update the version of the libplplotcxx library to signal the API change, but
no corresponding change for the libplplot library should be necessary.
Alan W. Irwin
Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).
Programming affiliations with the PLplot scientific plotting software
package (plplot.org), the Yorick front-end to PLplot (yplot.sf.net), the
Loads of Linux Links project (loll.sf.net), and the Linux Brochure Project