On 2016-12-23 01:40-0500 Pedro Vicente wrote:

Alan, Phil

I went ahead and did a patch commit for option 3), attached,
that has this:

(note: I wrote the code in Windows, then ftp to Linux, I got some warnings about line endings, just do
dos2unix if any thing shows up)

Hi Pedro:

Your change is extremly promising because for the first time I get the
same debug output here as you do on Ubunutu.  In other words we have
a deterministic order for the first time!

However, your commit needs some code revision.  I did some of that
here, but there is more for you to do there to avoid the new bitmap
errors I detected when running the wxwidgets device driver which
launches wxPLViewer and communicates with it to get the plot displayed.
I suspect the revision you have done for the wxPLViewer code is
somehow interfering with that use of the wxPLViewer application.

Now for the details.

Your formatted patch (which by the way has no Windows line endings in
it) applied relatively cleanly here aside from minor whitespace issues, but
did not build.

That build issue was caused by incorrect symbol visibility for your changes.  I 
found that issue on
Linux by using the -fvisibility=hidden option, e.g.,

software@raven> printenv |grep FL
CXXFLAGS=-O3 -fvisibility=hidden -Wuninitialized
CFLAGS=-O3 -fvisibility=hidden -Wuninitialized
FFLAGS=-O3 -Wuninitialized -Wunused

That produces for gcc a symbol visibility that is similar to
visibility on Windows platforms. That is, I don't think your changes
would have built on Windows.

The visibility fix was to replace

class wxPLplotwindow : public wxFrame

by

class PLDLLIMPEXP_WX wxPLplotwindow : public wxFrame

in bindings/wxwidgets/wxPLplotwindow.h.

I attach the revised version of your patch with this change and
several line-ending and style changes applied.  However, to quote from
that revised commit message (in the new Tested by: section for me)

I got "the same as the Ubuntu results above which is the first time the
two platforms have the same debugging output meaning we appear to have
a deterministic solution!"

"HOWEVER. There are run-time problems (invalid bitmap) with these
changes for wxPLViewer if you use that in conjunction with -dev
wxwidgets so this should not be the final version of this commit."

software@raven> examples/c/x01c -dev wxwidgets
PLplot library version: 5.11.1
10:54:55: Debug: nanosecs since epoch = 2210969809300109: plD_init_wxwidgets(): 
enter
10:54:55: Debug: nanosecs since epoch = 2210969845142231: wxPLDevice(): enter
10:54:55: Debug: nanosecs since epoch = 2210969845351899: wxPLDevice(): gc done
10:54:55: Debug: nanosecs since epoch = 2210969867143754: wxPLDevice(): 
m_interactiveTextGcdc done
10:54:55: Debug: nanosecs since epoch = 2210969867214649: SetupMemoryMap(): 
enter
10:54:55: Debug: nanosecs since epoch = 2210969868074842: SetupMemoryMap(): 
mapName start
10:54:55: Debug: nanosecs since epoch = 2210969868110859: SetupMemoryMap(): 
mapName done
10:54:55: Debug: nanosecs since epoch = 2210969868140426: SetupMemoryMap(): 
m_outputMemoryMap.create call
10:54:55: Debug: nanosecs since epoch = 2210969868201560: SetupMemoryMap(): 
m_outputMemoryMap.create done
10:54:55: Debug: nanosecs since epoch = 2210970015888076: 
wxPLplotwindow::wxPLplotwindow
10:54:55: Debug: nanosecs since epoch = 2210970031998161: SetupMemoryMap(): 
leave
10:54:55: Debug: nanosecs since epoch = 2210970032100417: wxPLDevice(): leave
10:54:55: Debug: nanosecs since epoch = 2210970032134179: plD_init_wxwidgets(): 
leave
software@raven> ../src/gtk/bitmap.cpp(923): assert "IsOk()" failed in 
GetWidth(): invalid bitmap

So Pedro, my version of your patch should be applied there with

git am < /tmp/0001-wxwidgets-binding-fix-for-delayed-OnCreate-event.patch

You should use that command on a fresh topic branch without your
changes, i.e., latest master from SF.  And make sure it is my
version of your patch you apply and not your own patch of the same name.

Please use my revision of your patch that way to preserve the style and line 
ending
issues I fixed and the tested-by section I inserted in the commit message
rather than just cherry-picking the visibility fix.

The next step after that is to build the wxwidgets, wxPLViewer, and
x01c targets and try the experiment above.  Assuming you will see the same
bitmap error as above, then please revise your patch again to
fix that.

(Just use "git add" to stage additional changes you want to add to
your commit, and "git commit --amend" to add those staged changes to
your commit.  This very common git pattern avoids a series of
non-working commits which are successive approximations to the final
working commit.)

Then follow up by testing the second revision of your patch on all
systems accessible to you by building the test_wxPLplotDemo and
test_c_wxwidgets targets on each of them.  (The latter does the above
experiment on a small subset of the examples with all prerequisite
targets built first automatically.)  Then send that second revised
version of your patch to Phil and me for more testing/analysis.

If it passes Phil's tests and mine, AND he likes your new approach,
then I will revise my "Tested by:" section in the commit message
appropriately and push your patch to finally put this release-critical
issue to rest.

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); the Time
Ephemerides project (timeephem.sf.net); PLplot scientific plotting
software package (plplot.sf.net); 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
__________________________

Attachment: 0001-wxwidgets-binding-fix-for-delayed-OnCreate-event.patch.gz
Description: First revision of Pedro's commit

------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today.http://sdm.link/intel
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to