[vtk-developers] Fix vtk_exodus2_mangle.h now please

Francois Bertel francois.bertel at kitware.com
Wed Jul 22 11:22:54 EDT 2009


Hello,

With Dave Cole, we tracked down the real issue:

The exodus reader in VTK/Hybrid depends directly on
VTK/Utilities/vtkexodus2/exodusII.h . exodusII.h itself is the only
file that includes vtk_exodus2_mangle.h.

If INCLUDE_REGULAR_EXPRESSION was not used, a full dependency search
would have found that the files in VTK/Hybrid depend indirectly on
vtk_exodus2_mangle.h.

Because  INCLUDE_REGULAR_EXPRESSION is used, the dependency search
stops at files not included in the regular expression. exodusII.h is a
stop point because "exodus" is not part of the regular expression.

The goal of  INCLUDE_REGULAR_EXPRESSION is to speed-up dependency
search by stopping the process in files not matching the regular
expression.


I can think of 3 different ways to solve this issue:
1. Rename exodusII.h to vtkExodusII.h (and all the files that includes
exodusII.h, a lot of files in VTK/Utilities/vtkexodus2 and in Hybrid)
so that the dependency search goes into vtkExodusII.h (because "vtk"
is already in the regular expression) and find about
vtk_exodus2_mangle.h .
2. Change the regular expression to include "exodus" files, which may
slow down the dependency search.
3. Add a new file vtkExodusII.h in VTK/Utilities/vtkexodus2 that
includes first vtk_exodus2_mangle.h and then exodusII.h. Change the
files in Hybrid to include vtkExodusII.h instead of exodusII.h.

Any thought?


PS: I vote for solution 3.


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



-- 
François Bertel, PhD  | Kitware Inc. Suite 204
1 (518) 371 3971 x113 | 28 Corporate Drive
                      | Clifton Park NY 12065, USA



More information about the vtk-developers mailing list