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/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: /:/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 , 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/. 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 /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- with a --enable- 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.