# Announcement of PLplot-5.1.0

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.

- What: PLplot-5.1.0 release (source tarball and RedHat 7.1 and Mandrake 8.1 source and binary rpm's).
- Where: http://sourceforge.net/project/showfiles.php?group_id=2915.
- When: 2002 January 31.
- Why: New features, improved features, and bug fixing.
- Who: The PLplot core development team with additional help from Olof Svensson and Alessandro Mirone

## Important Changes to Existing Features

1. 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.
2. 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).
3. 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.
4. API change: plxormod now returns a status.
5. 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.
6. 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 documented and which can be downloaded from ftp://ftp.gnu.org/pub/gnu/make.
7. 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 website content have been improved as well.

## Important New Features

1. 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. Our tests indicate the cgm driver is now stable.
2. 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.
3. 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.
4. 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.
5. 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 access it.
6. 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 the future.

## Important Bug fixes

1. 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.

## Remaining Important Bugs

1. 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.
2. 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.

## Tests Performed for this Release

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 mentioned above.

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!

## General Notes

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.

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 now on.

Have fun with this latest stable release of PLplot!

Alan W. Irwin for the PLplot core team, 2002 January 31