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