<HTML>
<HEAD>
<TITLE>Re: [vtk-developers] Fix vtk_exodus2_mangle.h now please</TITLE>
</HEAD>
<BODY>
<FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'><BR>
#3 sounds great to me too. &nbsp;And I&#8217;ve learned something about the dependency process (mostly what to avoid...) &nbsp;GI Joe would be proud.<BR>
<BR>
On 7/22/09 9:28 AM, &quot;Thompson, David C&quot; &lt;<a href="dcthomp@sandia.gov">dcthomp@sandia.gov</a>&gt; wrote:<BR>
<BR>
</SPAN></FONT><BLOCKQUOTE><FONT FACE="Calibri, Verdana, Helvetica, Arial"><SPAN STYLE='font-size:11pt'>I vote for #3 as well... #1 would make it even more difficult<BR>
to track changes to the exodus library.<BR>
<BR>
Thanks for tracking this down.<BR>
<BR>
&nbsp;&nbsp;&nbsp;&nbsp;David<BR>
________________________________________<BR>
From: <a href="vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a> [<a href="vtk-developers-bounces@vtk.org">vtk-developers-bounces@vtk.org</a>] On Behalf Of Francois Bertel [<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>]<BR>
Sent: Wednesday, July 22, 2009 08:22<BR>
To: VTK Developers<BR>
Subject: Re: [vtk-developers] Fix vtk_exodus2_mangle.h now please<BR>
<BR>
Hello,<BR>
<BR>
With Dave Cole, we tracked down the real issue:<BR>
<BR>
The exodus reader in VTK/Hybrid depends directly on<BR>
VTK/Utilities/vtkexodus2/exodusII.h . exodusII.h itself is the only<BR>
file that includes vtk_exodus2_mangle.h.<BR>
<BR>
If INCLUDE_REGULAR_EXPRESSION was not used, a full dependency search<BR>
would have found that the files in VTK/Hybrid depend indirectly on<BR>
vtk_exodus2_mangle.h.<BR>
<BR>
Because &nbsp;INCLUDE_REGULAR_EXPRESSION is used, the dependency search<BR>
stops at files not included in the regular expression. exodusII.h is a<BR>
stop point because &quot;exodus&quot; is not part of the regular expression.<BR>
<BR>
The goal of &nbsp;INCLUDE_REGULAR_EXPRESSION is to speed-up dependency<BR>
search by stopping the process in files not matching the regular<BR>
expression.<BR>
<BR>
<BR>
I can think of 3 different ways to solve this issue:<BR>
1. Rename exodusII.h to vtkExodusII.h (and all the files that includes<BR>
exodusII.h, a lot of files in VTK/Utilities/vtkexodus2 and in Hybrid)<BR>
so that the dependency search goes into vtkExodusII.h (because &quot;vtk&quot;<BR>
is already in the regular expression) and find about<BR>
vtk_exodus2_mangle.h .<BR>
2. Change the regular expression to include &quot;exodus&quot; files, which may<BR>
slow down the dependency search.<BR>
3. Add a new file vtkExodusII.h in VTK/Utilities/vtkexodus2 that<BR>
includes first vtk_exodus2_mangle.h and then exodusII.h. Change the<BR>
files in Hybrid to include vtkExodusII.h instead of exodusII.h.<BR>
<BR>
Any thought?<BR>
<BR>
<BR>
PS: I vote for solution 3.<BR>
<BR>
<BR>
On Wed, Jul 22, 2009 at 7:31 AM, David Cole&lt;<a href="david.cole@kitware.com">david.cole@kitware.com</a>&gt; wrote:<BR>
&gt; I will not claim to be &quot;a one of the cmake gods&quot; .... but my main suspect<BR>
&gt; for this incident is line 457 of the top level CMakeLists.txt:<BR>
&gt; INCLUDE_REGULAR_EXPRESSION(&quot;(^|/)((lex|png|j|z|t|D|Q|verdict).*|${VTK_REGEX}|${VTK_REGEX_TXX})$&quot;)<BR>
&gt;<BR>
&gt; Somehow one of the header files involved in this particular chain of<BR>
&gt; dependencies does not match our regular expression for tracking include file<BR>
&gt; dependencies...<BR>
&gt;<BR>
&gt; The system is complex and the system is imperfect. The nightly dashboards<BR>
&gt; would have been fine if this is just an &quot;incremental rebuilds do not work<BR>
&gt; unless you touch this .cxx file&quot; scenario.<BR>
&gt;<BR>
&gt; It's nice to have a real live human to blame for stuff, but this is not<BR>
&gt; really anybody's fault -- it's more like the nature of the beast: we accept<BR>
&gt; small imperfections in the system like this so that we don't have even<BR>
&gt; longer incremental rebuild times than we do now.<BR>
&gt;<BR>
&gt; This has and will continue to happen occasionally (every few months or so)<BR>
&gt; with VTK. The best thing to do when it does happen is to send an email to<BR>
&gt; the VTK Developers list and say : &quot;hey, this happens on the continuous and<BR>
&gt; will happen with your next cvs update/incremental rebuild -- make sure to do<BR>
&gt; a full rebuild or touch this .cxx file to avoid the problem...&quot;<BR>
&gt;<BR>
&gt; If Nathan had sent that email yesterday when he first observed the symptom,<BR>
&gt; none of us would have had to wade through this thread today and perhaps<BR>
&gt; there would be less hurt feelings all around the table....<BR>
&gt;<BR>
&gt;<BR>
&gt; HTH,<BR>
&gt; David<BR>
&gt;<BR>
&gt;<BR>
&gt; On Tue, Jul 21, 2009 at 8:17 PM, Dave Partyka &lt;<a href="dave.partyka@kitware.com">dave.partyka@kitware.com</a>&gt;<BR>
&gt; wrote:<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; I made the apparently incorrect assumption that the continuous was doing<BR>
&gt;&gt;&gt; incremental builds whereas the nightlies would be complete rebuilds.<BR>
&gt;&gt;<BR>
&gt;&gt; This assumption is correct.<BR>
&gt;&gt; I don't know why modifying the header file didn't trigger a recompile or<BR>
&gt;&gt; if it even should other than maybe because we don't include header files in<BR>
&gt;&gt; our cmakelists.txt files? I am just speculating, but probably a one of the<BR>
&gt;&gt; cmake gods knows.<BR>
&gt;&gt; On Tue, Jul 21, 2009 at 7:53 PM, Fabian, Nathan &lt;<a href="ndfabia@sandia.gov">ndfabia@sandia.gov</a>&gt;<BR>
&gt;&gt; wrote:<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Hi Francois,<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; It looks like the problem is that the dependencies aren&#8217;t causing<BR>
&gt;&gt;&gt; vtkExodusIIReader.cxx to recompile as it should. &nbsp;Although I noticed this<BR>
&gt;&gt;&gt; when I compiled it myself, when I compiled after touching the timestamp on<BR>
&gt;&gt;&gt; Exodus Reader it compiled fine.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; The dependency graph is unfortunately non-trivial. &nbsp;The exodus reader<BR>
&gt;&gt;&gt; includes exodusII.h (under VTK/Utilities/vtkexodus2/include) which includes<BR>
&gt;&gt;&gt; vtk_exodus2_mangle.h in the same location.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; I made the apparently incorrect assumption that the continuous was doing<BR>
&gt;&gt;&gt; incremental builds whereas the nightlies would be complete rebuilds.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; What is the best way to handle this? &nbsp;Should I commit an empty change (or<BR>
&gt;&gt;&gt; add a newline to the end of the file) to vtkExodusIIReader.cxx to update the<BR>
&gt;&gt;&gt; timestamps on the dashboards?<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Thanks,<BR>
&gt;&gt;&gt; Nathan.<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; On 7/21/09 5:07 PM, &quot;Francois Bertel&quot; &lt;<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>&gt;<BR>
&gt;&gt;&gt; wrote:<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; I reverted back the change:<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; <a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/VTK/Utilities/vtkexodus2/include/vtk_exodus2_mangle.h?root=ParaView3&amp;view=log">http://public.kitware.com/cgi-bin/viewcvs.cgi/VTK/Utilities/vtkexodus2/include/vtk_exodus2_mangle.h?root=ParaView3&amp;view=log</a><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Please compile before you commit, and look at the dashboards once you<BR>
&gt;&gt;&gt; commit a file...<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; On Tue, Jul 21, 2009 at 6:33 PM, Francois<BR>
&gt;&gt;&gt; Bertel&lt;<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>&gt; wrote:<BR>
&gt;&gt;&gt; &gt; become dead red...<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; On Tue, Jul 21, 2009 at 6:33 PM, Francois<BR>
&gt;&gt;&gt; &gt; Bertel&lt;<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>&gt; wrote:<BR>
&gt;&gt;&gt; &gt;&gt; Hello,<BR>
&gt;&gt;&gt; &gt;&gt;<BR>
&gt;&gt;&gt; &gt;&gt; For the developer with login &quot;ndfabia&quot;,<BR>
&gt;&gt;&gt; &gt;&gt;<BR>
&gt;&gt;&gt; &gt;&gt; You have &nbsp;less than 1 hour and 30 minutes to revert back or fix your<BR>
&gt;&gt;&gt; &gt;&gt; change on &nbsp;vtk_exodus2_mangle.h before the nightly builds of VTK and<BR>
&gt;&gt;&gt; &gt;&gt; ParaView becomes dead read (the nighlty time is 9:00pm edt).<BR>
&gt;&gt;&gt; &gt;&gt;<BR>
&gt;&gt;&gt; &gt;&gt; Thank you.<BR>
&gt;&gt;&gt; &gt;&gt;<BR>
&gt;&gt;&gt; &gt;&gt;<BR>
&gt;&gt;&gt; &gt;&gt; --<BR>
&gt;&gt;&gt; &gt;&gt; Fran&ccedil;ois Bertel, PhD &nbsp;| Kitware Inc. Suite 204<BR>
&gt;&gt;&gt; &gt;&gt; 1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
&gt;&gt;&gt; &gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Clifton Park NY 12065, USA<BR>
&gt;&gt;&gt; &gt;&gt;<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt; &gt; --<BR>
&gt;&gt;&gt; &gt; Fran&ccedil;ois Bertel, PhD &nbsp;| Kitware Inc. Suite 204<BR>
&gt;&gt;&gt; &gt; 1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
&gt;&gt;&gt; &gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Clifton Park NY 12065, USA<BR>
&gt;&gt;&gt; &gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; --<BR>
&gt;&gt;&gt; Fran&ccedil;ois Bertel, PhD &nbsp;| Kitware Inc. Suite 204<BR>
&gt;&gt;&gt; 1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
&gt;&gt;&gt; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Clifton Park NY 12065, USA<BR>
&gt;&gt;&gt; _______________________________________________<BR>
&gt;&gt;&gt; Powered by www.kitware.com<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Visit other Kitware open-source projects at<BR>
&gt;&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Follow this link to subscribe/unsubscribe:<BR>
&gt;&gt;&gt; <a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; _______________________________________________<BR>
&gt;&gt;&gt; Powered by www.kitware.com<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Visit other Kitware open-source projects at<BR>
&gt;&gt;&gt; <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt; Follow this link to subscribe/unsubscribe:<BR>
&gt;&gt;&gt; <a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a><BR>
&gt;&gt;&gt;<BR>
&gt;&gt;&gt;<BR>
&gt;&gt;<BR>
&gt;<BR>
&gt;<BR>
<BR>
<BR>
<BR>
--<BR>
Fran&ccedil;ois Bertel, PhD &nbsp;| Kitware Inc. Suite 204<BR>
1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;| Clifton Park NY 12065, USA<BR>
_______________________________________________<BR>
Powered by www.kitware.com<BR>
<BR>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><BR>
<BR>
Follow this link to subscribe/unsubscribe:<BR>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a><BR>
<BR>
<BR>
<BR>
_______________________________________________<BR>
Powered by www.kitware.com<BR>
<BR>
Visit other Kitware open-source projects at <a href="http://www.kitware.com/opensource/opensource.html">http://www.kitware.com/opensource/opensource.html</a><BR>
<BR>
Follow this link to subscribe/unsubscribe:<BR>
<a href="http://www.vtk.org/mailman/listinfo/vtk-developers">http://www.vtk.org/mailman/listinfo/vtk-developers</a><BR>
<BR>
<BR>
<BR>
</SPAN></FONT></BLOCKQUOTE>
</BODY>
</HTML>