Announcement of PLplot-5.3.0


Release Notes

The PLplot development team is proud to announce the release of version 5.3.0 of the PLplot scientific plotting library. This version of PLplot comes out nine months after the latest release (5.2.1) and represents a considerable amount of development work, as documented in the ChangeLog of CVS activity. The main focus of this release is the strengthening of niche occupation by PLplot. Indeed, two of the traditional core language bindings (C++ and Fortran 77) are highly improved, and the configuration/build system became more robust, allowing successful installations in platforms like MacOS X and Cygwin.

Changes

API

  • With this release, the ABI (Application Binary Interface) backward compatibility of the PLplot library has been broken, because the libraries libnn and libcsa were renamed to libcsironn and libcsirocsa, respectively. For this reason, the soversion number had to change. In Linux, for instance, the libraries are called now libplplot*.so.9.0.0.

  • plsabort: New function. Similar to plsexit, should be used to set a handler for the plabort. function.

  • plot3d: Plot a contour only if the number of points in the contour is greater than zero.

  • plshade: Fixed corner case when argument pltr == NULL and contouring is wanted.

  • plgriddata: Arguments have type PLINT now, consistent with the rest of the API.

  • plline: Fill clipping improved.

Language Bindings

  • The C++ API has been totally rewritten, with 13 API additions, most notably the command-line parsing functions. The interface is much more modern now and the demos were revamped. Several backward incompatibilities have been introduced, such that the libplplotcxx has a separate soversion number now, independent of that for the C PLplot library.

  • The API for Fortran 77 was completed and should be more portable. It includes the functions for parsing command line options, as well as plstripc-, plshade- plmesh-, and plsurf-related API functions. The examples were rewritten and mimic the C examples closely.

  • The Java stubs are collected into a loadable module instead of in a library as before. Setting LD_LIBRARY_PATH is not required anymore. Also, there is no need for using CLASSPATH. Since the Java interface is now mature, its building is enabled by default.

  • PLplot support was included in the latest version of PDL (the Perl Data Language). Porting of the C PLplot demos to Perl has started and the first file is included in this release (examples/perl/x01.pl). The PDL bindings are likely to evolve a lot in the near future, and the C demos will be ported progressively.

  • Many Octave demos are improved now, in particular those featuring mouse interactivity. Although the bindings are still compatible with the 2.0 series of Octave, compatibility at the script level is only guaranteed for the 2.1 series. However, there are some issues with the latest version of Octave (2.1.53) and, for this reason, Octave bindings build is disabled by default in configure.

Drivers

  • The drivers for Windows (DOS/djgpp, Win32/msdev, and win-tk) have been updated and should work in this release.

  • The line width setting in the ps/psc driver is fixed and the results are visually equivalent to those obtained with the other drivers.

  • In the xwin driver, a window resizing bug is fixed. This bug appeared when several windows were used in a pthreaded application. Also, the xwin driver uses now by default pthreads as well as default visual. To disable them, the user has to use -drvopt usepth=0 and -drvopt defvis=0. Note that the usepth option is only effective when PLplot is configured --with-pthreads (which is now disabled by default).

Config/Build/Install

  • The Autotools-based PLplot configuration became much more robust. The autoconf/automake/libtool constructs have been modernized and several combinations of configuration options work better in this release.

  • Use of make prefix=/some/path install for setting the installation prefix works now.

  • Compliance with the FHS (Filesystem Hierarchy Standard) is being pursued. The architecture independent data files are now installed in ${prefix}/share/plplot<version>.

  • The previous support for a local defaults file for configure has been removed in favor of the built-in CONFIG_SITE support. The reconfig script is made permanent and not automatically generated as before.

  • Checks for C compiler NaN awareness are improved (this is necessary for compiling the libcsironn/csa libraries).

  • The Python and Swig configuration code is more robust now.

  • The pkg-config support has undergone a total rewrite and should be much more portable with this release. It is activated with option --with-pkg-config to configure. The plplot-config script is still kept as an alternative to the pkg-config support. See the installed example/*/Makefile for examples of use.

  • When developing the PLplot library itself, developers do not need to install the whole package in order to test/evaluate the changes. This is implemented through the new core function plInBuildTree, and the new configuration variable BUILD_DIR.

Library core

  • Memory management fixes: almost all of the memory leaks revealed by valgrind are gone. There are still some problems under investigation and fixes to them will be integrated in the next release.

  • The third-party libraries libcsironn and libcsirocsa were updated to versions 1.38 and 0.22, respectively.

  • Almost all compilation warnings messages disappeared, even when compiling with gcc -Wall.

  • plOpenFile: sane use of stderr and stdout. This function respects the option -debug now.

  • Re-enabled the setting of the tcl_cmd internal option (only affects plrender -dev tk).

Documentation

  • The PLplot Documentation in DocBook format is released now under Free Software terms, with a license similar to the FreeBSD Documentation License.

  • The HTML form of the documentation uses CSS (Cascade Style Sheets) now.

Tests

  • The test suite test/plplot-test.sh fully works for all front-ends.

Acknowledgments

The following PLplot core developers actively participated in this release: Joao Cardoso, Vincent Darley, Alan W. Irwin, Rafael Laboissiere, Maurice LeBrun, Arjen Markus, Andrew Roach, and Andrew Ross.

Several people participated as testers and/or helped to port PLplot to different systems and architectures: Koen van der Drift, Ullal Devappa Kini, Rob Managan, Per Persson, Michel Peyrard, Valerij Pipin, Olof Svensson, and Brian D. Wright. Many others have participated to discussions in the plplot-devel and plplot-general mailings lists.

Rafael Laboissiere, 2004-02-02

PLplot home page | Text version | XML source | Makefile