[ITK] [ITK-dev] ITK API Change (was ITKApps failing after recent commit)
Bradley Lowekamp
blowekamp at mail.nih.gov
Tue May 26 13:26:48 EDT 2015
Bill,
I am OK reverting the implementation of the itkEvenMacro.
But I think we can keep the separated definition of the ITK classes and the current implementation of itkEventMacroDeclaration, and itkEventMacroDefinition.
Brad
On May 26, 2015, at 12:01 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
> Brad,
>
> In an application, by separating the declaration (in a .h file) from
> the definition (in a .cxx file) solves the problem. But this is a PITA
> for an application that currently uses itkEventMacro. Upsetting
> customers is not moving forward.
>
>
> On Tue, May 26, 2015 at 11:58 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>> Brad,
>>
>> That is not the problem. The old macro duplicated implementations in
>> each file that included a common .h file. The new api changes that.
>> But, is it important. I think not. The old, less elegant form, worked.
>>
>>
>> On Tue, May 26, 2015 at 11:44 AM, Bradley Lowekamp
>> <blowekamp at mail.nih.gov> wrote:
>>>
>>> Lets try to keep moving forward.
>>>
>>> The itkEventMacro is not really used in ITK. It should not be hard to revert it to the old behavior.
>>>
>>> All that is likely needed is to improve the usage of the ITKEvent_EXPORT define [1]. It looks like the re-write of these macros was only intended for internal ITK usage as it's defined an ITKCommom_EXPORT.
>>>
>>> Brad
>>>
>>>
>>>
>>> [1] https://github.com/InsightSoftwareConsortium/ITK/blob/master/Modules/Core/Common/include/itkEventObject.h#L108
>>>
>>> On May 26, 2015, at 11:37 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>
>>>> I agree. I will soon have a patch to the ITKApps that works for both
>>>> versions of ITK. This will illustrate how much work is required to
>>>> support both API's. The current ITK makes itkEventMacro dangerous and
>>>> worthless.
>>>>
>>>> On Tue, May 26, 2015 at 11:31 AM, Matt McCormick
>>>> <matt.mccormick at kitware.com> wrote:
>>>>> Hi Bill,
>>>>>
>>>>> Thanks for bringing attention to this. If we cannot find a way for
>>>>> external Event code to work without modification, I thing we should
>>>>> revert the change before we release 4.8.
>>>>>
>>>>> 2 cents,
>>>>> Matt
>>>>>
>>>>> On Tue, May 26, 2015 at 11:26 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>>> itkEventMacro no longer works the way it used to. Applications that used
>>>>>> itkEventMacro(myEvent, itk::UserEvent);
>>>>>> must break up the statement into two statements and two files:
>>>>>> in the .h file
>>>>>> itkEventMacroDeclaration(myEvent,itk::UserEvent);
>>>>>> in the .cxx file
>>>>>> itkEventMacroDefinition(myEvent,itk::UserEvent);
>>>>>>
>>>>>> The problems occurs when an application has multiple source files that
>>>>>> include the file with itkEventMacro. Duplicate symbols are created
>>>>>> now. Prior to the API-break this was fine.
>>>>>>
>>>>>> Application code that uses itkEventMacro that wants to support ITK
>>>>>> pre-the-API-break and post-the-API-break will need further statements.
>>>>>>
>>>>>> I am working on getting the ITKApps to work with both pre and post
>>>>>> API-break versions.
>>>>>>
>>>>>> The unintended consequences of this API break are troublesome.
>>>>>>
>>>>>> On Mon, May 25, 2015 at 3:10 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>>>> itksnap also has issues with the API change. I'll try to make a small
>>>>>>> example that illustrates the problem.
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Mon, May 25, 2015 at 12:08 PM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>>>>> Looks to me that the API for itkEventMacro has changed. This is bad.
>>>>>>>> In ITKApps there are several definitions like this. How must these be
>>>>>>>> changed?
>>>>>>>>
>>>>>>>> namespace fltk {
>>>>>>>>
>>>>>>>> /**
>>>>>>>> * List of the events expected in this domain
>>>>>>>> */
>>>>>>>> itkEventMacro( RedrawEvent, itk::UserEvent );
>>>>>>>> itkEventMacro( GlDrawEvent, itk::UserEvent );
>>>>>>>> itkEventMacro( VolumeReslicedEvent, itk::UserEvent );
>>>>>>>> itkEventMacro( ClippingPlaneEvent, itk::UserEvent );
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> } // end namespace fltk
>>>>>>>>
>>>>>>>>
>>>>>>>> On Mon, May 25, 2015 at 11:59 AM, Bill Lorensen <bill.lorensen at gmail.com> wrote:
>>>>>>>>> Since this topic was merged, ITKApps failk to build. I narrowed it
>>>>>>>>> down using git commit.
>>>>>>>>>
>>>>>>>>> http://review.source.kitware.com/#/c/19729/
>>>>>>>>>
>>>>>>>>> Here is the failing dashboard entry:
>>>>>>>>> https://open.cdash.org/viewBuildError.php?buildid=3828894
>>>>>>>>>
>>>>>>>>> I'll take a lot to see if I can fix it.
>>>>>>>>>
>>>>>>>>> Bill
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>> --
>>>>>>>> Unpaid intern in BillsBasement at noware dot com
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Unpaid intern in BillsBasement at noware dot com
>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Unpaid intern in BillsBasement at noware dot com
>>>>>> _______________________________________________
>>>>>> Powered by www.kitware.com
>>>>>>
>>>>>> Visit other Kitware open-source projects at
>>>>>> http://www.kitware.com/opensource/opensource.html
>>>>>>
>>>>>> Kitware offers ITK Training Courses, for more information visit:
>>>>>> http://kitware.com/products/protraining.php
>>>>>>
>>>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>>>
>>>>>> Follow this link to subscribe/unsubscribe:
>>>>>> http://public.kitware.com/mailman/listinfo/insight-developers
>>>>
>>>>
>>>>
>>>> --
>>>> Unpaid intern in BillsBasement at noware dot com
>>>> _______________________________________________
>>>> Powered by www.kitware.com
>>>>
>>>> Visit other Kitware open-source projects at
>>>> http://www.kitware.com/opensource/opensource.html
>>>>
>>>> Kitware offers ITK Training Courses, for more information visit:
>>>> http://kitware.com/products/protraining.php
>>>>
>>>> Please keep messages on-topic and check the ITK FAQ at:
>>>> http://www.itk.org/Wiki/ITK_FAQ
>>>>
>>>> Follow this link to subscribe/unsubscribe:
>>>> http://public.kitware.com/mailman/listinfo/insight-developers
>>>> _______________________________________________
>>>> Community mailing list
>>>> Community at itk.org
>>>> http://public.kitware.com/mailman/listinfo/community
>>>
>>
>>
>>
>> --
>> Unpaid intern in BillsBasement at noware dot com
>
>
>
> --
> Unpaid intern in BillsBasement at noware dot com
_______________________________________________
Powered by www.kitware.com
Visit other Kitware open-source projects at
http://www.kitware.com/opensource/opensource.html
Kitware offers ITK Training Courses, for more information visit:
http://kitware.com/products/protraining.php
Please keep messages on-topic and check the ITK FAQ at:
http://www.itk.org/Wiki/ITK_FAQ
Follow this link to subscribe/unsubscribe:
http://public.kitware.com/mailman/listinfo/insight-developers
More information about the Community
mailing list