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
__________________________

Attachment: 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
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to