|
From: <ai...@us...> - 2013-10-01 06:22:51
|
Revision: 12561
http://sourceforge.net/p/plplot/code/12561
Author: airwin
Date: 2013-10-01 06:22:48 +0000 (Tue, 01 Oct 2013)
Log Message:
-----------
Prepend README.release for 5.9.10 to this file.
Modified Paths:
--------------
trunk/OLD-README.release
Modified: trunk/OLD-README.release
===================================================================
--- trunk/OLD-README.release 2013-09-30 23:24:39 UTC (rev 12560)
+++ trunk/OLD-README.release 2013-10-01 06:22:48 UTC (rev 12561)
@@ -1,3 +1,1648 @@
+PLplot Release 5.9.10
+~~~~~~~~~~~~~~~~~~~~
+This is a development release of PLplot. It represents the ongoing efforts
+of the community to improve the PLplot plotting package. Development
+releases in the 5.9.x series will be available every few months. The next
+stable release will be 5.10.0.
+
+ If you encounter a problem that is not already documented in the
+PROBLEMS file or on our bug tracker, then please send bug reports to PLplot
+developers via the mailing lists at
+http://sourceforge.net/mail/?group_id=2915 (preferred) or on our bug tracker
+at http://sourceforge.net/tracker/?group_id=2915&atid=102915.
+
+ Please see the license under which this software is distributed
+(LGPL), and the disclaimer of all warranties, given in the COPYING.LIB
+file.
+
+INDEX
+
+OFFICIAL NOTICES FOR USERS
+
+CHANGES
+
+-1. Important changes we should have mentioned in previous release announcements.
+
+-1.1 Add full bindings and examples for the D language.
+
+0. Tests made for release 5.9.10
+
+1. Changes relative to PLplot 5.9.9 (the previous development release)
+
+1.1 The format for map data used by plmap has changed
+1.2 Python support for Numeric has been dropped
+1.3 Backwards-incompatible API change to non-integer line widths
+1.4 Improvements to the build system for the Cygwin case
+1.5 The plcolorbar API has been finalized
+1.6 Documentation of the new legend and color bar capabilities of PLplot
+1.7 The D bindings and examples have been converted from the
+old version of D (D1) to the new version of D (D2)
+1.8 The DocBook documentation for PLplot is now generated using modern
+XML/XSL backend tools for DocBook
+1.9 Implement experimental build_projects sub-project
+1.10 Implement extremely simple "00" example
+1.11 Convert to using the Allura form of SourceForge software
+1.12 Use NON_TRANSITIVE linking by default for the shared libraries case for
+all non-windows systems
+1.13 Update f95 examples to take larger advantage of Fortran 95 capabilities
+1.14 Substantial additions to the doxygen documentation
+
+2. Changes relative to PLplot 5.8.0 (the previous stable release)
+
+2.1 All autotools-related files have now been removed
+2.2 Build system bug fixes
+2.3 Build system improvements
+2.4 Implement build-system infrastructure for installed Ada bindings and
+examples
+2.5 Code cleanup
+2.6 Date / time labels for axes
+2.7 Alpha value support
+2.8 New PLplot functions
+2.9 External libLASi library improvements affecting our psttf device
+2.10 Improvements to the cairo driver family
+2.11 wxWidgets driver improvements
+2.12 pdf driver improvements
+2.13 svg driver improvements
+2.14 Ada language support
+2.15 OCaml language support
+2.16 Perl/PDL language support
+2.17 Update to various language bindings
+2.18 Update to various examples
+2.19 Extension of our test framework
+2.20 Rename test subdirectory to plplot_test
+2.21 Website support files updated
+2.22 Internal changes to function visibility
+2.23 Dynamic driver support in Windows
+2.24 Documentation updates
+2.25 libnistcd (a.k.a. libcd) now built internally for -dev cgm
+2.26 get-drv-info now changed to test-drv-info
+2.27 Text clipping now enabled by default for the cairo devices
+2.28 A powerful qt device driver has been implemented
+2.29 The PLplot API is now accessible from Qt GUI applications
+2.30 NaN / Inf support for some PLplot functions
+2.31 Various bug fixes
+2.32 Cairo driver improvements
+2.33 PyQt changes
+2.34 Color Palettes
+2.35 Re-implementation of a "soft landing" when a bad/missing compiler is
+detected
+2.36 Make PLplot aware of LC_NUMERIC locale
+2.37 Linear gradients have been implemented
+2.38 Cairo Windows driver implemented
+2.39 Custom axis labelling implemented
+2.40 Universal coordinate transform implemented
+2.41 Support for arbitrary storage of 2D user data
+2.42 Font improvements
+2.42 Alpha value support for plotting in memory.
+2.43 Add a Qt device for in memory plotting.
+2.44 Add discrete legend capability.
+2.45 Add full bindings and examples for the D language.
+2.46 The plstring and plstring3 functions have been added
+2.47 The pllegend API has been finalized
+2.48 Octave bindings now implemented with swig
+2.49 Documentation redone for our swig-generated Python and Octave bindings
+2.50 Support large polygons
+2.51 Complete set of PLplot parameters now available for Fortran
+2.52 The plarc function has been added
+2.53 The format for map data used by plmap has changed
+2.54 Python support for Numeric has been dropped
+2.55 Backwards-incompatible API change to non-integer line widths
+2.56 Improvements to the build system for the Cygwin case
+2.57 The plcolorbar API has been finalized
+2.58 Documentation of the new legend and color bar capabilities of PLplot
+2.59 The D bindings and examples have been converted from the
+old version of D (D1) to the new version of D (D2)
+2.60 The DocBook documentation for PLplot is now generated using modern
+XML/XSL backend tools for DocBook
+2.61 Implement experimental build_projects sub-project
+2.62 Implement extremely simple "00" example
+2.63 Convert to using the Allura form of SourceForge software
+2.64 Use NON_TRANSITIVE linking by default for the shared libraries case for
+all non-windows systems
+2.65 Update f95 examples to take larger advantage of Fortran 95 capabilities
+2.66 Substantial additions to the doxygen documentation
+
+
+OFFICIAL NOTICES FOR USERS
+
+(5.9.10) The minimum version of CMake has been bumped to 2.8.9. This
+change allows our build system to take advantage of CMake features
+introduced in later versions of CMake. Even more importantly it also
+updates user's builds to the CMake policy conventions (important
+backwards-incompatible changes in CMake behaviour introduced in later
+versions of CMake) to the default CMake policy used for 2.8.9.
+
+(5.9.10) The long deprecated support for the python Numeric package has been
+dropped. This is no longer supported and is superseded by numpy. Support for
+numpy has been the default in PLplot for a number of years so most users
+should notice no difference.
+
+(5.9.10) The current format for maps used by plmap has been deprecated in
+favour of using shapefiles (a standard format widely used for GIS and with
+suitable free data sources available). This requires the shapelib library
+to be installed. If this library is not installed then by default no map
+support will be available. Support for the old binary format is still
+available by setting the cmake variable PL_DEPRECATED, however this
+support will be removed in a future release of PLplot.
+
+(5.9.10) Those who use the Python version of plgriddata will have to
+change their use of this function for this release as follows (see
+examples/xw21.py)
+
+# old version (which overwrites preexisting zg in place):
+zg = reshape(zeros(xp*yp),(xp,yp))
+plgriddata(x, y, z, xg, yg, zg, alg, opt[alg-1])
+
+# new version (which uses a properly returned newly created NumPy array
+# as per the normal Python expectations):
+
+zg = plgriddata(x, y, z, xg, yg, alg, opt[alg-1])
+
+(5.9.10) Significant efforts have been made to ensure the PLplot code
+is standards compliant and free from warnings. Compliance has been
+tested using the gcc compiler suite -std, -pedantic and -W flags. The
+language standards adopted are
+C: ISO C99 with POSIX.1-2001 base specification (required for a number
+of C library calls)
+C++: ISO C++ 1998 standard plus amendments
+F95: Fortran 95 standard
+
+Specifically, the following gcc / g++ / gfortran flags were used
+
+CFLAGS='-O3 -std=c99 -pedantic -D_POSIX_C_SOURCE=200112L -Wall \
+-Wextra -Wmissing-prototypes -Wstrict-prototypes -Wnested-externs \
+-Wconversion -Wshadow -Wcast-qual -Wcast-align -Wwrite-strings'
+
+CXXFLAGS='-O3 -fvisibility=hidden -std=c++98 -pedantic -Wall -Wextra '
+
+FFLAGS='-std=f95 -O3 -fall-intrinsics -fvisibility=hidden -pedantic \
+-Wall -Wextra '
+
+Note that the code is not yet quite standards compliant or warning free,
+but this is our aim. We know that a number of common compilers do not
+support these standards "out of the box", so we will continue to develop
+and support workarounds to ensure that PLplot remains easily built on
+a variety of platforms and compilers. Standards compliance should make
+it easier to port to new systems in the future. Using aggressive
+warnings flags will help to detect and eliminate errors or problems in
+the libraries.
+
+The gfortran -fall-intrinsics flag is required for a couple of
+non-standard intrinsics which are used in the code. In the future
+adopting the fortran 2003 or 2008 standard should allow this to be
+removed.
+
+Note: currently this code cleanup does not apply to code generated by
+swig (octave, python, java, lua bindings) which gives a large number of
+code warnings.
+
+(5.9.10) For some years now we have had both FORTRAN 77 and Fortran 95
+bindings, but to the best of our knowledge, there are no longer
+any maintained FORTRAN 77 compilers left that do not also support
+Fortran 95. (g77 for instance has not been maintained for several
+years now. Its successor gfortran supports Fortran 95 and later standards
+as well all g77's legacy features).
+
+An important consequence is that we can not test the implementation for
+compliance to the FORTRAN 77 standard.
+Furthermore, we would prefer to concentrate all our Fortran
+development effort on our f95 bindings and strongly encourage all our
+Fortran users to use those bindings if they haven't switched from the
+f77 version already. Therefore, as of this release we are deprecating
+the f77 bindings and examples and plan no further support for them.
+We signal this deprecation by disabling f77 by default (although our
+users can still get access to these unsupported bindings and examples
+for now by specifying the -DENABLE_f77=ON cmake option).
+
+We plan to completely remove the f77 bindings and examples
+two releases after this one.
+
+(5.9.10) We have found that some distributions of the Windows
+MinGW/gfortran compiler (i.e., MinGW/gfortran 4.6.1 and 4.6.2 from
+http://www.equation.com) may cause a link error due to duplicate
+symbols like __gfortran_setarg_. These errors can be suppressed by
+adding the flag -Wl,--allow-multiple-define. It is very likely that
+this is a bug in these distributions.
+
+As building the libraries and the examples succeeds without any problem
+if you use most other distributions of Windows MinGW/gfortran,
+we have decided not to include this flag in our build system.
+
+Distributions that are known to work:
+- MinGW/gfortran-4.5 from http://www.equation.com,
+- MinGW/gfortran-4.5.2-1 that is installed using the latest
+ mingw-get-inst-20110802 automatic installer available at
+ http://sourceforge.net/projects/mingw/files/Installer/mingw-get-inst
+- MinGW/gfortran-4.6.2 from tdm-gcc.tdragon.net
+
+(Therefore it is not the 4.5.x versus 4.6.x version of MinGW/gfortran
+as such that causes this problem.)
+
+(5.9.9) This is a quick release to deal with two broken build issues
+that were recently discovered for our Windows platform. Windows users should
+avoid 5.9.8 because of these problems for that release, and instead use
+5.9.9 which has been heavily tested on a number of platforms including
+Windows, see "Tests made for release 5.9.9" below.
+
+(5.9.8) For unicode-aware devices we now follow what is done for the
+Hershey font case for epsilon, theta, and phi. This means the #ge,
+#gh, and #gf escapes now give users the Greek lunate epsilon, the
+ordinary Greek lower case theta, and the Greek symbol phi for Unicode
+fonts just like has occurred since the dawn of PLplot history for the
+Hershey font case. Previously these legacy escapes were assigned to
+ordinary Greek lower-case epsilon, the Greek symbol theta (= script
+theta), and the ordinary Greek lower case phi for unicode fonts
+inconsistently with what occurred for Hershey fonts. This change gets
+rid of this inconsistency, that is the #g escapes should give the best
+unicode approximation to the Hershey glyph result that is possible for
+unicode-aware devices.
+
+In general we encourage users of unicode-aware devices who might
+dislike the Greek glyph Hershey-lookalike choices they get with the
+legacy #g escapes to use instead either PLplot unicode escapes (e.g.,
+"#[0x03b5]" for ordinary Greek lower-case epsilon, see page 3 of
+example 23) or better yet, UTF-8 strings (e.g., "ε") to specify
+exactly what unicode glyph they want.
+
+(5.9.8) The full set of PLplot constants have been made available to
+our Fortran 95 users as part of the plplot module. This means those
+users will have to remove any parameter statements where they have
+previously defined the PLplot constants (whose names typically start
+with "PL_" for themselves. For a complete list of the affected
+constants, see the #defines in swig-support/plplotcapi.i which are
+used internally to help generate the plplot module. See also Index
+item 2.51 below.
+
+(5.9.8) There has been widespread const modifier changes in the API
+for libplplotd and libplplotcxxd. Those backwards-incompatible API
+changes are indicated in the usual way by a soversion bump in those
+two libraries which will force all apps and libraries that depend on
+those two libraries to be rebuilt.
+
+Specifically, we have changed the following arguments in the C library
+(libplplotd) case
+
+type * name1 ==> const type * name1
+type * name2 ==> const type ** name2
+
+and the following arguments in the C++ library (libplplotcxxd) case
+
+type * name1 ==> const type * name1
+type * name1 ==> const type * const * name2
+
+where name1 is the name of a singly dimensioned array whose values are
+not changed internally by the PLplot libraries and name2 is the name
+of a doubly dimensioned array whose values are not changed internally
+by the PLplot libraries.
+
+The general documentation and safety justification for such const
+modifier changes to our API is given in
+http://www.cprogramming.com/tutorial/const_correctness.html.
+Essentially, the above const modifier changes constitute our guarantee
+that the associated arrays are not changed internally by the PLplot
+libraries.
+
+Although it is necessary to rebuild all apps and libraries that depend
+on libplplotd and/or libplplotcxxd, that rebuild should be possible
+with unchanged source code without build errors in all cases. For C
+apps and libraries (depending on libplplotd) there will be additional
+build warnings due to a limitation in the C standard discussed at
+http://c-faq.com/ansi/constmismatch.html unless all doubly dimensioned
+arrays (but not singly dimensioned) are explicitly cast to (const type
+**). However, such source code changes will not be necessary to avoid
+warning messages for the C++ (libplplotcxxd) change because of the
+double use of const in the above "const type * const * name2" change.
+
+(5.9.8) The plarc API has changed in release 5.9.8. The plarc API now
+has a rotation parameter which will eventually allow for rotated arcs.
+PLplot does not currently support rotated arcs, but the plarc function
+signature has been modified to avoid changing the API when this
+functionality is added.
+
+(5.9.6) We have retired the pbm driver containing the pbm (actually
+portable pixmap) file device. This device is quite primitive and
+poorly maintained. It ignores unicode fonts (i.e., uses the Hershey
+font fallback), falls back to ugly software fills, doesn't support
+alpha transparency, etc. It also has a serious run-time issue with
+example 2 (double free detected by glibc) which probably indicates
+some fundamental issue with the 100 colors in cmap0 for that
+example. For those who really need portable pixmap results, we suggest
+using the ImageMagick convert programme, e.g., "convert
+examples/x24c01.pngqt test.ppm" or "convert examples/x24c01.pngcairo
+test.ppm" to produce good-looking portable pixmap results from our
+best png device results.
+
+(5.9.6) We have retired the linuxvga driver containing the linuxvga
+interactive device. This device is quite primitive, difficult to
+test, and poorly maintained. It ignores unicode fonts (i.e., uses the
+Hershey font fallback), falls back to ugly software fills, doesn't
+support alpha transparency, etc. It is Linux only, can only be run as
+root, and svgalib (the library used by linuxsvga) is not supported by
+some mainstream (e.g., Intel) chipsets. All of these characteristics
+make it difficult to even test this device much less use it for
+anything serious. Finally, it has had a well-known issue for years
+(incorrect colors) which has never been fixed indicating nobody is
+interested in maintaining this device.
+
+(5.9.6) We have retired our platform support of djgpp that used to
+reside in sys/dos/djgpp. The developer (Andrew Roach) who used to
+maintain those support files for djgpp feels that the djgpp platform
+is no longer actively developed, and he no longer uses djgpp himself.
+
+(5.9.6) We have changed plpoin results for ascii codes 92, 94, and 95
+from centred dot, degree symbol, and centred dot glyphs to the correct
+backslash, caret, and underscore glyphs that are associated with those
+ascii indices. This change is consistent with the documentation of
+plpoin and solves a long-standing issue with backslash, caret, and
+underscore ascii characters in character strings used for example by
+pl[mp]tex. Those who need access to a centred dot with plpoin should
+use index 1. The degree symbol is no longer accessible with plpoin,
+but it is available in ordinary text input to PLplot as Hershey escape
+"#(718)", where 718 is the Hershey index of the degree symbol, unicode
+escape "#[0x00B0]" where 0x00B0 is the unicode index for the degree
+symbol or direct UTF8 unicode string "°".
+
+(5.9.6) We have retired the gcw device driver and the related gnome2
+and pygcw bindings since these are unmaintained and there are good
+replacements. These components of PLplot were deprecated as of
+release 5.9.3. A good replacement for the gcw device is either the
+xcairo or qtwidget device. A good replacement for the gnome2 bindings
+is the externally supplied XDrawable or Cairo context associated with
+the xcairo device and the extcairo device (see
+examples/c/README.cairo). A good replacement for pygcw is our new
+pyqt4 bindings for PLplot.
+
+(5.9.6) We have deprecated support for the python Numeric array
+extensions. Numeric is no longer maintained and users of Numeric are
+advised to migrate to numpy. Numpy has been the standard for PLplot
+for some time. If numpy is not present PLplot will now disable python
+by default. If you still require Numeric support in the short term
+then set USE_NUMERIC to ON in cmake. The PLplot support for Numeric
+will be dropped in a future release.
+
+(5.9.5) We have removed pyqt3 access to PLplot and replaced it by
+pyqt4 access to PLplot (see details below).
+
+(5.9.5) The only method of specifying a non-default compiler (and
+associated compiler options) that we support is the environment
+variable approach, e.g.,
+
+export CC='gcc -g -fvisibility=hidden'
+export CXX='g++ -g -fvisibility=hidden'
+export FC='gfortran -g -fvisibility=hidden'
+
+All other CMake methods of specifying a non-default compiler and
+associated compiler options will not be supported until CMake bug 9220
+is fixed, see discussion below of the soft-landing re-implementation
+for details.
+
+(5.9.5) We have retired the hpgl driver (containing the hp7470,
+hp7580, and lj_hpgl devices), the impress driver (containing the imp
+device), the ljii driver (containing the ljii and ljiip devices), and
+the tek driver (containing the conex, mskermit, tek4107, tek4107f,
+tek4010, tek4010f, versaterm, vlt, and xterm devices). Retirement
+means we have removed the build options which would allow these
+devices to build and install. Recent tests have shown a number of
+run-time issues (hpgl, impress, and ljii) or build-time issues (tek)
+with these devices, and as far as we know there is no more user
+interest in them. Therefore, we have decided to retire these devices
+rather than fix them.
+
+(5.9.4) We have deprecated the pbm device driver (containing the pbm
+device) because glibc detects a catastrophic double free.
+
+(5.9.3) Our build system requires CMake version 2.6.0 or higher.
+
+(5.9.3) We have deprecated the gcw device driver and the related
+gnome2 and pygcw bindings since these are essentially unmaintained.
+For example, the gcw device and associated bindings still depends on
+the plfreetype approach for accessing unicode fonts which has known
+issues (inconsistent text offsets, inconvenient font setting
+capabilities, and incorrect rendering of CTL languages). To avoid
+these issues we advise using the xcairo device and the externally
+supplied XDrawable or Cairo context associated with the xcairo device
+and the extcairo device (see examples/c/README.cairo) instead. If you
+still absolutely must use -dev gcw or the related gnome2 or pygcw
+bindings despite the known problems, then they can still be accessed
+by setting PLD_gcw, ENABLE_gnome2, and/or ENABLE_pygcw to ON.
+
+(5.9.3) We have deprecated the gd device driver which implements the
+png, jpeg, and gif devices. This device driver is essentially
+unmaintained. For example, it still depends on the plfreetype approach
+for accessing unicode fonts which has known issues (inconsistent text
+offsets, inconvenient font setting capabilities, and incorrect
+rendering of CTL languages). To avoid these issues for PNG format, we
+advise using the pngcairo or pngqt devices. To avoid these issues for
+the JPEG format, we advise using the jpgqt device. PNG is normally
+considered a better raster format than GIF, but if you absolutely
+require GIF format, we advise using the pngcairo or pngqt devices and
+then downgrading the results to the GIF format using the ImageMagick
+"convert" application. For those platforms where libgd (the
+dependency of the gd device driver) is accessible while the required
+dependencies of the cairo and/or qt devices are not accessible, you
+can still use these deprecated devices by setting PLD_png, PLD_jpeg,
+or PLD_gif to ON.
+
+(5.9.3) We have re-enabled the tk, itk, and itcl components of PLplot
+by default that were disabled by default as of release 5.9.1 due to
+segfaults. The cause of the segfaults was a bug (now fixed) in how
+pthread support was implemented for the Tk-related components of
+PLplot.
+
+(5.9.2) We have set HAVE_PTHREAD (now called PL_HAVE_PTHREAD as of
+release 5.9.8) to ON by default for all platforms other than Darwin.
+Darwin will follow later once it appears the Apple version of X
+supports it.
+
+(5.9.1) We have removed our previously deprecated autotools-based
+build system. Instead, use the CMake-based build system following the
+directions in the INSTALL file.
+
+(5.9.1) We no longer support Octave-2.1.73 which has a variety of
+run-time issues in our tests of the Octave examples on different
+platforms. In contrast our tests show we get good run-time results
+with all our Octave examples for Octave-3.0.1. Also, that is the
+recommended stable version of Octave at
+http://www.gnu.org/software/octave/download.html so that is the only
+version of Octave we support at this time.
+
+(5.9.1) We have decided for consistency sake to change the PLplot
+stream variables plsc->vpwxmi, plsc->vpwxma, plsc->vpwymi, and
+plsc->vpwyma and the results returned by plgvpw to reflect the exact
+window limit values input by users using plwind. Previously to this
+change, the stream variables and the values returned by plgvpw
+reflected the internal slightly expanded range of window limits used
+by PLplot so that the user's specified limits would be on the graph.
+Two users noted this slight difference, and we agree with them it
+should not be there. Note that internally, PLplot still uses the
+expanded ranges so most users results will be identical. However, you
+may notice some small changes to your plot results if you use these
+stream variables directly (only possible in C/C++) or use plgvpw.
+
+CHANGES
+
+0. Tests made for release 5.9.10
+
+Comprehensive testing that showed no non-zero return codes or other
+obvious run-time issues such as segfaults was done for the Debian
+Wheezy platform. These tests were done with the
+scripts/comprehensive_test.sh which does 21 major tests. Those tests
+consist of seven tests (ctest, and "make test_noninteractive" and make
+"test_interactive" results for the build tree, and "make
+test_noninteractive" and make "test_interactive" results for both the
+traditional and CMake-based build systems for the installed examples
+tree) for each of our three major configurations (shared
+libraries/dynamic devices, shared libraries/non-dynamic devices,
+static libraries/non-dynamic devices).
+
+More limited testing that showed no non-zero return codes or other
+obvious run-time issues such as segfaults was done on a large number
+of different platforms including the following:
+
+Fedora with "Unix Makefiles" generator
+Ubuntu with "Unix Makefiles" generator
+Debian unstable with "Unix Makefiles" generator
+Debian wheezy with "Ninja" generator
+Wine version of Windows with "MSYS Makefiles" generator
+Wine version of Windows with "MinGW Makefiles" generator
+Wine version of Windows with "NMake Makefiles JOM" generator
+Microsoft version of Windows with Cygwin and with "Unix Makefiles" generator
+Microsoft version of Windows with "MinGW Makefiles" generator
+Microsoft version of Windows with "MSYS Makefiles" generator
+Microsoft version of Windows with "NMake Makefiles" generator
+
+1. Changes relative to PLplot 5.9.9 (the previous development release)
+
+N.B. This release includes many code cleanups and fixes relative to
+5.9.9 that are not mentioned in the list below.
+
+1.1 The format for map data used by plmap has changed
+
+The format for map data used by plmap is now the shapefile format.
+This is a widely used standard format and there are many sources of data
+in this format. This replaces the custom binary format that PLplot used
+to use. The support for reading shapefiles is provided by the shapelib
+library, which is a new dependency for PLplot. If users do not have this
+installed then, by default, they will not get any map capabilities with
+PLplot. Support for the old format can still be enabled by setting the
+PL_DEPRECATED cmake variable, but this support will be removed in a
+subsequent PLplot release.
+
+1.2 Python support for Numeric has been dropped
+
+Support for the python Numeric package has been dropped. This has been
+deprecated since 5.9.6. Numeric is no longer supported and is superseded
+by numpy. Support for numpy has been the default in plplot for a number
+of years so most users should notice no difference.
+
+1.3 Backwards-incompatible API change to non-integer line widths
+
+All functions which take line width arguments (plwidth, plshade*,
+pllegend) now use PLFLT values for the line width. This allows device
+drivers which are based on modern graphics libraries such as Qt4 and
+pango/cairo to make full use (e.g., extremely fine line widths) of the
+floating-point line width capabilities of those libraries. The
+replacement of plwid by plwidth, and the change in argument lists for
+plshade* and pllegend constitute a backwards incompatible API change
+from previous releases and the soname of libraries has been bumped
+accordingly (which forces users to recompile PLplot).
+
+1.4 Improvements to the build system for the Cygwin case
+
+The Cygwin platform provides a full-featured Unix environment on
+Windows. CMake has recently been changed (at the request of Cygwin
+developers) to emphasize the Unix aspects of the Cygwin platform and
+deemphasize the Windows aspects of that platform. It was argued this
+change would tend to make CMake builds of software much more reliable
+on Cygwin, and after some small but important changes to our
+CMake-based build system to adjust for these recent CMake changes for
+Cygwin, we have indeed confirmed that prediction for the PLplot case.
+There are still some Cygwin platform issues left which are being
+discussed on our Wiki at http://www.miscdebris.net/plplot_wiki/index.php?title=Setup_cygwin,
+but some fundamental breakthroughs have also been made for the Cygwin case
+that should interest all our Windows users. For example, for the
+first time ever we have been able to build our cairo and qt device
+drivers on the Cygwin platform giving our Windows users convenient
+access to the many high-quality PLplot devices that are available with
+these two different device drivers.
+
+1.5 The plcolorbar API has been finalized
+
+The function plcolorbar allows users to create a color bar (an
+annotated subplot representing a continuous range of colors within the
+main plot and typically identifying certain colors with certain
+numerical values using an axis). The plcolorbar capabilities are
+documented in our DocBook (and doxygen) documentation and demonstrated
+in standard examples 16 and 33.
+
+N.B. The previous two releases (5.9.8 and 5.9.9) contained
+unadvertised experimental versions of plcolorbar. Any PLplot user who
+found and tried those capabilities will have to reprogramme their
+plcolorbar calls to be compatible with the argument list of the latest
+version.
+
+1.6 Documentation of the new legend and color bar capabilities of PLplot
+
+The pllegend and plcolorbar API has been documented in both doxygen
+and DocBook forms. In addition, the "advanced use" chapter of the
+DocBook form of documentation now contains a section giving an
+overview of pllegend and plcolorbar.
+
+N.B. Although we feel the pllegend and plcolorbar API has now been
+finalized with regard to the PLplot core developers own interests and
+needs, we also realize that as more and more PLplot users take
+advantage of these new PLplot capabilities there will likely be calls
+to add additional features to pllegend or plcolorbar based on
+additional experience with these powerful capabilities. In general,
+we would welcome such feature requests.
+
+1.7 The D bindings and examples have been converted from the
+old version of D (D1) to the new version of D (D2)
+
+This change should make PLplot much more relevant for D users
+going forward.
+
+See http://en.wikipedia.org/wiki/D_(programming_language)#History for
+a discussion of the differences between these two variants of D.
+
+1.8 The DocBook documentation for PLplot is now generated using modern
+XML/XSL backend tools for DocBook
+
+These modern backend tools (such as xmlto) replace the
+deprecated/unmaintained SGML/DSSL tools we have used before. For
+developers this means generation of our DocBook generation is much
+easier. much faster, and much less error-prone. End users will notice
+some improvements in the results (e.g., the table of Greek letters) as
+well as some minor style changes.
+
+1.9 Implement experimental build_projects sub-project
+
+The idea here (see cmake/build_projects) is to automate the build of
+all PLplot dependencies and the build and test of PLplot itself for
+platforms (such as Linux enterprise distributions and all forms of
+Windows platforms other than Cygwin) that do not come with modern
+versions of PLplot soft dependencies such as Pango/Cairo and Qt.
+This project is beginning to work properly for the Linux case, but
+still needs lots of work for the Windows case.
+
+1.10 Implement extremely simple "00" example
+
+The point of this standard example is to give the users an extremely
+simple tutorial example to help them to get started with 2D plotting
+with PLplot.
+
+1.11 Convert to using the Allura form of SourceForge software
+
+We use sourceforge.net as our software hosting facility. Early in
+2013 Sourceforge updated essentially all their support software as
+part of the so-called Allura project. This made it necessary to make
+some minor internal PLplot changes such as script changes and different URL's
+in the website referring to SourceForge facilities. The most important
+change from the user perspective is the URL for the Allura form
+of the svn repository that we use now:
+
+http://svn.code.sf.net/p/plplot/code/trunk/
+
+1.12 Use NON_TRANSITIVE linking by default for the shared libraries case for
+all non-windows systems
+
+The point of this change is to reduce overlinking and therefore
+the problems caused by overlinking that are mentioned
+at http://en.altlinux.org/UnderOverLinkProblems.
+
+Non-transitive linking means link only to libraries that directly
+resolve undefined symbols, i.e., do not link to a library just because
+it is a dependency of a dependency.
+
+1.13 Update f95 examples to take larger advantage of Fortran 95 capabilities
+
+Previously our f95 examples tended to use legacy Fortran capabilities, but
+that situation has substantially changed for this release.
+
+1.14 Substantial additions to the doxygen documentation
+
+One of the on-going documentation projects is to create doxygen
+documentation of every single argument of the public API for PLplot.
+A substantial increase in such documentation has been implemented
+in this release cycle.
+
+2. Changes relative to PLplot 5.8.0 (the previous stable release)
+
+N.B. This release includes many code cleanups and fixes relative to
+5.8.0 that are not mentioned in the list below.
+
+2.1 All autotools-related files have now been removed
+
+CMake is now the only supported build system. It has been tested on
+Linux / Unix, Mac OS-X and Windows platforms.
+
+2.2 Build system bug fixes
+
+Various fixes include the following:
+
+Ctest will now work correctly when the build tree path includes symlinks.
+
+Dependencies for swig generated files fixed so they are not rebuilt every
+time make is called.
+
+Various dependency fixes to ensure that parallel builds (using make -j)
+work under unix.
+
+2.3 Build system improvements
+
+We now transform link flag results delivered to the CMake environment by
+pkg-config into the preferred CMake form of library information. The
+practical effect of this improvement is that external libraries in
+non-standard locations now have their rpath options set correctly for our
+build system both for the build tree and the install tree so you don't have
+to fiddle with LD_LIBRARY_PATH, etc.
+
+2.4 Implement build-system infrastructure for installed Ada bindings and
+examples
+
+Install source files, library information files, and the plplotada library
+associated with the Ada bindings. Configure and install the pkg-config file
+for the plplotada library. Install the Ada examples and a configured Makefile
+to build them in the install tree.
+
+2.5 Code cleanup
+
+The PLplot source code has been cleaned up to make consistent use of
+(const char *) and (char *) throughout. Some API functions have changed
+to use const char * instead of char * to make it clear that the strings
+are not modified by the function. The C and C++ examples have been updated
+consistent with this. These changes fix a large number of warnings
+with gcc-4.2. Note: this should not require programs using PLplot to be
+recompiled as it is not a binary API change.
+
+There has also been some cleanup of include files in the C++ examples
+so the code will compile with the forthcoming gcc-4.3.
+
+2.6 Date / time labels for axes
+
+PLplot now allows date / time labels to be used on axes. A new option
+('d') is available for the xopt and yopt arguments to plbox which
+indicates that the axis should be interpreted as a date / time. Similarly
+there is a new range of options for plenv to select date / time labels.
+The time format is seconds since the epoch (usually 1 Jan 1970). This
+format is commonly used on most systems. The C gmtime routine can be
+used to calculate this for a given date and time. The format for the
+labels is controlled using a new pltimefmt function, which takes a
+format string. All formatting is done using the C strftime function.
+See documentation for available options on your platform. Example 29
+demonstrates the new capabilities.
+
+N.B. Our reliance on C library POSIX time routines to (1) convert from
+broken-down time to time-epoch, (2) to convert from time-epoch to
+broken-down time, and (3) to format results with strftime have proved
+problematic for non-C languages which have time routines of variable
+quality. Also, it is not clear that even the POSIX time routines are
+available on Windows. So we have plans afoot to implement high-quality
+versions of (1), (2), and (3) with additional functions to get/set the epoch
+in the PLplot core library itself. These routines should work on all C
+platforms and should also be uniformly accessible for all our language
+bindings.
+
+WARNING..... Therefore, assuming these plans are implemented, the present
+part of our date/time PLplot API that uses POSIX time routines will be
+changed.
+
+2.7 Alpha value support
+
+PLplot core has been modified to support a transparency or alpha value
+channel for each color in color map 0 and 1. In addition a number of new
+functions were added the PLplot API so that the user can both set and query
+alpha values for color in the two color maps. These functions have the same
+name as their non-alpha value equivalents, but with a an "a" added to the
+end. Example 30 demonstrates some different ways to use these functions
+and the effects of alpha values, at least for those drivers that support alpha
+values. This change should have no effect on the device drivers that do not
+currently support alpha values. Currently only the cairo, qt, gd, wxwidgets and
+aquaterm drivers support alpha values. There are some limitations with the gd
+driver due to transparency support in the underlying libgd library.
+
+2.8 New PLplot functions
+
+An enhanced version of plimage, plimagefr has been added. This allows images
+to be plotted using coordinate transformation, and also for the dynamic range
+of the plotted values to be altered. Example 20 has been modified to
+demonstrate this new functionality.
+
+To ensure consistent results in example 21 between different platforms and
+language bindings PLplot now includes a small random number generator within
+the library. plrandd will return a PLFLT random number in the range 0.0-1.0.
+plseed will allow the random number generator to be seeded.
+
+2.9 External libLASi library improvements affecting our psttf device
+
+Our psttf device depends on the libLASi library. libLASi-1.1.0 has just been
+released at http://sourceforge.net/svn/?group_id=187113 . We recommend
+using this latest version of libLASi for building PLplot and the psttf
+device since this version of libLASi is more robust against glyph
+information returned by pango/cairo/fontconfig that on rare occasions is not
+suitable for use by libLASi.
+
+2.10 Improvements to the cairo driver family
+
+Jonathan Woithe improved the xcairo driver so that it can optionally be
+used with an external user supplied X Drawable. This enables a nice
+separation of graphing (PLplot) and window management (Gtk, etc..). Doug
+Hunt fixed the bugs that broke the memcairo driver and it is now fully
+functional. Additionally, a new extcairo driver was added that will plot
+into a user supplied cairo context.
+
+2.11 wxWidgets driver improvements
+
+Complete reorganization of the driver code. A new backend was added, based
+on the wxGraphicsContext class, which is available for wxWidgets 2.8.4
+and later. This backend produces antialiased output similar to the
+AGG backend but has no dependency on the AGG library. The basic wxDC
+backend and the wxGraphicsContext backend process the text output
+on their own, which results in much nicer plots than with the standard
+Hershey fonts and is much faster than using the freetype library. New
+options were introduced in the wxWidgets driver:
+ - backend: Choose backend: (0) standard, (1) using AGG library,
+ (2) using wxGraphicsContext
+ - hrshsym: Use Hershey symbol set (hrshsym=0|1)
+ - text: Use own text routines (text=0|1)
+ - freetype: Use FreeType library (freetype=0|1)
+The option "text" changed its meaning, since it enabled the FreeType library
+support, while now the option enables the driver's own text routines.
+
+Some other features were added:
+ * the wxWidgets driver now correctly clears the background (or parts of it)
+ * transparency support was added
+ * the "locate mode" (already available in the xwin and tk driver) was
+ implemented, where graphics input events are processed and translated
+ to world coordinates
+
+2.12 pdf driver improvements
+
+The pdf driver (which is based on the haru library http://www.libharu.org)
+processes the text output now on its own. So far only the Adobe Type1
+fonts are supported. TrueType font support will follow. Full unicode
+support will follow after the haru library will support unicode strings. The
+driver is now able to produce A4, letter, A5 and A3 pages. The Hershey font
+may be used only for symbols. Output can now be compressed, resulting in
+much smaller file sizes.
+Added new options:
+ - text: Use own text routines (text=0|1)
+ - compress: Compress pdf output (compress=0|1)
+ - hrshsym: Use Hershey symbol set (hrshsym=0|1)
+ - pagesize: Set page size (pagesize=A4|letter|A3|A5)
+
+2.13 svg driver improvements
+
+This device driver has had the following improvements: schema for generated
+file now validates properly at http://validator.w3.org/ for the
+automatically detected document type of SVG 1.1; -geometry option now works;
+alpha channel transparency has been implemented; file familying for
+multipage examples has been implemented; coordinate scaling has been
+implemented so that full internal PLplot resolution is used; extraneous
+whitespace and line endings that were being injected into text in error have
+now been removed; and differential correction to string justification is now
+applied.
+
+The result of these improvements is that our SVG device now gives the
+best-looking results of all our devices. However, currently you must be
+careful of which SVG viewer or editor you try because a number of them have
+some bugs that need to be resolved. For example, there is a librsvg bug in
+text placement (http://bugzilla.gnome.org/show_bug.cgi?id=525023) that
+affects all svg use within GNOME as well as the ImageMagick "display"
+application. However, at least the latest konqueror and firefox as well as
+inkscape and scribus-ng (but not scribus!) give outstanding looking results
+for files generated by our svg device driver.
+
+2.14 Ada language support
+
+We now have a complete Ada bindings implemented for PLplot. We also have a
+complete set of our standard examples implemented in Ada which give results
+that are identical with corresponding results for the C standard examples.
+This is an excellent test of a large subset of the Ada bindings. We now
+enable Ada by default for our users and request widespread testing of this
+new feature.
+
+2.15 OCaml language support
+
+Thanks primarily to Hezekiah M. Carty's efforts we now have a complete OCaml
+bindings implemented for PLplot. We also have a complete set of our standard
+examples implemented in OCaml which give results that are identical with
+corresponding results for the C standard examples. This is an excellent test
+of a large subset of the OCaml bindings. We now enable OCaml by default for
+our users and request widespread testing of this new feature.
+
+2.16 Perl/PDL language support
+
+Thanks to Doug Hunt's efforts the external Perl/PDL module,
+PDL::Graphics::PLplot version 0.46 available at
+http://search.cpan.org/dist/PDL-Graphics-PLplot has been brought up to date
+to give access to recently added PLplot API. The instructions for how to
+install this module on top of an official PDL release are given in
+examples/perl/README.perldemos. Doug has also finished implementing a
+complete set of standard examples in Perl/PDL which are part of PLplot and
+which produce identical results to their C counterparts if the above updated
+module has been installed. Our build system tests the version of
+PDL::Graphics::PLplot that is available, and if it is not 0.46 or later, the
+list of Perl/PDL examples that are run as part of our standard tests is
+substantially reduced to avoid examples that use the new functionality. In
+sum, if you use PDL::Graphics::PLplot version 0.46 or later the full
+complement of PLplot commands is available to you from Perl/PDL, but
+otherwise not.
+
+2.17 Updates to various language bindings
+
+A concerted effort has been made to bring all the language bindings up to
+date with recently added functions. Ada, C++, f77, f95, Java, OCaml, Octave,
+Perl/PDL, Python, and Tcl now all support the common PLplot API (with the
+exception of the mapping functions which are not yet implemented for all
+bindings due to technical issues.) This is a significant step forward for
+those using languages other than C.
+
+2.18 Updates to various examples
+
+To help test the updates to the language bindings the examples have been
+thoroughly checked. Ada, C, C++, f77, f95, and OCaml now contain a full set
+of non-interactive tests (examples 1-31 excluding 14 and 17). Java, Octave,
+Python and Tcl are missing example 19 because of the issue with the mapping
+functions. The examples have also been checked to ensure consistent results
+between different language bindings. Currently there are still some minor
+differences in the results for the tcl examples, probably due to rounding
+errors. Some of the Tcl examples (example 21) require Tcl version 8.5 for
+proper support for NaNs.
+
+Also new is an option for the plplot_test.sh script to run the examples
+using a debugging command. This is enabled using the --debug option. The
+default it to use the valgrind memory checker. This has highlighted at
+least one memory leaks in PLplot which have been fixed. It is not part
+of the standard ctest tests because it can be _very_ slow for a complete
+set of language bindings and device drivers.
+
+2.19 Extension of our test framework
+
+The standard test suite for PLplot now carries out a comparison of the
+stdout output (especially important for example 31 which tests most of our
+set and get functions) and PostScript output for different languages as a
+check. Thanks to the addition of example 31, the inclusion of examples 14
+and 17 in the test suite and other recent extensions of the other
+examples we now have rigorous testing in place for almost the entirety
+of our common API. This extensive testing framework has already helped
+us track down a number of bugs, and it should make it much easier for us
+to maintain high quality for our ongoing PLplot releases.
+
+2.20 Rename test subdirectory to plplot_test
+
+This change was necessary to quit clashing with the "make test" target which
+now works for the first time ever (by executing ctest).
+
+2.21 Website support files updated
+
+Our new website content is generated with PHP and uses CSS (cascaded style
+sheets) to implement a consistent style. This new approach demanded lots of
+changes in the website support files that are used to generate and upload
+our website and which are automatically included with the release.
+
+2.22 Internal changes to function visibility
+
+The internal definitions of functions in PLplot have been significantly
+tidied up to allow the use of the -fvisibility=hidden option with newer
+versions of gcc. This prevents internal functions from being exported
+to the user where possible. This extends the existing support for this
+on windows.
+
+2.23 Dynamic driver support in Windows
+
+An interface based on the ltdl library function calls was established
+which allows to open and close dynamic link libraries (DLL) during
+run-time and call functions from these libraries. As a consequence
+drivers can now be compiled into single DLLs separate from the core
+PLplot DLL also in Windows. The cmake option ENABLE_DYNDRIVERS is now
+ON by default for Windows if a shared PLplot library is built.
+
+2.24 Documentation updates
+
+The DocBook documentation has been updated to include many of the
+C-specific functions (for example plAlloc2dGrid) which are not part
+of the common API, but are used in the examples and may be helpful
+for PLplot users.
+
+2.25 libnistcd (a.k.a. libcd) now built internally for -dev cgm
+
+CGM format is a long-established (since 1987) open standard for vector
+graphics that is supported by w3c (see http://www.w3.org/Graphics/WebCGM/).
+PLplot has long had a cgm device driver which depended on the (mostly)
+public domain libcd library that was distributed in the mid 90's by National
+Institute of Standards and Technology (NIST) and which is still available
+from http://www.pa.msu.edu/ftp/pub/unix/cd1.3.tar.gz. As a convenience
+to our -dev cgm users, we have brought that
+source code in house under lib/nistcd and now build libnistcd routinely
+as part of our ordinary builds. The only changes we have made to the
+cd1.3 source code is visibility changes in cd.h and swapping the sense of
+the return codes for the test executables so that 0 is returned on success
+and 1 on failure. If you want to test libnistcd on your platform,
+please run
+
+make test_nistcd
+
+in the top-level build tree. (That tests runs all the test executables
+that are built as part of cd1.3 and compares the results that are generated
+with the *.cgm files that are supplied as part of cd1.3.)
+
+Two applications that convert and/or display CGM results on Linux are
+ralcgm (which is called by the ImageMagick convert and display applications)
+and uniconvertor.
+
+Some additional work on -dev cgm is required to implement antialiasing and
+non-Hershey fonts, but both those should be possible using libnistcd according
+to the text that is shown by lib/nistcd/cdtext.cgm and lib/nistcd/cdexp1.cgm.
+
+2.26 get-drv-info now changed to test-drv-info
+
+To make cross-building much easier for PLplot we now configure the *.rc
+files that are used to describe our various dynamic devices rather than
+generating the required *.rc files with get-drv-info. We have changed the
+name of get-drv-info to test-drv-info. That name is more appropriate
+because that executable has always tested dynamic loading of the driver
+plug-ins as well as generating the *.rc files from the information gleaned
+from that dynamic loading. Now, we simply run test-drv-info as an option
+(defaults to ON unless cross-building is enabled) and compare the resulting
+*.rc file with the one configured by cmake to be sure the dynamic device
+has been built correctly.
+
+2.27 Text clipping now enabled by default for the cairo devices
+
+When correct text clipping was first implemented for cairo devices, it was
+discovered that the libcairo library of that era (2007-08) did that clipping
+quite inefficiently so text clipping was disabled by default. Recent tests
+of text clipping for the cairo devices using libcairo 1.6.4 (released in
+2008-04) shows text clipping is quite efficient now. Therefore, it is now
+enabled by default. If you notice a significant slowdown for some libcairo
+version prior to 1.6.4 you can use the option -drvopt text_clipping=0 for
+your cairo device plots (and accept the improperly clipped text results that
+might occur with that option). Better yet, use libcairo 1.6.4 or later.
+
+2.28 A powerful qt device driver has been implemented
+
+Thanks to the efforts of Alban Rochel of the QSAS team, we now have a new qt
+device driver which delivers the following 9 (!) devices: qtwidget, bmpqt,
+jpgqt, pngqt, ppmqt, tiffqt, epsqt, pdfqt, and svgqt. qtwidget is an
+elementary interactive device where, for now, the possible interactions
+consist of resizing the window and right clicking with the mouse (or hitting
+<return> to be consistent with other PLplot interactive devices) to control
+paging. The qtwidget overall size is expressed in pixels. bmpqt, jpgqt,
+pngqt, ppmqt, and tiffqt are file devices whose overall sizes are specified
+in pixels and whose output is BMP (Windows bitmap), JPEG, PNG, PPM (portable
+pixmap), and TIFF (tagged image file format) formatted files. epsqt, pdfqt,
+svgqt are file devices whose overall sizes are specified in points (1/72 of
+an inch) and whose output is EPS (encapsulated PostScript), PDF, and SVG
+formatted files. The qt device driver is based on the powerful facilities
+of Qt4 so all qt devices implement variable opacity (alpha channel) effects
+(see example 30). The qt devices also use system unicode fonts, and deal
+with CTL (complex text layout) languages automatically without any
+intervention required by the user. (To show this, try qt device results
+from examples 23 [mathematical symbols] and 24 [CTL languages].)
+
+Our exhaustive Linux testing of the qt devices (which consisted of detailed
+comparisons for all our standard examples between qt device results and the
+corresponding cairo device results) indicates this device driver is mature,
+but testing on other platforms is requested to confirm that maturity. Qt-4.5
+(the version we used for most of our tests) has some essential SVG
+functionality so we recommend that version (downloadable from
+http://www.qtsoftware.com/downloads for Linux, Mac OS X, and Windows) for
+svgqt. One of our developers found that pdfqt was orders of magnitude
+slower than the other qt devices for Qt-4.4.3 on Ubuntu 8.10 installed on a
+64 bit box. That problem was completely cured by moving to the downloadable
+Qt-4.5 version. However, we have also had good Qt-4.4.3 pdfqt reports on
+other platforms. One of our developers also found that all first pages of
+examples were black for just the qtwidget device for Qt-4.5.1 on Mac OS X.
+From the other improvements we see in Qt-4.5.1 relative to Qt-4.4.3 we
+assume this black first page for qtwidget problem also exists for Qt-4.4.3,
+but we haven't tested that combination.
+
+In sum, Qt-4.4.3 is worth trying if it is already installed on your machine,
+but if you run into any difficulty with it please switch to Qt-4.5.x (once
+Qt-4.5.x is installed all you have to do is to put the 4.5.x version of
+qmake in your path, and cmake does the rest). If the problem persists for
+Qt-4.5, then it is worth reporting a qt bug.
+
+2.29 The PLplot API is now accessible from Qt GUI applications
+
+This important new feature has been implemented by Alban Rochel of the QSAS
+team as a spin-off of the qt device driver project using the extqt device
+(which constitutes the tenth qt device). See examples/c++/README.qt_example
+for a brief description of a simple Qt example which accesses the PLplot API
+and which is built in the installed examples tree using the pkg-config
+approach. Our build system has been enhanced to configure the necessary
+plplotd-qt.pc file.
+
+2.30 NaN / Inf support for some PLplot functions
+
+Some PLplot now correctly handle Nan or Inf values in the data to be plotted.
+Line plotting (plline etc) and image plotting (plimage, plimagefr) will
+now ignore NaN / Inf values. Currently some of the contour plotting / 3-d
+routines do not handle NaN / Inf values. This functionality will
+depend on whether the language binding used supports NaN / Inf values.
+
+2.31 Various bug fixes
+
+Various bugs in the 5.9.3 release have been fixed including:
+
+- Include missing file needed for the aqt driver on Mac OS X
+- Missing library version number for nistcd
+- Fixes for the qt examples with dynamic drivers disabled
+- Fixes to several tcl examples so they work with plserver
+- Fix pkg-config files to work correctly with Debug / Release build types set
+- Make Fortran command line argument parsing work with shared libraries on Windows
+
+2.32 Cairo driver improvements
+
+Improvements to the cairo driver to give better results for bitmap
+formats when used with anti-aliasing file viewers.
+
+2.33 PyQt changes
+
+Years ago we got a donation of a hand-crafted pyqt3 interface to PLplot
+(some of the functions in plplot_widgetmodule.c in bindings/python) and a
+proof-of-concept example (prova.py and qplplot.py in examples/python), but
+this code did not gain any developer interest and was therefore not
+understood or maintained. Recently one of our core developers has
+implemented a sip-generated pyqt4 interface to PLplot (controlled by
+plplot_pyqt4.sip in bindings/qt_gui/pyqt4) that builds without problems as a
+python extension module, and a good-looking pyqt4 example (pyqt4_example.py
+in examples/python) that works well. Since this pyqt4 approach is
+maintained by a PLplot developer it appears to have a good future, and we
+have therefore decided to concentrate on pyqt4 and remove the pyqt3 PLplot
+interface and example completely.
+
+2.34 Color Palettes
+
+Support has been added to PLplot for user defined color palette files.
+These files can be loaded at the command line using the -cmap0 or
+-cmap1 commands, or via the API using the plspal0 and plspal1 commands.
+The commands cmap0 / plspal0 are used to load cmap0 type files which
+specify the colors in PLplot's color table 0. The commands cmap1 /
+plspal1 are used to load cmap1 type files which specify PLplot's color
+table 1. Examples of both types of files can be found in either the
+plplot-source/data directory or the PLplot installed directory
+(typically /usr/local/share/plplotx.y.z/ on Linux).
+
+2.35 Reimplementation of a "soft landing" when a bad/missing compiler is
+detected
+
+The PLplot core library is written in C so our CMake-based build system will
+error out if it doesn't detect a working C compiler. However all other
+compiled languages (Ada, C++, D, Fortran, Java, and OCaml) we support are
+optional. If a working compiler is not available, we give a "soft landing"
+(give a warning message, disable the optional component, and keep going).
+The old implementation of the soft landing was not applied consistently (C++
+was unnecessarily mandatory before) and also caused problems for ccmake (a
+CLI front-end to the cmake application) and cmake-gui (a CMake GUI front-end
+to the cmake application) which incorrectly dropped languages as a result
+even when there was a working compiler.
+
+We now have completely reimplemented the soft landing logic. The result
+works well for cmake, ccmake, and cmake-gui. The one limitation of this new
+method that we are aware of is it only recognizes either the default
+compiler chosen by the generator or else a compiler specified by the
+environment variable approach (see Official Notice XII above). Once CMake
+bug 9220 has been fixed (so that the OPTIONAL signature of the
+enable_language command actually works without erroring out), then our
+soft-landing approach (which is a workaround for bug 9220) will be replaced
+by the OPTIONAL signature of enable_language, and all CMake methods of
+specifying compilers and compiler options will automatically be recognized
+as a result.
+
+2.36 Make PLplot aware of LC_NUMERIC locale
+
+For POSIX-compliant systems, locale is set globally so any external
+applications or libraries that use the PLplot library or any external
+libraries used by the PLplot library or PLplot device drivers could
+potentially change the LC_NUMERIC locale used by PLplot to anything those
+external applications and libraries choose. The principal consequence of
+such choice is the decimal separator could be a comma (for some locales)
+rather than the period assumed for the "C" locale. For previous versions of
+PLplot a comma decimal separator would have lead to a large number of
+errors, but this issue is now addressed with a side benefit that our plots
+now have the capability of displaying the comma (e.g., in axis labels) for
+the decimal separator for those locales which require that.
+
+If you are not satisfied with the results for the default PLplot locale set
+by external applications and libraries, then you can now choose the
+LC_NUMERIC locale for PLplot by (a) specifying the new -locale command-line
+option for PLplot (if you do not specify that option, a default loca...
[truncated message content] |