Hi Alan Glad it's working ! I'll go through your email later, but a fix for the warning is just changing at line 313 of wxPLplotwindow.cpp wxDC *drawDc; to wxDC *drawDc = NULL; the warning is just because of the preprocessor macro -Pedro ----- Original Message ----- From: "Alan W. Irwin" <ir...@beluga.phys.uvic.ca> To: "Pedro Vicente" <pedro.vice...@space-research.org> Cc: "Phil Rosenberg" <p.d.rosenb...@gmail.com>; "PLplot development list" <Plplot-devel@lists.sourceforge.net> Sent: Saturday, December 24, 2016 3:42 AM Subject: Re: [Plplot-devel] Infinite Yielding issue
> On 2016-12-24 01:13-0500 Pedro Vicente wrote: > >> Hi Alan >> >> some more upbeat news about the example error , it's gone :-) > > It's gone here too. :-) > > So thanks very much Pedro for this early Christmas present! > > [...] >> I also removed this "PLDLLIMPEXP_WX" >> >> class PLDLLIMPEXP_WX wxPLplotwindow : public wxFrame > > That change causes a build issue on Linux if you are using > > export CXXFLAGS="-O3 -fvisibility=hidden -Wuninitialized" > export CFLAGS="-O3 -fvisibility=hidden -Wuninitialized" > export FFLAGS="-O3 -Wuninitialized -Wunused" > > which I highly recommend on Linux to check for symbol visibility > issues on that platform (and to partially check for visibility > issues on Windows as well, but in this case it sounds like it > was not needed, but it should do no harm on that platform.) > > So I had to amend your present (second) commit to put it back. > >> I searched in all the source code and could not find this symbol ? > > The unix find command is good for such tasks: > > software@raven> find . -type f |grep -v .git |xargs grep PLDLLIMPEXP_WX > ./bindings/wxwidgets/wxPLplot_nanosec.h.in:PLDLLIMPEXP_WX void > ./bindings/wxwidgets/wxPLplotwindow.h:class PLDLLIMPEXP_WX wxPLplotwindow > : public wxFrame > ./bindings/wxwidgets/wxPLplotstream.h:class PLDLLIMPEXP_WX wxPLplotstream > : public plstream > ./bindings/wxwidgets/deprecated_wxPLplotwindow.h:class PLDLLIMPEXP_WX > wxPLplotwindow : public wxWindow > ./bindings/wxwidgets/deprecated_wxPLplotstream.h.in:class PLDLLIMPEXP_WX > wxPLplotstream : public plstream > ./include/pldll.h.in: #define PLDLLIMPEXP_WX PLDLLEXPORT > ./include/pldll.h.in: #define PLDLLIMPEXP_WX_DATA( type ) PLDLLEXPORT > type > ./include/pldll.h.in: #define PLDLLIMPEXP_WX PLDLLIMPORT > ./include/pldll.h.in: #define PLDLLIMPEXP_WX_DATA( type ) PLDLLIMPORT > type > > Just in case you are curious about find, the above command says get me > all the names of all the files in the source tree, drop all the .git > ones (i.e., drop the git repository to focus on just files in the working > directory), > then search all those remaining files for PLDLLIMPEXP_WX. The result > was 9 hits (9 lines somewhere in our source tree files that refer to > PLDLLIMPEXP_WX). > > From these results, you can see that the way I use that macro in > wxPLplotwindow.h has also been used for a long time in > wxPLplotstream.h, deprecated_wxPLplotwindow.h, and > deprecated_wxPLplotstream.h.in. Also, that macro is defined in > include/pldll.h.in (which as you will discover has some complicated > preprocessing logic). > > N.B. Use of such *IMPEXP* macros is an integral part of our symbol > visibility support. > >> let me know if something on my patch is not clear > > I slightly amended the commit message on your first (modified) commit > to indicate this complete fix would be in two commits, amended the > second (present) commit to put back PLDLLIMPEXP_WX again, greatly > expanded the commit message of that second commit using your own > description > that you made in your post describing that commit, filled in a Tested > by: place-holding section for you that you should later fill out with > all the platforms you tested these two commits on, and finally added > my own Tested by: section. > > Would you also look at one compiler warning I got because of the above > -Wuninitialized option? Here was that complete warning: > > /home/software/plplot/HEAD/plplot.git/bindings/wxwidgets/wxPLplotwindow.cpp: > In member function ‘void wxPLplotwindow::setUseGraphicsContext(bool)’: > /home/software/plplot/HEAD/plplot.git/bindings/wxwidgets/wxPLplotwindow.cpp:326:33: > > warning: ‘drawDc’ may be used uninitialized in this function > [-Wmaybe-uninitialized] > m_stream.SetDC( drawDc ); > > A lot of the time such warnings are spurious so you have to quiet them > by initializing something that shouldn't really need it. But > sometimes they really do point to a serious problem with something > that is uninitialized because of bad code logic. > > Anyhow, please _amend_ (i.e., do not make a 3rd commit) your second > commit to either quiet this warning if it is spurious or deal with the > bad code logic if that turns out to be the issue, test these two > commits thoroughly on all your platforms including Windows, and fill > in the commit message Tested by: section of the second commit with > that platform list. > > Quick directions again for amending the last commit on a topic branch. > > If a file is changed (i.e., you fixed the above warning). Then stage > that changed file with "git add" and get that change into your last > commit by using "git commit --amend". If there are no file changes, > then simply use "git commit --amend" to modify the commit message of > the last commit. Note amending a commit is very useful if you > have second thoughts about some aspect of it, want to update the > commit message or whatever. But the --amend option only works > on the _last_ commit so make it a very strong habit to review your > last commit completely to make sure it is good before you make another > commit because that second commit makes it impossible to amend > the first. (I used such care this time to amend the first commit > before applying your second commit and amending it.) > > Also, once a commit is published (i.e., pushed to our SF server), then > it should never be amended or changed in any way, i.e., further > changes have to be made using further commits rather than modifying an > existing commit. The reason for that "fundamental courtesy" rule is > someone could clone the SF git repository, and branch a new topic > branch off of any commit they desire, but if you subsequently modify > that particular _public_ branch commit in any way, they get completely > screwed. > > I have attached a tarball containing your two commits (both of which > have been revised by me for this iteration as discussed above). Apply > them both in numerical order to a new topic branch using "git am". If > you get tired of running git am twice by hand in the correct order, > then use "git help am" to figure out how to do that with just one "git > am" command. > > Then generate another iteration consisting of the first > (unchanged by you this time) commit, and the second commit that you revise > as above using > > git format-patch -2 > > Then collect those two files in a tarball using > > tar zcf wxwidgets_experimental_commits2.tar.gz 00* > > and attach that result to a post to this list for Phil to look at > to make sure he understands and approves of the changes in these > two commits. > > Half an hour ago it was the start of Christmas Eve day for me, and > that happened several hours ago for you and quite a while ago for > Phil. So Merry Christmas and Happy New Year! to both of you and everybody > else on this > list. > > I will likely check my e-mail again in ~12 hours and again on > Christmas, and the 26th but I will totally understand if I don't here > anything from you until the 27th. However, by early on that date, I > hope you will have prepared the two commits as specified above > including testing on all your platforms. And I hope we can get in > touch with Phil on that date to get his recommendation for what to do > with regard to those two revised commits and the release. > > But right now I feel fairly confident about your two commits because > there exist at least two platforms where they appear to work. But > hopefully you will have considerably expanded that number of "good" > platforms by the 27th! > > 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 > __________________________ ------------------------------------------------------------------------------ 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