Late news first

************************* 5.1.0 NEWS ***************************************

Important Changes to Existing Features

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 documented and which can be downloaded from
ftp://ftp.gnu.org/pub/gnu/make.

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

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.

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 access it.

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

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

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.

Have fun with this latest stable release of PLplot!

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

************************* 5.0.4 NEWS **********************************

Important Changes:

(1) Default orientation for the ljii, ljiip, psc, ps, and pstex drivers has
been rotated from seascape (upside-down landscape) by 180 deg to landscape.
With this change no special 180 deg latex rotations will be required to get
true landscape mode (top of the plot on the left of the page as opposed to
on the right of the page for seascape mode).  If you still require seascape
for some reason for these drivers, use the -ori 2. command-line option or
else use plsdiori(2.) or plsetopt("ori", "2.").

(2) The installation location for examples has been changed to
$prefix/lib/plplot<ver>/examples to be in better conformance with the FHS.

Important Bug fixes:

(1) Many improvements to the octave front end.

(2) Many improvements to the xfig driver.

(3) If the overall aspect ratio is changed by the -geometry, -a, or -portrait
options or else by the combination of the -ori 1 and -freeaspect options, the
character aspect ratio remains unaffected.  For example, when the overall
aspect ratio is changed now, circular symbols remain circular rather than
turning into ellipses as in the old code.

(4) Software pattern fills now rotate correctly with the rest of the plot
when the -ori option is used.  This fix affects all drivers (e.g., xwin,
psc) which do not handle their own pattern fills.  (Previously the rotation
angle for software pattern fills was mistakenly doubled by two calls to the
orientation transformation routine.)

Important New Features:

(1) Portrait mode.  Use the -portrait option on the command line or else
plsetopt("portrait", "") to get this option which only currently affects the
ljii, ljiip, ps, psc, and pstex drivers.  This option is especially useful
for yplot, the yorick front-end to PLplot.  yplot previously maintained
separate (==> hard-to-maintain and buggy) portrait versions of the psc, ps,
and ljiip drivers.  Those will no longer be necessary with this PLplot
core change, and in fact portrait mode is now available for a much wider
range of drivers.

(2) -drvopt command-line option (or else use plsetopt("drvopt","option")).
This allows setting options for particular drivers.  For example, the
-drvopt text option for the psc or ps driver allows use of Adobe fonts (This
is poorly documented currently, but for now see notes in ps.c for more
details).

