[Insight-developers] ConceptCheck & Wrapping : ITK 3.4 Update

Luis Ibanez luis.ibanez at kitware.com
Fri Sep 21 12:45:12 EDT 2007


Good point,
let's take a look back at the original concern that Bill pointed out:


       How easy is for that developer (ITK user) to figure out
       what needs to be fixed in her applications in order to
       adopt a new ITK version.


Run time warning error messages are a possible alternative here too.

We could just test the pixel type to see if it is float or double and
insert an itkWarningMacro() when it is not.

This will generate a run-time annoyance that will motivate the
application developer to fix the application, and will bring
the opportunity to present a clearer message on what the error
might be, and now to solve it.

In the particular case at hand : FiniteDifferenceImageFilter
We could add an itkWarningMacro() with the message:

      "Output pixel type should be float or double
       in order to prevent computational errors."


or something along those lines...


    Luis



-------------------
Brad King wrote:
> Luis Ibanez wrote:
> 
>>
>>This sounds indeed like the right thing to do,...
>>*for one release*...
>>
>>   but...
>>
>>
>>We shouln'd understimate the cost/effort of maintaning
>>such a system for the next five to ten years.
> 
> 
> I agree that the technique is not that maintainable.  It is just an
> example of how to implement full compatibility without allowing new code
> to use the old behavior.
> 
> There are two kinds of compatibility: feature compatibility and "bug
> compatibility".  The case discussed in this thread is a bug
> compatibility issue.  We have replaced a subtle runtime bug (integer
> truncation of results) with an explicit compile-time message.  One could
> argue that this change is a feature enhancement.  I think less effort
> should be spent on bug compatibility.  As long as the breakages are
> documented the fixes should not be a problem.
> 
> Going back to Bill L's young grad student example, if he/she has been
> given the task of updating an application to use a new ITK release, then
> the task inherently involves dealing with issues like the resulting
> error message.  If the application has been working well for years with
> an older ITK, then why upgrade?  Obviously in order to get some new
> features.  The cost of getting the new features is a couple minutes
> fixing a few compiler errors on code that had a bug anyway.
> 
> -Brad
> 


More information about the Insight-developers mailing list