On 2016-12-14 22:30-0500 Pedro Vicente wrote: > Hi Alan > > see my replies between your questions > >> This certainly qualifies as a release-critical wxwidgets bug. And you >> have certainly supplied enough information that Phil should find this >> to be straightforward to reproduce. > > easy to reproduce on the PLplot code, but not immediatley obvious to find the > root cause.
Amen! > > My speculation is that it happens because this function located in > \bindings\wxwidgets\wxPLplotwindow.h > > void wxPLplotwindow<WXWINDOW>::OnCreate( wxWindowCreateEvent &event ) > { > if ( !m_created ) > > is not automatically called in an wxwidgets event triggered by this code in > wxPLplotDemo.cpp, the Create() call > > wxPLplotwindow<wxFrame> *frame = new wxPLplotwindow<wxFrame>(); > frame->Create( NULL, wxID_ANY, wxT( "wxPLplotDemo" ) ); > > this can be easily confirmed if you put a print statement here > > void wxPLplotwindow<WXWINDOW>::OnCreate( wxWindowCreateEvent &event ) > { > wxLogDebug("wxPLplotwindow<WXWINDOW>::OnCreate"); > if ( !m_created ) > > so, my solution is simple, it's just to specifically call the code that is > inside > void wxPLplotwindow<WXWINDOW>::OnCreate > > > I did this by doing a function that I called CreatePLplotstream(), that > contains the stream initialization code > that is in > wxPLplotwindow<WXWINDOW>::OnCreate > > > so, in the demo code the call is now > > wxPLplotwindow<wxFrame> *frame = new wxPLplotwindow<wxFrame>(); > frame->Create( NULL, wxID_ANY, wxT( "wxPLplotDemo" ) ); > frame->CreatePLplotstream(); I think you will agree with me that smells like a workaround rather than a fundamental fix. Nevertheless, if you turn that change into a PLplot patch AND that solves the present build issue for all the Linux distros you have tried, and if it works here on Debian Jessie, then I will apply that patch as a temporary fix for the release which we can undo afterwards (or even before the release if we are lucky) with a more fundamental fix. > >> Do you see any use of (presumably deprecated) wxwidgets-2.x calls >> in our wxwidgets binding or device driver? If so, that might be >> a good place to start to work on this issue. > > > not sure, I'll check > > events are explained here > > http://docs.wxwidgets.org/3.1/overview_events.html > > I always do a static event table in my code. > it's also possible to do a dynamic event (with ::Bind()) > actually in the PLplot code this is done another way, that I am not sure > about > > //We use connect instead of Bind for compatiblity with wxWidgets 2.8 > //but should move to bind in the future. > WXWINDOW::Connect( wxEVT_CREATE, wxWindowCreateEventHandler( > wxPLplotwindow<WXWINDOW>::OnCreate ) ); Implementing a fundamental fix for the current build issue is already way beyond my meager C++ and wxwidgets expertise, but I do have some sense of the overview that may help you. One issue you should be aware of is git blame results are obfuscated by our code styling events (often triggered by me) which amount to putting random blanks in the code to make it conform to our style. So software@raven> git blame bindings/wxwidgets/wxPLplotwindow.h |grep '2\.8' 39a6c01b (Alan W. Irwin 2015-02-14 19:32:12 -0800 90) //We use connect instead of Bind for compatiblity with wxWidgets 2.8 39a6c01b (Alan W. Irwin 2015-02-14 19:32:12 -0800 123) //on at least one system (CentOS with intel compiler and wxWidgets 2.8.12). "shows" I was the author of the above comment in commit 39a6c01b, but that was a styling commit so you have to back off one commit to 39a6c01b^ to find the true author/commit which then shows the following: software@raven> git blame 39a6c01b^ bindings/wxwidgets/wxPLplotwindow.h |grep '2\.8' cf59c54a (Phil Rosenberg 2015-01-15 14:18:42 +0000 75) //We use connect instead of Bind for compatiblity with wxWidgets 2.8 fa121bd5 (Phil Rosenberg 2015-01-20 15:56:53 +0000 102) //on at least one system (CentOS with intel compiler and wxWidgets 2.8.12). Also, if you look at the git log for references to wxwidgets 2.8 and 3.0, it appears we tried to keep backwards compatibility with 2.8 for quite a while (the commit messages for cf59c54a, and fa121bd5 but also other commits mention maintaining compatibility with 2.8) even though principal development was on 3.0. Eventually, we had to change our minimum acceptable wxwidgets version from 2.8 to 3.0 because of one commit which only worked for 3.0. So it does appear our code is a mixture of wxwidgets-2.8 (supported typically by an extra commit after some development on 3.0) and 3.0, and it might be a bit of an effort to remove all that wxwidgets-2.8 support. @Phil: If you are in e-mail contact, i.e., reading this, I would appreciate your thoughts on this matter of moving to pure 3.0. If it is straightforward to do, and you have time to work on that before Christmas, I would be willing to hold the release for you for a few extra days beyond December 27th until you are done and the result thoroughly checked on Debian Jessie, Windows, and all the different Linux distros available to Pedro. I advise this change eventually in any case because the mixture of 2.8 and 3.0 we have now appears not to be well supported on most Linux distros unless Pedro's workaround turns out to (temporarily) save the day for us. 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 __________________________ ------------------------------------------------------------------------------ Check out the vibrant tech community on one of the world's most engaging tech sites, SlashDot.org! http://sdm.link/slashdot _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel