Update of /cvsroot/plplot/www/announce
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv10273
Better wording for xwin driver entry
--- NEW FILE: announce-plplot-5.1.0.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<title>Announcement of PLplot-5.1.0</title>
<h1>Announcement of PLplot-5.1.0</h1>
<p>7 months and 500+ CVS commits after PLplot-5.0.4 it is time for another
stable release of this publication-quality scientific plotting package.</p>
<li>What: PLplot-5.1.0 release (source tarball and RedHat 7.1 and Mandrake 8.1 source and binary rpm's).</li>
<li>Where: <a href="http://sourceforge.net/project/showfiles.php?group_id=2915">http://sourceforge.net/project/showfiles.php?group_id=2915</a>.</li>
<li>When: 2002 January 31.</li>
<li>Why: New features, improved features, and bug fixing.</li>
<li>Who: The PLplot core development <a href="http://sourceforge.net/project/memberlist.php?group_id=2915">team</a>
with additional help from
<a href="mailto:svensson@... Svensson</a> and
<a href="mailto:mirone@... Mirone</a>
<h2>Important Changes to Existing Features</h2>
The Windows port of PLplot has been completely refurbished. PLplot now
runs on Windows 98 (and perhaps even Windows 95 although that is untested),
Windows NT, and Windows 2000. See plplot/sys/win32/msdev/README.TXT and
plplot/sys/win32/msdev/INSTALL.TXT for details. Please direct all
questions about this Windows port to Olof Svensson.
The examples were extensively expanded for each front end to be the
union of the previous results for all front ends. For example, you should
now expect to get the same results for the 10 pages of the contouring
(ninth) example regardless of whether you are running that example from Tcl,
C, Python, Java (and eventually C++, Fortran, and Perl).
We have finished converting all Python examples to use the Numeric module (from
the Numpy project) wherever possible. This module allows high-level array
manipulations at C speeds that are quite useful in preparing data to be
plotted. The xw??.py examples are no longer stand-alone scripts. Instead,
they are now organized as modules that are imported into python scripts such
as pythondemos.py or prova.py.
API change: plxormod now returns a status.
plssub now no longer has a forced page advance inside it (which was
confusing some drivers). More specific page initialization is used inside
of plssub instead. If this change causes you some problems, see the
examples for the proper way to terminate pages and sub-pages.
We no longer support the variety of make commands on the
non-GNU/Linux unices. Instead, we now only
support the GNU version of make which
is well <a href="http://www.gnu.org/software/make/make.html">documented</a> and which
can be downloaded from <a href="ftp://ftp.gnu.org/pub/gnu/make">ftp://ftp.gnu.org/pub/gnu/make</a>.
The DocBook API chapter (and the man pages and Octave help
built from that chapter) now
have complete documentation of the meaning of the function parameters.
The overall documentation
and our <a href="http://plplot.sourceforge.net">website</a> content have been improved as
<h2>Important New Features</h2>
A new cgm (Computer Graphics Metafile) driver has been added. This relies on libcd.a which is not
maintained any more. Nevertheless libcd.a is a free library that works well
and does its job so for our cgm user's convenience we have put a copy of the
cd1.3.tar.gz tarball for building this library from source in our
file release area</a>. Our tests indicate
the cgm driver is now stable.
Dynamical loading of device drivers. We have 29 (!) different devices
for output plots, but only one of those is selected by the user for a given
plot. Thus, dynamic loading of device drivers makes your executables
substantially smaller. Caveats: Your Unix must support shared libraries (this
happens automatically for most Linux distributions), xwin and tk drivers are
static-only for now (until we arrange for the PLplot library itself to be
dynamically loaded from the Tcl/Tk front-end). Use the
--enable-dyndrivers configure option to get access to dynamic loading of device drivers.
We now have an experimental Java front end. The PLplot API accessible
from Java is still incomplete, but it is large enough currently to do all
planned examples other than x16.java and x18.java. See
plplot/examples/java/README.javademos for directions about how to get access
to the Java front end for PLplot.
We now have a new tk (ntk) driver (--enable-ntk) whose goal is to
provide the tk driver functionality using a simpler, cleaner design.
This is "a work in progress" because its functionality, although working, is
still quite limited compared to the traditional tk driver.
We now have the beginnings of a Pyqt GUI for PLplot thanks to Alessandro
Mirone. See examples/python/README.pythondemos for directions about how to
We now have an experimental plimage function for PLplot thanks (again)
to Alessandro Mirone. Try the experimental x20c example to see how to work
with images in PLplot at the moment, but note the plimage API may change in
<h2>Important Bug fixes</h2>
Interactive color palettes now work for the plframe Tk GUI. This
important feature allows you to interactively adjust the cmap0 (discrete)
and cmap1 (continuous) colors for a particular plot.
<h2>Remaining Important Bugs</h2>
The shaded 3D plots (see Example 8) have problems with the edges of
hidden shaded regions. Our judgement is this donated plotsh3d code is too difficult
to fix and should be completely replaced. Any volunteers? Meanwhile, with Example 8
we do get a taste of the nice effects you can have with 3D shaded plots.
There is no page control for the plframe widget for multi-page plots in
5.1.0. This has now been fixed in CVS and will get into the next release.
<h2>Tests Performed for this Release</h2>
I ran a number of interactive tests on both the Linux Debian woody and Linux RedHat 7.1
systems that were available to me. In particular extensive Tk plframe
widget tests were performed including the refurbished color palette
functionality. All results were good except for the page control problem
The test script, plplot-test.sh, generates 285 pages of non-interactive
plots from the C, Fortran, C++, Python, Tcl, and Octave
front-end examples. I ran this script with the psc, png, jpeg, and cgm
drivers for a total of 1140 plot pages on a Linux Debian woody system. There
were no error messages when generating these results, and the results looked
good. I also ran this same script on a Linux RH 7.1 system (with more
limited test results since the octave front end and cgm driver are
unavailable on that system) with good results. I also ran this same script
(with quite limited results since only the psc driver was available for the
C, Fortran, and C++ front ends) on a Solaris 5.8 computer configured
--with-gcc. Those results were good as well. Note all tests were done for
plplot configured --with-double.
I have also heard good reports of extensive tests of PLplot on other Linux
systems (SuSE 7.0 and 7.2), Unix systems (OSF1 4.0/alpha, IRIX64 6.5/mips,
SCO-3.2v5.0.4, and Solaris-5.7 with native compiler), and Windows 98, NT,
and 2000 systems. I have obviously had a good report of a build on Linux
Mandrake 8.1 (that's how our donated Mandrake 8.1 rpm's were generated), but
as far as I know no extensive tests have been done on that system as yet.
Finally, one user reports good success building and running PLplot with GNU
tools on Mac OS X. To summarize, it is safe to say our cross-platform
capability has never been better!
We hoped to include the new automake and libtool configuration scheme in
this release, but merging that effort from a CVS branch to CVS head has been
delayed until a later release. Meanwhile, a substantial fraction of our
commits have been concerned with improvements to the present configuration
system so we should have a good basis for comparison when the
automake/libtool configuration scheme is finally merged.
<p>We have increased the minor number for this release (5.0.4 --> 5.1.0)
because it does include the important new feature of dynamic drivers.
However, from our good test results (see above) we judge this release to be
as stable (if not more stable) than 5.0.4 so we will only support 5.1.0 from
<p>Have fun with this latest stable release of PLplot!</p>
<p>Alan W. Irwin for the PLplot core team, 2002 January 31</p>
--- NEW FILE: announce-plplot-5.2.1.html ---
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
<meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
<title>Announcement of PLplot-5.2.1</title>
<h1>Announcement of PLplot-5.2.1</h1>
Three months and a lot of hard work after the release of PLplot-5.2.0, it is
time for another stable release of this publication-quality scientific
<li>What: PLplot-5.2.1 release.</li>
<li>Where: <a href="http://sourceforge.net/project/showfiles.php?group_id=2915">
(click on plplot-5.2.1.tar.gz).</li>
<li>When: 2003 April 21.</li>
<li>Why: Consolidation of the many changes in 5.2.0, bug-fixing, new
<li>Who: The PLplot core development <a href="http://sourceforge.net/project/memberlist.php?group_id=2915">team</a>
with additional help from
<a href="mailto:svensson@... Svensson</a>
in supporting the windows port of PLplot (see
This is the first detailed PLplot release announcement since 5.1.0 so we
will be covering both the changes (1000+ commits) between 5.1.0
and 5.2.0, and the additional changes (700+ commits) between
5.2.0, and the current 5.2.1.
<li>plcalc_world. Calculate world coordinates and subpage from relative
<li>plenv0. Similar to plenv, but in multiplot mode does not advance the
subpage, instead the current subpage is cleared.</li>
<li>plgvpd. Get viewport boundaries in normalized device coordinates.</li>
<li>plgvpw. Get viewport boundaries in world coordinates.</li>
<li>plmeshc. Contoured version of plmesh.</li>
<li>plot3dc. Contoured version of plot3d.</li>
<li>plsurf3d. Contoured version of deprecated plotsh3d.</li>
<li>plsbopH. Sets an optional user bop handler.</li>
<li>plseopH. Sets an optional user eop handler.</li>
<li>plsmem. Set the memory area to be plotted. This function is used in
conjunction with the mem.c device driver which is required by Doug Hunt's
PDL interface to PLplot.</li>
<li>plgriddata. Generate grid data for 3D plots from irregularly sampled data.</li>
<li>plotsh3d deprecated. Use plsurf3d instead.</li>
<li>plP_gvpd deprecated. Use plgvpd instead.</li>
<li>plP_gvpw deprecated. Use plgvpw instead.</li>
<li>plpoly3. Argument list change.</li>
<li>plimage. Argument list change.</li>
<li>plend. Changed internally. May only be called once to close the PLplot
library and terminate all plotting. If you have multiple instances of
plinit, the first one opens the PLplot library and plend1 should be used to
terminate all but the last of them which should be terminated by plend.</li>
<h2>Important Paradigm Shifts for 5.2.x</h2>
5.1.0 introduced the idea of plug-in or dynamic devices, and this paradigm
shift lead to other paradigm shifts in the way our libraries were organized
and the way we configured PLplot for 5.2.0. Because of limitations in the
way our 5.1.0 code was organized into libraries several drivers (e.g., xwin,
tk) could not be made dynamic. This problem was solved for 5.2.0 by
reorganizing our code into a larger number of smaller libraries and shared
objects where linking was strictly hierarchical (rather than having
cross-linking between our various libraries and shared objects). This
paradigm shift meant that code specific to particular interfaces was kept
strictly in separate interface libraries; libplplot was strictly reserved
for core plotting functions; and specialized device code was kept with the
device shared objects (or plug-ins). A side benefit of this reorganization
was that it became possible to load the plplot Tcl/Tk interface library
directly into a tclsh or wish environment for the first time for Linux/Unix
platforms. (See examples/tcl/README.tcldemos and examples/tk/README.tkdemos
for the details.)
The library reorganization forced another paradigm shift in the way we did
our configuration for 5.2.0. Our previous low-level pure autoconf-based
configuration system was extremely difficult to adjust to the new library
reorganization. Thus, we changed over to a high-level autotools (libtool and
automake on top of autoconf) approach to generate our configuration. This
paradigm shift is mostly transparent to the user (who should simple execute
configure; make; and make install as before, see comments below), but it
makes PLplot configuration much more maintainable and also potentially gives
our users the ability to configure, build and run PLplot on a much wider
variety of Unix platforms. For example, Unix users should now be able to use
their native make command (as opposed to the GNU make we demanded before)
and their native compiler to build PLplot using shared libraries, and
dynamic drivers; something that was impossible before.
Although the new configuration has great cross-platform potential, it should
be emphasized that the vast majority of our testing of PLplot-5.2.1 has been
done on Linux (good reports for Debian, Mandrake, RedHat, and SuSe), and our
Unix testing has so far been quite limited (good reports for OSF1 and
NetBSD). Thus some additional minor changes might be required to get PLplot
to work for other Unix platforms such as Solaris. User's feedback will be an
essential part of determining what (if any) changes need to be made.
Here is a list of known exceptions to the expected cross-platform Unix
support of PLplot.
<li>Pre-built documentation is included in our release tarball so there is no
need for our general users to build the documentation. Thus, we only support
documentation building on Linux for developers who want to contribute
documentation, and our Makefiles in the doc/docbook tree consequently
contain Gnu makeisms and probably other Linux-only constructs as well.
<li>The Tcl/Tk configuration works on Linux, but it will need some changes
to work on all Unix platforms.
<li>From bad reports we have received we do not expect PLplot-5.2.1 to work on
Cygwin and Mac OS X because of libtool-1.4.3 issues with those platforms.
However, there has been a very recent release (only a week ago) of
libtool-1.5 which apparently addresses a number of those issues. Although
this libtool release is too late to test for our current PLplot release,
there is good hope for PLplot on Cygwin and Mac OS X for the near future.
<li>The plframe widget for multi-page plots now has page control.
<li>The internals of dealing with hidden 3D shaded regions have been
rewritten so that the egregious rendering bugs in example 8 for 5.1.0 have
now been fixed.
<li>Contouring versions of all 3D surface plotting routines. See added API
above and examples 8 and 11 at <a
http://plplot.sourceforge.net/examples/index.html</a> for some good-looking
examples of this API.</li>
<li>SWIG-generated Python and Java interfaces to the PLplot library. Unlike,
the prior hand-coded interfaces, these new interfaces have essentially
complete support for all PLplot API (with the redundant dimensions of
matrices and vectors dropped). The Python version has a user-friendly
wrapper (see bindings/python/plplot.py) which supports some useful
simplified variations in the argument list as well as angle wrapping (see
below). The Java interface lacks this user-friendly wrapper at the moment.
For other (minor) Java interface limitations see
<li>Removed bugs in angle wrapping code (a user-friendly way to deal with the
transition from 2pi to 0) for the Tcl and Python interfaces to PLplot. The
Java interface is lacking this angle-wrapping code at the moment.
<li>Completed Java, Tcl, Python, and Octave equivalents of most of the C
examples. The consistency of example results for the interfaces to PLplot
is a good measure of the quality of the various interfaces.
<li>The Tcl/Tk interface to PLplot can now be run directly from tclsh and wish
environments (tested on Linux, but not on Unix).
<li>tkwin driver added. (It does not implement a plug-in device like other
drivers. Instead, it is designed to work in both
plserver and wish
environments, see examples/tk/README.tkdemos.)
<li>3D clipping support added to allow zooming of 3D plots. This gives good
results for example 18, mostly good results for example 8 (the base contours
[if present] are not clipped properly). Through an oversight, plmesh and
plmeshc were not included in the 3D clipping code fixup so zooming gives a
poor result for example 11.
<li>PLplot interface to freetype2 library. This allows us to use system fonts
instead of our default Hershey fonts. At this time only the gd device driver
(which implements the png and jpeg devices)
has been freetype-enabled. To use this feature look
at the documentation in drivers/gd.c. This proof of concept gives some
nice-looking antialiased character results in png and jpeg plots using
system fonts, and we need volunteers to extend this idea to other device
drivers as well.
(See the notes on how to do this in
<li>Application-defaults files (to set X resources) for use with PLplot and
Tk. See bindings/tk/app-defaults/README for more details.
<li>There has been a a substantial rewrite of the the new autotools
configuration system in a better style which should make it easier to
maintain in the future. As a direct benefit of this rewrite, Debian
packaging of PLplot (see results at
http://packages.debian.org/unstable/math/libplplot5.html</a>) is now easier to
<li>The configuration combination of static libraries and double precision
which failed in 5.2.0 now works.
<li>Allow 3D plots of irregularly sampled data (see new plgriddata API above
and example 21 at
some good-looking results).
<h2>Configuring, Building, Installing, and Testing PLplot</h2>
To configure Plplot just run the configure script with appropriate options
(see below). It normally should find all resources (programmes, libraries,
and headers) required to build PLplot on your system (or else after a
warning turn off some aspect of PLplot that needs the missing resource).
Our configuration option defaults have substantially changed from 5.2.0.
Every interface is turned on by default except for Java. You can turn that
on by using the −−enable-java option. (Our new SWIG-generated Java interface
works well to compile and run our rather complete Java examples without
problems, but in our judgement the Java interface needs this fully
publicized 5.2.1 release cycle of full user testing before we turn it on by
default in the next release.) Every device driver is enabled by default
except for gnome (still alpha quality software). Both shared and static
libraries are built by default.
There are some important options you may want to use rather than the
defaults. If you want to save the time and space required to build static
libraries, specify −−disable-static. If you prefer the old-fashioned method
of embedding the drivers into the library rather than the default method of
using dynamic (or plug-in) drivers, specify −−disable-dyndrivers. If you
prefer building single precision versions of all the libraries, specify
−−without-double. If you want to install the pre-built documentation that is
included in the tarball, specify −−with-prebuiltdoc. If you want a
different installation prefix than the default /usr/local, specify it using,
You can find out quite a bit about configuration options using the
−−help option to the configure command. Also, in difficult cases
there are environment variables you can set to help the configure script
find libraries and headers on your system. Most of these environment
variables are not well documented, but you can usually figure them out by
reading configure.ac and sysloc.in.
<h3>Building and installing</h3>
The usual make; make install.
Currently none of our examples work in the build directory (unless you take
some extraordinary measures). Instead, you must install PLplot first, then
(optionally) copy the *installed* examples directory to some user location,
build the examples, and exercise them for a comprehensive test. Here are
# Substitute your installation prefix for /usr/local/plplot. Also note
# this cp step is not necessary if you can write files into your install area
# as an ordinary user.
cp -a /usr/local/plplot/lib/plplot5.2.1/examples /tmp
# build the installed examples that need compiling
cd c; make; cd c++; make; cd f77; make; cd tk; make; cd ..
# Run all the examples to produce many coloured postscript image files.
# Find out about other PLplot file devices to test such as png and jpeg.
If you have installed the Tcl/Tk interface to PLplot you can do further
interactive testing following the instructions in
examples/tcl/README.tcldemos and examples/tk/README.tkdemos.
N.B. for all the above testing steps to work /usr/local/plplot/bin must be in
The future for PLplot looks bright indeed. 5.2.1 consolidates the paradigm
shifts of plug-in devices, library reorganization, and an autotools-based
configuration scheme for PLplot and establishes an excellent infrastructure
for further more incremental improvements.
<h2> Thanks </h2>
I thank the rest of the PLplot core team for all their hard work in making
PLplot-5.2.1 possible. Also,
an external developer, Gary Bishop, deserves special thanks for his
donation of the new SWIG-generated Python interface (which inspired my work
on the SWIG-generated Java interface as well), and his complete rewrite of
what is now called plsurf3d to eliminate our worst rendering bug in 5.1.0.
<p>Alan W. Irwin, 2003 April 21</p>
RCS file: /cvsroot/plplot/www/announce/announce-plplot-5.3.0.xml,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -d -r1.8 -r1.9
--- announce-plplot-5.3.0.xml 3 Feb 2004 23:49:10 -0000 1.8
+++ announce-plplot-5.3.0.xml 4 Feb 2004 20:39:48 -0000 1.9
@@ -163,7 +163,10 @@
as well as <quote>default visual</quote>. To disable them, the
user has to use <quote><literal>-drvopt
usepth=0</literal></quote> and <quote><literal>-drvopt
+ defvis=0</literal></quote>. Note that the
+ <literal>usepth</literal> option is only effective when PLplot
+ is configured <literal>--with-pthreads</literal> (which is now
+ disabled by default).