(3) New pstex driver.  This is not currently documented, but there is post
from João Cardoso on plplot_devel
(http://www.geocrawler.com/archives/3/10834/2001/4/50/5536095/) that gives
the recipe (ignore the configuration stuff and start with the ./x01c
command).  The idea is to emulate the pstex output of the xfig application
so that latex can be used to directly process the file output from the
PLplot pstex driver.

Have fun with this latest stable release of PLplot!

Alan W. Irwin

************************* 5.0.3 NEWS **************************************


The important changes are as follows:

(1) General PNG and JPEG drivers have been added which are based on the
libgd library (available for Unix/Linux/Mac/Windows). These drivers
encourage the use of PLplot for web applications because the PNG and JPEG
formats are so favoured for the web. We classify these two drivers as
late-beta and we are sufficiently confident of them that we configure them
by default if you have the appropriate headers and libraries installed from
libgd, libpng, libjpeg, and zlib. (You need at least libgd-1.7 to obtain
good PNG images, and at least libgd-1.8 to obtain JPEG images under PLplot.)
For more information on libgd and the additional required libraries please
visit http://www.boutell.com/gd/.

(2) The GNUSVGA driver (see plplot/sys/dos/djgpp) has been rewritten
to use DJGPP V2+ and GRX V2+. The improved driver adds: a cross hair mode; a
locate mode; double buffering; and an XOR mode to the "screen" driver, all
of which now give the driver most functions of the XWIN driver. It also
fixes up: handling of key and mouse events; colormap setting with "-bg"
switch; and now allows non-fatal/ non-volatile switching between graphics
and text mode (i.e. it no longer clobbers the computer, and now preserves the
screen). Additionally (and optionally) the DJGPP driver family now includes
support for TIFF, BMP, and JPG drivers, and the ability to do "hot key"
screen-dumps of the screen images to these formats.

(3) Octave is a mostly Matlab compatible high-level language intended for
numerical computations. An octave front end has been available for some
years for PLplot-4.99 and has, in fact, been maintained as a Debian package.
However, this PLplot 5.0.3 release is the first attempt to integrate the
octave front end with PLplot-5. See the README INSTALL USAGE and FGA
(frequently given answers) files in bindings/octave to find out how to use
this front end. Recently, an absolute octave newbie (AWI) was able to get
all the demos mentioned in INSTALL to work interactively for a Debian potato
system. Nevertheless, we classify this version of the front end as mid to
late beta because it has not been tested for a wide variety of environments
yet. We would welcome reports for this front end.

(4) An experimental Perl front end is just getting underway for PLplot. This
is an exciting project because it adds an important web-scripting
environment to PLplot. Usually, documentation trails code, but in this case
we have the unusual situation where we have parsed our API documentation
chapter (written in DocBook/XML) to create Perl wrappers for the common
PLplot API. With this start we have been able to create the demonstration
Perl script x01.pl which produces identical results to the standard x01c
demo (that was written in C). For instructions on how to get the Perl
binding to work, read bindings/perl5/README. More perl script demos are in
the works, and we welcome your participation (via the plplot-devel mailing
list, subscribe at http://sourceforge.net/mail/?group_id=2915) in helping to
develop this front end .

(5) A GNOME-compatible driver has been written for PLplot. At this point,
the driver is being rapidly developed with many exciting interactive
capabilities being considered. If you want to get in on the development of
this driver we urge you to subscribe to the plplot-devel mailing list (see
http://sourceforge.net/mail/?group_id=2915). We classify this driver as
alpha because the interactive features are not complete, but already it is
stable enough to view most of the demonstrations without problems. If you
want to try this for yourself, use --enable-gnome when you configure PLplot,
and for any demo specify gnome as the driver.

(6) Many other small changes. The important ones include the following:

(a) A test script. After you have built and installed the demo programmes
(go to $prefix/share/doc/plplot/examples and execute make cdemos in the c
directory, fdemos in the f77 directory, cxxdemos in the c++ directory) then
plplot-test.sh will generate all possible postscript file results for all
demos. (Use the --help option to explore other file driver possibilities.)
This script is an excellent way to test that you have built everything
properly on your system.

(b) A plplot-config configuration script to help you build your PLplot
applications. Do plplot-config --help to learn how to use it.

(b') We have changed a library name. The matrix library core name is now
libtclmatrix. A d suffix is applied to the name (just as for all other
libraries) if the library is built with --with-double=yes configured. If
you are using the plplot-config script to help link your applications, then
this library name change should be transparent to you.

(c) Added plshades routine to make life much easier for generating
continuously shaded plots. See x16c for a demonstration.

(d) Small change in exclusion API for shade plots. (If you are not
excluding regions of your shade plots this does not affect you.) For an
example of the new exclusion API for plshades see x16c.c. The excluded
annulus now actually is smooth--a nice improvement. See plshades.c for the
changes to the plshade exclusion API.

(e) Added argument list processing for xw??.py demos.

(f) Bug fix. Clip was not being applied to fills, now is.

(g) x10.tcl and x15.tcl added to demos.

(h) float --> PLFLT throughout the code. This change exterminates much of
the single precision that was contaminating the code (with consequent large
roundoff errors that differed from machine to machine) when
--with-double=yes is configured. Comparison of 32-bit and 64-bit results
for x??c now indicates identical postscript files except for date (of
course) and the x05c and x16c examples (which still must have some
single-precision contaminating them somewhere.) Other demos still need to be
checked for single-precision contamination in addition to the fundamental
x??c examples.

(i) Package relocatability put in. This is essential for building debs and
rpm's.

(j) Assorted documentation improvements including adding a Chapter entitled
"Notes for each Operating System that We Support". So far only filled with
somewhat sparse information on Unix/Linux. If you want to contribute some
documentation for other platforms, feel free to send the material to AWI,
and he will include it.

Reports are welcome (especially using plplot-test.sh) for all OS/hardware
combinations. It is only through such reports (and patches that work for
you) that we can improve our cross-platform support.

Alan W. Irwin

************************* 5.0.2 NEWS *************************************

Note we also have some innovation in the new release as well as bug fixing.

(1) The python xw??.py examples should now work right out of the box
without fooling around with PYTHONPATH.

(2) Install file locations now conform to the FHS. So, for example,
you will find the examples installed at
$prefix/share/doc/plplot/examples.

(3) The content of the documentation source has been greatly improved
from 5.0.1. We have now completely finished going through the doc
directory for several generations of notes on various topics and
incorporated all this material (with substantial updates and
expansions) into our docbook source. The result is new docbook
sections/chapters on devices, driver functions, plrender and
metafiles, familying, interactive output devices, color, and C and
fortran bindings. We have added API sections that are specialized to C
and fortran. We have also added a bibliography and reorganized the
material so that all the reference material (bibliography and API
sections) appear at the back of the document. We have now removed
virtually all the old files in doc so there is no longer the potential
of getting confused with these older generations of documentation.

We don't anticipate the addition of too many more chapters or sections
to the documentation, but some refinement of the existing
chapters/sections still needs to be done. If you are interested in
helping with this effort, please contact yours truly
(irwin@beluga.phys.uvic.ca).

(4) Our DocBook source can be built into PLplot documentation in a
variety of formats (currently html, dvi, postscript, pdf, info, and
man). Our CVS does not have these files because they are generated
rather than source files. However, you can always get the latest forms
of these results from http://www.plplot.org/resources/docbook-manual/,
and for your convenience we have also bundled these results into the
doc directory of the 5.0.2 tarball.

Please send bug reports, comments, and questions to the PLplot list,
and have fun (and profit) with the new 5.0.2 release of plplot!

Alan

************************* 5.0.1 NEWS ***************************************

Note we also have some innovation in the new release as well as bug fixing.

(1) The documentation building process has been changed completely over to
DocBook 4.1 XML.  To see the nice html, postscript, pdf, dvi, info, and man
results of this effort, please look at
http://www.plplot.org/resources/docbook-manual/

(2) The content of the documentation source has been greatly improved from
previous versions.  However, more work is always needed on documentation
content, and if you have an interest in helping out with this aspect of
plplot, please contact yours truly (Alan W. Irwin).

(3) The header file style has been changed to be similar to that of X.  That
is every header file reference in source should have the prefix plplot, e.g.,

#include "plplot/plConfig.h"

This gives much less potential for nameclashes, if the headers are stored in,
e.g., /usr/include/plplot.  It also means that the -I parameter stays the
same as it was before on the compile line.

(4) The library names have been changed so they are in a more consistent style
now that gives more protection against nameclashes.  All library tags
(suffixes to the core name of libplplot, libplmatrix, etc.) are
now gone except for d for double precision and nothing for single precision
or the libplmatrix library (which is always single precision even if
you have configured double precision).  To indicate what the library names
that were used to build plrender, execute the installed
$prefix/bin/plplot_linkage.  On my current system this emits the following
line:
-L/usr/local/plplot/lib -lplplotd -lplmatrix -litk3.1 -ltk8.2 -litcl3.1
-ltcl8.2 -L/usr/X11R6/lib -lX11 -lvga -ldl -lm -lg2c -Wl,-rpath
-Wl,/usr/local/plplot/lib

Your system (if it isn't Debian potato) will have a different link line
emitted by $prefix/bin/plplot_linkage.  That is the one to use!

(5) Python now works! (at least in widgetless mode).  Configure python (which
happens by default), and try out the new widgetless examples, xw??.py.
You will like them!  These examples all require double precision.  Eventually,
we plan to add Tk widget capabilities to these examples.  Any help
would be appreciated.

(6) Fortran now works with double precision and Linux!  (It always worked
well with single precision before, but it is nice to have this generality.)

Please send bug reports, comments, and questions to this list, and
have fun (and profit) with the new 5.0.1 release of plplot!

Alan

************************* 5.0.0 NEWS ***************************************

Greetings to all,

And you thought it would /NEVER/ happen.  :-).

I am pleased to announce that PLplot version 5.0.0 has been released.
The rest of this email will attempt to explain exactly what this means
in more detail.

Now for a little background.  We are done with the 4.99 x, x=abc...
business, as well as the dated snapshots.  Dated snapshots are being
replaced by providing anonymous cvs access through plplot.org.  So
anyone who wants to track day-to-day development, or follow progress
on their patch submissions, etc, will be able to do that by using cvs.

In addition to that, we will provide real releases which are supposed
to be stable, or at least to get stable over a short time.  The
releasing naming conventions will follow the Linux tradition.  Even
releases are supposed to be stable, and only bug fixes and
stabilization patches will be applied to these.  Thus, 5.0.0 is the
first in this strain.  If people find minor little nits that need
fixing, this will result in 5.0.1, 5.0.2, etc.  We hope it doesn`t get
too far...  Ongoing feature development will proceed in the 5.1
strain.

The release and versioning business is coordinated with cvs in the
following manner.  Stable releases go on a branch.  Ongoing
development continues on the cvs head.  To be really cvs technical, we
provide a branch point tag, a branch tag, and release tags.  So, to be
totally explicit, I did the following operations today when preparing
the 5.0.0 release:

1) cvs tag bp_v5_0
2) cvs rtag -b -r bp_v5_0 v5_0 plplot
3) cvs tag v5_0_0
4) cvs export -r v5_0_0 plplot
5) mv plplot/ plplot-5.0.0
6) tar cvzf plplot-5.0.0.tar.gz plplot-5.0.0/

Step 1 labels the state of the repository at the point in time when we
fork the 5.0 release branch.  The name of the branch point for the 5.0
release, is bp_v5_0.  Step 2 creates a cvs "branch tag" for referring
to the head of this branch.  The name of this tag is v5_0.  Step 3
creates a tag for the specific release 5.0.0, with tag name v5_0_0.
In the current case, there were no changes made between any of these
steps, so steps 1, 2, and 3 all refer to the same versions of the
files.  But as we move on from here, people who wish to participate in
stabilizing the 5.0 branch will need to check out the head of this
branch via:

    cvs co -r v5_0 plplot

Then they can do stabilization oriented development, submit context
diffs, and the core team will apply these patches, and eventually at
various points along the way, we will tag v5_0_1, v5_0_2, etc.  So,
the thing to understand here is that "v5_0" is the branch tag.  It is
a floating reference, which alwasy points to the head of this branch.
Non branch tags just refer to static file versions, labelling a single
specific collection of file versions for all of time.

Henceforth, the main line of deveopment, which we will call 5.1,
proceeds on the cvs head.  There is no branch tag for this.  To see
the ongoing develoment work on the 5.1 branch, just do:

    cvs co plplot

Use update to track ongoing work, etc.  We may possibly tag a few
interesting points along the way as v5_1_0, v5_1_1, etc, but there
will not be a branch tag for this.  Eventually, when 5.1 development
seems to have run its course, we will fork another branch for 5.2,
making a new branch point tag bp_v5_2, a branch tag v5_2 to refer to
the head of the branch holding the 5.2 release strain, and occasional
tags for specific 5.2.x releases.

Hopefully that is comprehensible to people with a cvs background.  See
the CVS faq for more background.  We`ll try to put this kind of info
on the web site somewhere as we get better organized.

Anyway, in addition to the cvs access mechanisms described above, we
also are providing the 5.0.0 release as a .tar.gz file.  Steps 4, 5,
and 6 show exactly how this was created, guaranteeing that the
plplot-5.0.0.tar.gz file contains exactly the file versions that were
tagged as v5_0_0 in step 3, but omitting the CVS control information.
This tarball release is appropriate for people who just want the code
in a packaged form, and aren`t interested in tracking the cvs
development specifically, or even in using cvs to fetch identified
versions.  This file has been uploaded to the plplot.org ftp site.
You can get it via:

    /<EMAIL: PROTECTED>:/pub/plplot/plplot-5.0.0.tar.gz

Eventually we will get the http://www.plplot.org web site updated to reflect
this, and also figure out how to identify this file release on the
sourceforge.net project page for plplot.  Someone will post messages
about that as we progress in these other areas.

Anyway, the bottom line is, right now you can get PLplot 5.0.0, either
by anonymous ftp, or by anonymous cvs.

Now for a word about the contents of 5.0.0.

The main thing that has happened over the past three years since I
escaped graduate school, is that we`ve been trying to fix bugs in the
autoconf support, and in the Tcl/Tk driver, and in color handling of
the X driver.  There have been a great many bugs rooted out of the
system over this period of time, and I would encourage all PLplot
users worldwide, to upgrade to 5.0.0 at this time.  This release is
known to work with 8.x strain Tcl/Tk releases, Itcl 3 releases, Python
1.5, etc.  The problems with X color management are believed to be
resolved in a manner that is generally satisfactory (there`s always
room for improvement in this area, but the current state is a big leg
up over where it was before in the 4.99j or in the early snapshots).
And numerous patch submissions from users worldwide have been
integrated (although admittedly there are more outstanding, pending
core team review).  There is also a new Mac driver by Rob Managan.
Currently just the necessary source and doc files, but we will get his
Mac CW project support goods uploaded to ftp.plplot.org at some point
too.  So, there`s been lots of improvement since the last release, and
I hope people will endeavor to upgrade to this new version.  If things
go wrong, please submit patches to sourceforge.net, and we`ll work on
getting it stabilized.

In the midst of such endeavors, please note the distinction between
bug fixes to 5.0.x, and feature development for ongoing 5.1.  The new
stuff is going to go into 5.1.  5.0.x is really there just to have an
up to date stable and official release for those who don`t want to
track ongoing development.  As such, don`t expect major new features
to appear in 5.0.x releases, just fixes that relate to platform
support, minor bugs, etc.

So, what lays ahead for 5.1?  Well, like I said before, that depends a
lot on what people contribute.  My personal actions will focus in the
short term on better Tcl package participation and improved Python
module interaction.  But there are more drivers in the works, web
integration opportunities, more plot types, variations, and viewing
overhauls, etc, that various people have expressed interest in.  More
news as it happens.

Remember that you can track it all by subscribing to
<EMAIL: PROTECTED>, or by reviewing the lists chronology in
geocrawler.  Or, you can use the cvs history command (also easily
accessible in Emacs fromt he version control pane), to see what people
are doing, track your patch submissions to see when they get in, etc.

Cheers to all,

Geoffrey Furnish

********************* 4.99j NEWS *********************************************

This is the 10th beta release (4.99j) of what will eventually become
the PLplot 5.0 distribution.  At this point I'm mainly trying to root out the
remaining bugs and system dependencies, but there will undoubtably be a
few improvements yet before the final version sees the light of day.

Please refer to the following files for more information:

README		General introduction, where to get more information, etc.
NEWS		This file
CHANGES		Log of changes to plplot in reverse chronological order.
ToDo		Describes what's on the agenda (no promises, however :-).
FAQ		Frequently answered questions.
INSTALL		Installation notes

Also see the system-specific documentation under sys/<system-name>.
The manual is being updated!  More below.

You can get the PLplot distribution by anonymous ftp from:

	/anonymous@dino.ph.utexas.edu:/plplot

in .zip or .tar.gz form.  The most up-to-date (not very, at this point)
manual (in .ps and .dvi form) and info document files are available there as
well.


For more detail of these changes, consult CHANGES.

**************************************************************************
Version 4.99j: Summary of major changes
**************************************************************************

A massive update.  Major changes follow:

- A major upgrade of the configure scripts.  Now uses Autoconf 2.3 to
generate.  You can now build PLplot in an arbitrary temporary directory,
typing <path>/configure and then make.  This allows building from a
read-only file system, or setting up multiple build directories using
different build options simultaneously.  Help entries now available for all
recognized configure command line options.  Confusing a --with-<opt> with a
--enable-<opt> is now detected and flagged as an error.  The option to skip
loading the defaults file is now invoked by using --without-defaults or
--with-defaults=no to be more like typical configure parameters.  Added
--with-nobraindead (not for general use).  Better support of shared
libraries (in principle), and better handling of the install procedure.  Run
results are sent to the file config.summary, so you can type "ls config.*"
to see all the informational files created by configure.  Searches for
Fortran compiler if enable_f77=yes.  If that isn't found, switches to f2c.
If that isn't found, enable_f77 is set to "no" (Fortran interface layer is
omitted).  Added --with-dbmalloc, for linking with a debugging malloc
library.  Support generation of shared lib on Linux, using ELF tools.

- Better internal debug handling and reporting.  Files where DEBUG is
defined only generate debug output if the debug stream variable is
set (e.g. via -debug).  Uses stdarg capability, first time I've used
this in PLplot, so be on the lookout for portability problems with this.
If all goes well I have other uses of stdargs in mind.

