Here is the current summary of how PLplot works on MinGW/MSYS/Wine

I don't have diff installed yet so I caught and fixed a build system error
in that case (revision 10887).  I also fixed another test system error where
wincairo was not being configured properly for interactive tests.

I hoped with MinGW to get access to C, C++, f77, f95, Java, and Ada.

Ada doesn't work because my Ada language support is not Windows-ready
(It skips all Platform file checks, for example.)  There are no
near-term prospects for fixing that because I have real trouble following
the CMake language support magic that is required.

Java doesn't work because I haven't installed Windows swig yet.  That binary
download of the Windows version of swig is a real mess. swig.exe is in the
same directory as a whole lot of other arbitrary files rather than in "bin"
so if you put that directory on your PATH, it would be easy to "execute" all
kinds of stuff by accident.  I am going to try to make a separate bin
directory and put swig.exe in there, but swig.exe may only work if it is in
the original location relative to the rest of the Windows swig download.
Arjen, Werner, or Hazen: have you guys tried windows swig yet, and if so,
did you worry about this issue?

f95 doesn't work because of the module parenthesis issue I discussed before
here and reported to the MinGW bug tracker.

C++ doesn't work.  The C++ tests are incorrectly being replaced by
improperly initialized Fortran tests which then screw up.  More CMake
language support infrastructure magic going wrong! See my recent posts on
the CMake list.

I did get qhull built and installed without issues (once I updated the
relevant CMakeLists.txt file slightly beyond Werner's merge of all
our previous ideas for the qhull build).  Thanks, Werner, for your
help with this.

I have noticed that CMake find commands on Wine sometimes "leak" through
and find stuff on Linux instead if there is no Windows file of the right
type to be found.  This happened with the qhull headers until I fixed
the MinGW qhull build to install the private headers (which PLplot
needs).  It also happens with Tcl (I don't have the Windows version
of that installed yet).  I suspect this issue is an inevitable consequence
of the Wine platform running on top of Linux.  The only solution is
to be careful and remove options in advance that you know are not
available yet on Wine because you haven't done the appropriate binary
download of the needed Windows package.

Here is the current set of options I am using for the MinGW/MSYS/Wine build:

cmake -G "MSYS Makefiles" -DBUILD_TEST=ON -DENABLE_ada=OFF \
-DENABLE_tcl=OFF -DENABLE_cxx=OFF -DENABLE_f95=OFF \
/z/home/software/plplot_svn/HEAD/plplot_cmake_qt >& cmake.out

The results are

ENABLE_DYNDRIVERS:      ON
DRIVERS_LIST: cairo;mem;null;ps;svg;wingcc;xfig
DEVICES_LIST:
extcairo;pdfcairo;pngcairo;pscairo;svgcairo;wincairo;mem;null;ps;svg;wingcc;xfig

Library options:
BUILD_SHARED_LIBS:      ON              PL_DOUBLE:      ON

Optional libraries:
HAVE_QHULL:             ON              WITH_CSA:       ON
HAVE_FREETYPE:                          HAVE_PTHREAD: 
HAVE_AGG:

Language Bindings:
ENABLE_f77:             ON              ENABLE_f95:             OFF

with everything after that set to OFF.  So I am just testing C and f77 right
now, and a rather limited number of devices, but hopefully C++ will come
courtesy of the CMake devels, and Fortran95 will come courtesy of the MinGW
devels. Other language components such as Java, Python, and Tcl may just be
a download/unpack away.

I looked at the cairo, ps, and psc file results generated by the
test_noninteractive target for examples 1, 8, 16, 23, and 24.  All was well
except for

* -dev pngcairo had bad rendering.  e.g., bad vertical labels of example 1,
bad 3D axis labels of example 8.  Other cairo file devices did not have this
issue, but -dev wincairo did, see below.

* Limited language fonts in example 24 for most devices.  -dev svg (but not
-dev svgcairo) was the one exception because it defers font choice to when
the svg file is viewed (in this case with the display app on my Linux
system).  I presume these limited fonts are due to Wine having a limited
Windows selection of language fonts.  There seemed to be an excellent
selection of Mathematical fonts available under Wine for the cairo devices
as shown by example 23 results.

Two interesting results (at least for me) were that -dev wingcc and
-dev wincairo worked under Wine, i.e., Wine is converting the Windows
graphics calls to underlying Linux X calls on the fly without obvious
issues such as segfaults, etc.  This is the first time ever I have
seen -dev wingcc and -dev wincairo results.

-dev wingcc had one issue that I noticed when running the test_interactive
target; example 17 did not erase previous plots when the axes were
rescaled.  Could one of the windows dev's please take a look and fix this?

-dev wincairo had a number of issues.

* Bad rendering exactly the same as noted for pngcairo above but not
for other cairo devices.

* Option -np (no pause) does not work properly with wincairo.  The Window
comes up, but the plot is never rendered.  This affects all test_interactive
target results with this device since those are done with -np to
reduce/eliminate mouse clicks during this test.

* examples/c/x17c -dev wincairo produces the correct plot at the end
but with no interactivity.

* wincairo is much slower (at least 10x but probably much more)
than wingcc.  That's when I run directly at the X server, but if I
run remotely over a LAN using an X-terminal, wincairo gets still slower
with a saturated LAN network.

xcairo also had all the above issues in its early days and they were
overcome one by one until the final one (speed) was knocked off quite
recently by Hez's dirty rectangle implementation. Hazen, do you think it
would be straightforward to adopt the xcairo fixes for wincairo to blow away
all the above -dev wincairo issues in short order?

Once CXX works under CMake for MinGW/MSYS/Wine, then I should be ready to
test the qt file and qtwidget devices.  In the qtwidgets case, I think
Windows Qt will render all results using Windows graphics calls which will
then be translated to underlying Linux X calls by Wine.  So it will
be interesting to compare its speed with -dev wingcc and -dev wincairo.

Alan
__________________________
Alan W. Irwin

Astronomical research affiliation with Department of Physics and Astronomy,
University of Victoria (astrowww.phys.uvic.ca).

Programming affiliations with the FreeEOS equation-of-state implementation
for stellar interiors (freeeos.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
__________________________

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to