<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. And I’ve learned something about the dependency process (mostly what to avoid...) GI Joe would be proud.<BR>
<BR>
On 7/22/09 9:28 AM, "Thompson, David C" <<a href="dcthomp@sandia.gov">dcthomp@sandia.gov</a>> 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>
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 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 "exodus" is not part of the regular expression.<BR>
<BR>
The goal of 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 "vtk"<BR>
is already in the regular expression) and find about<BR>
vtk_exodus2_mangle.h .<BR>
2. Change the regular expression to include "exodus" 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<<a href="david.cole@kitware.com">david.cole@kitware.com</a>> wrote:<BR>
> I will not claim to be "a one of the cmake gods" .... but my main suspect<BR>
> for this incident is line 457 of the top level CMakeLists.txt:<BR>
> INCLUDE_REGULAR_EXPRESSION("(^|/)((lex|png|j|z|t|D|Q|verdict).*|${VTK_REGEX}|${VTK_REGEX_TXX})$")<BR>
><BR>
> Somehow one of the header files involved in this particular chain of<BR>
> dependencies does not match our regular expression for tracking include file<BR>
> dependencies...<BR>
><BR>
> The system is complex and the system is imperfect. The nightly dashboards<BR>
> would have been fine if this is just an "incremental rebuilds do not work<BR>
> unless you touch this .cxx file" scenario.<BR>
><BR>
> It's nice to have a real live human to blame for stuff, but this is not<BR>
> really anybody's fault -- it's more like the nature of the beast: we accept<BR>
> small imperfections in the system like this so that we don't have even<BR>
> longer incremental rebuild times than we do now.<BR>
><BR>
> This has and will continue to happen occasionally (every few months or so)<BR>
> with VTK. The best thing to do when it does happen is to send an email to<BR>
> the VTK Developers list and say : "hey, this happens on the continuous and<BR>
> will happen with your next cvs update/incremental rebuild -- make sure to do<BR>
> a full rebuild or touch this .cxx file to avoid the problem..."<BR>
><BR>
> If Nathan had sent that email yesterday when he first observed the symptom,<BR>
> none of us would have had to wade through this thread today and perhaps<BR>
> there would be less hurt feelings all around the table....<BR>
><BR>
><BR>
> HTH,<BR>
> David<BR>
><BR>
><BR>
> On Tue, Jul 21, 2009 at 8:17 PM, Dave Partyka <<a href="dave.partyka@kitware.com">dave.partyka@kitware.com</a>><BR>
> wrote:<BR>
>>><BR>
>>> I made the apparently incorrect assumption that the continuous was doing<BR>
>>> incremental builds whereas the nightlies would be complete rebuilds.<BR>
>><BR>
>> This assumption is correct.<BR>
>> I don't know why modifying the header file didn't trigger a recompile or<BR>
>> if it even should other than maybe because we don't include header files in<BR>
>> our cmakelists.txt files? I am just speculating, but probably a one of the<BR>
>> cmake gods knows.<BR>
>> On Tue, Jul 21, 2009 at 7:53 PM, Fabian, Nathan <<a href="ndfabia@sandia.gov">ndfabia@sandia.gov</a>><BR>
>> wrote:<BR>
>>><BR>
>>> Hi Francois,<BR>
>>><BR>
>>> It looks like the problem is that the dependencies aren’t causing<BR>
>>> vtkExodusIIReader.cxx to recompile as it should. Although I noticed this<BR>
>>> when I compiled it myself, when I compiled after touching the timestamp on<BR>
>>> Exodus Reader it compiled fine.<BR>
>>><BR>
>>> The dependency graph is unfortunately non-trivial. The exodus reader<BR>
>>> includes exodusII.h (under VTK/Utilities/vtkexodus2/include) which includes<BR>
>>> vtk_exodus2_mangle.h in the same location.<BR>
>>><BR>
>>> I made the apparently incorrect assumption that the continuous was doing<BR>
>>> incremental builds whereas the nightlies would be complete rebuilds.<BR>
>>><BR>
>>> What is the best way to handle this? Should I commit an empty change (or<BR>
>>> add a newline to the end of the file) to vtkExodusIIReader.cxx to update the<BR>
>>> timestamps on the dashboards?<BR>
>>><BR>
>>> Thanks,<BR>
>>> Nathan.<BR>
>>><BR>
>>> On 7/21/09 5:07 PM, "Francois Bertel" <<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>><BR>
>>> wrote:<BR>
>>><BR>
>>> I reverted back the change:<BR>
>>><BR>
>>><BR>
>>> <a href="http://public.kitware.com/cgi-bin/viewcvs.cgi/VTK/Utilities/vtkexodus2/include/vtk_exodus2_mangle.h?root=ParaView3&view=log">http://public.kitware.com/cgi-bin/viewcvs.cgi/VTK/Utilities/vtkexodus2/include/vtk_exodus2_mangle.h?root=ParaView3&view=log</a><BR>
>>><BR>
>>> Please compile before you commit, and look at the dashboards once you<BR>
>>> commit a file...<BR>
>>><BR>
>>><BR>
>>> On Tue, Jul 21, 2009 at 6:33 PM, Francois<BR>
>>> Bertel<<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>> wrote:<BR>
>>> > become dead red...<BR>
>>> ><BR>
>>> > On Tue, Jul 21, 2009 at 6:33 PM, Francois<BR>
>>> > Bertel<<a href="francois.bertel@kitware.com">francois.bertel@kitware.com</a>> wrote:<BR>
>>> >> Hello,<BR>
>>> >><BR>
>>> >> For the developer with login "ndfabia",<BR>
>>> >><BR>
>>> >> You have less than 1 hour and 30 minutes to revert back or fix your<BR>
>>> >> change on vtk_exodus2_mangle.h before the nightly builds of VTK and<BR>
>>> >> ParaView becomes dead read (the nighlty time is 9:00pm edt).<BR>
>>> >><BR>
>>> >> Thank you.<BR>
>>> >><BR>
>>> >><BR>
>>> >> --<BR>
>>> >> François Bertel, PhD | Kitware Inc. Suite 204<BR>
>>> >> 1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
>>> >> | Clifton Park NY 12065, USA<BR>
>>> >><BR>
>>> ><BR>
>>> ><BR>
>>> ><BR>
>>> > --<BR>
>>> > François Bertel, PhD | Kitware Inc. Suite 204<BR>
>>> > 1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
>>> > | Clifton Park NY 12065, USA<BR>
>>> ><BR>
>>><BR>
>>><BR>
>>><BR>
>>> --<BR>
>>> François Bertel, PhD | Kitware Inc. Suite 204<BR>
>>> 1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
>>> | Clifton Park NY 12065, USA<BR>
>>> _______________________________________________<BR>
>>> Powered by www.kitware.com<BR>
>>><BR>
>>> Visit other Kitware open-source projects at<BR>
>>> <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>
>>> _______________________________________________<BR>
>>> Powered by www.kitware.com<BR>
>>><BR>
>>> Visit other Kitware open-source projects at<BR>
>>> <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>
><BR>
<BR>
<BR>
<BR>
--<BR>
François Bertel, PhD | Kitware Inc. Suite 204<BR>
1 (518) 371 3971 x113 | 28 Corporate Drive<BR>
| 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>