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