On 2016-12-24 01:13-0500 Pedro Vicente wrote:
Hi Alansome 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
__________________________
wxwidgets_experimental_commits1.tar.gz
Description: tarball containing two revised wxwidgets-related commits.
------------------------------------------------------------------------------ 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 [email protected] https://lists.sourceforge.net/lists/listinfo/plplot-devel
