This post is Windows-centric so it is principally directed to our
developers with access to Windows (Arjen, Phil, and Jim).

I have decided that the release of 5.16.0 should be near December 1st this
year to stick close to the 6-month-long release cycle that worked so well for
the 5.15.0 release.

MinGW-w64/MSYS2 (MSYS2 for short), Cygwin, and MSVC are the three
Windows platforms that are of interest to us, and I would like to
summarize here some comments I have made before for each of these
platforms since that information is so relevant to the Windows
development plans for PLplot that I will be discussing below.

* MSYS2.  This is our primary Windows platform since it supplies most
  of the free software libraries in Windows native form (i.e., no link
  to msys2.dll that turns executables/libraries into non-native form)
  that provide PLplot with its power and *always* (since there is no X
  wrapper implemented for MSYS2) displays results efficiently using
  native Windows display functionality.  Because of this capability
  interactive comprehensive testing on this platform should be
  reasonably quick, but nobody has actually tried that yet.  On the
  other hand, for 5.15.0 Arjen supplied good noninteractive
  comprehensive test results (see
  <https://sourceforge.net/p/plplot/wiki/Testing_Reports/>) for this
  platform which demonstrate its excellent quality (at least for the
  noninteractive case) for the needs of our Windows users.

* Cygwin.  This is a secondary platform for us because all Cygwin
  libraries are non-native (i.e., linked to cygwin.dll to give
  non-native behaviour) and some of its free software display
  libraries (IIRC wxwidgets is a definite example of this issue, and
  pango/cairo and Qt may also have the same display issue) have been
  packaged incorrectly (in my view) to perform their display via a
  slow/inefficient X wrapper for Windows display rather than the
  direct Windows display capability that is available for all of these
  free software display libraries.  As a result, Arjen has found via
  one attempt in the past that *interactive* comprehensive testing on
  Cygwin is effectively impossible because the X-wrapped display
  functionality is so incredibly slow.

* MSVC is generally a low priority for us since ABI issues limit what
  free software libraries can be used on this platform so as a result
  PLplot is quite weak on this platform.  The exception, of course, is
  Phil has gotten our wxwidgets components to work with a wxwidgets
  library he downloaded? or built? on this platform that apparently
  was ABI compatible with the MSVC compiler.  Also, in the past Arjen
  has had success adding both library power and bash
  power to this platform by putting MSYS2 libraries and bash on
  his PATH.  But that mode is likely too complex for users so is
  only likely useful for the important comprehensive testing of this platform
  that can be done by knowledgeable PLplot developers.

@Arjen, Phil, and Jim:

I acknowledge all of you have told me in the past about your severe
family and job time constraints that leaves very little time for
PLplot, but having said that, I nevertheless assume all of you will
still have at least some time to work on PLplot during this 6-month
release cycle so during that precious limited time for PLplot you
should set good priorities.  Here are my ideas about what your
individual PLplot priorities should be, but, of course, if you prefer
other PLplot priorities for yourself during this next 6 months, please
let me know what those are!

@Arjen:

Here are the priorities I believe you should have in reverse priority
order.  Of course, if you think these priorities should be reordered
or there are more important ones that I forgot, please let me know.

1. Although Cygwin is of secondary importance some users do attempt to
   use PLplot on this platform.  Therefore, I think your immediate
   priority for this release cycle should be to finish up your
   comprehensive testing efforts on Cygwin that you tried to complete
   before the 5.15.0 release.  Time is of the essence (which is my
   motivation for giving this effort a high priority) since although
   you did not complete this effort in time for the 5.15.0 release, it
   is almost as good to complete it as soon as possible after the
   5.15.0 release to reassure Windows users (with finalized results
   mentioned at
   <https://sourceforge.net/p/plplot/wiki/Testing_Reports/>) that
   at least noninteractive PLplot-5.15.0 is as good on Cygwin as it is on MSYS2.

2. Update all our MSYS2-related wiki pages based on your recent good
   experiences with this platform. I think this project will take
   advantage of your good English technical writing skills, and
   up-to-date wiki information will also be extremely useful in
   helping both Phil and Jim to get started with this platform (see
   their priorities below).

3. Be prepared (via at least one preliminary testing effort this summer) to
   "turn the crank" to replicate your current good MSYS2 comprehensive
   test just before we release 5.16.0 on or near December 1st.

4. Comprehensively test the MSVC platform?  I put a question mark by
   that priority since this platform is not of primary importance to
   us.  Nevertheless, just to remind you, you were able to create a
   good comprehensive test of this platform a long time ago by putting
   native MSYS2 libraries and MSYS2 bash on your PATH (to add PLplot
   power and especially bash testing power to the otherwise low-power
   MSVC platform), and it "would be nice" if you can replicate that
   good MSVC result again for 5.16.0.

5. Package PLplot on Cygwin??  This is an even lower "would be nice"
   priority.  However, See remarks about why there is a need for this
   packaging effort that I recently made at
   <https://sourceforge.net/p/plplot/feature-requests/16/>.

@Phil:

Here are the priorities I believe you should have in reverse priority
order.  Of course, if you think these priorities should be reordered
or there are more important ones that I forgot, please let me know.

1. Deal with <https://sourceforge.net/p/plplot/patches/34/>.

2. Become familiar with our primary Windows platform, MSYS2.  You have
   already told me off-list that you would be willing to do this, and
   I think this release cycle would be an excellent time for you to
   achieve this goal not only for your own personal benefit (because this
   really is a powerful PLplot platform) but also to ease the testing
   burden carried by Arjen right now and also to eventually extend the
   scope of his current testing (i.e., by including interactive tests
   in the comprehensive test script that you run).
   See <https://sourceforge.net/p/plplot/wiki/Testing_PLplot/> for the details
   concerning testing PLplot including how to run the comprehensive test script.

   A very good source of information for the MSYS2 platform is
   <https://github.com/msys2/msys2/wiki> and links you can follow from
   there that should make it easy to install the basic version of this
   platform and enhance it by using the pacman installer to install
   all the native Windows libraries provided by MSYS2 that provide
   extra power to PLplot.  For example, pango/cairo, Qt, and wxwidgets
   libraries already provide good noninteractive results (or have the
   potential to do so in the wxwidgets case, remember the wxpng device
   driver) and should potentially also provide rapid, high-quality
   interactive results for comprehensive tests.

3. This one is a cross-platform issue rather than just limited to
   Windows.  Fix the wxwidgets device so that its display event loop
   checks to see whether the plot commands in the buffer have been
   extended and adds those plot commands to the display of the plot
   whenever such an extension occurs rather than waiting until the
   buffer of all plot commands for a given page is complete before
   running all those plot commands.  This fundamental improvement for
   new wxwidgets should bring the new wxwidgets device in line with
   the old wxwidgets device as well as the wincairo (or xcairo on
   Linux) and qtwidget interactive devices.  For all those other
   interactive device alternatives the -np (no pause) option works
   properly, and the 17th example displays like a video as the plot
   unfolds rather than just plotting the final plot for the page.
   (You should be able to prove this for yourself by trying the
   wincairo and qtwidget devices on MSYS2 for example 17).  In sum,
   this fundamental change to the new wxwidgets device needs to be
   done before it can gain those same good -np and 17th example
   display results showed by the other interactive devices.

4. Help with packaging PLplot for MSYS2?  Of course, Arjen could
   likely be able to do this instead of you, but it is a good way to
   take some of the load off him, and it should not be that big a
   burden for you since packaging on this platform is really simple.

   See my recent comments at
   <https://sourceforge.net/p/plplot/feature-requests/16/> concerning
   the importance of such binary packaging.  I should add here that my
   old estimate of binary package use of PLplot (via the fraction of
   Debian users that used it actively each month on Debian) was very
   roughly 100000 users when you apply that fraction to an estimate
   of the free software desktops in the world while downloaders of our source 
code typically
   are only ~5000 per release according to SF statistics.  So that
   comparison is quite rough, but the important point is binary package
   users of PLplot far outweigh those who build PLplot from source which
   is why I view binary packaging to be so important
   for PLplot.

   From the MSYS2 wiki reference above, you can discover that
   packaging for MSYS2 is really quite simple, and there is already a
   very good start on that at
   <https://github.com/msys2/MINGW-packages/tree/master/mingw-w64-plplot>
   to help you further.  However, if you just look at the PKGBUILD
   file there you should notice some problematic configuration issues
   (relying on the gd library and associated png and jpeg device
   drivers that have been deprecated for a very long time, and
   dropping (!) the high-quality qt device driver that is working so
   well for Arjen).  So once you are familiar with building PLplot on
   MSYS2, you should be able to give Alex (the primary MSYS2 developer
   and also the author of the PLplot package for that platform) some
   good advice (through patches to that PKGBUILD file and testing the
   effect of those changes on the plplot binary package results) about
   how to substantially improve that PLplot package.

@Jim:

Here are the priorities I believe you should have in reverse priority
order.  Of course, if you think these priorities should be reordered
or there are more important ones that I forgot, please let me know.

1. Phil has already told me he is willing to give MSYS2 a try so
   I hope you are in as well during this release cycle.  See topic
   2. in my remarks to him.

2. Deal with <https://sourceforge.net/p/plplot/bugs/195/>.  My feeling
   is there is a reasonable chance you can replicate this guy's Cygwin
   issue on MSYS2 (since MSYS2 is a fork of Cygwin), and if that
   proves to be the case, that should provide some essential help
   to your effort to fix this bug.

3. If the wingdi device is anything like my memory of the wingcc
   device results long ago when I was testing that device on Wine, it
   has problems with the -np option and example 17.  See topic 3 in my
   remarks to Phil about a similar issue for the wxwidgets device and
   the MSYS2 interactive device comparisons he can use to discover the
   correct behaviour of all interactive devices.  And if you verify
   this bug for wingdi on MSYS2, it would be great if you could also
   come up with a fix for it.  But I would not bother with fixing
   wingcc in this regard since I hope we will be able to retire that device
   driver soon (see below).

4. Enhance the wingdi device so it can properly handle UTF-8 text?
   This is the obvious and long-discussed next step for this device that would 
allow us
   to permanently retire wingcc so I hope you have some time during
   this release cycle to finish off this topic.

@ Arjen, Phil, and Jim:

Don't take what I said too seriously above because my Windows experience
is from quite a while ago on the Wine platform with MinGW/MSYS (as opposed
to the modern alternative to that ancient platform, MinGW-w64/MSYS2).
But I do hope to stir up some discussion from you three PLplot developers
with access to Windows.  So I am looking forward to your individual
replies to my remarks above.

Alan
__________________________
Alan W. Irwin

Programming affiliations with the FreeEOS equation-of-state
implementation for stellar interiors (freeeos.sf.net); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.org); the libLASi project
(unifont.org/lasi); the Loads of Linux Links project (loll.sf.net);
and the Linux Brochure Project (lbproject.sf.net).
__________________________

Linux-powered Science
__________________________


_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to