Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ENH: Bump elastix for ITK_MODULE_TEMPLATE additions #102

Merged
merged 7 commits into from
Feb 20, 2021
Merged

Conversation

thewtex
Copy link
Member

@thewtex thewtex commented Feb 12, 2021

elastix develop branch, 2021-02-12.

elastix develop branch, 2021-02-12.
Copy link
Collaborator

@ViktorvdValk ViktorvdValk left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The notebook tests suddenly fail on this branch, due to an itk import error. A similar failure occurs on the #101 PR. I suppose the errors occur due to an erroneous build on dockerhub (v0.10.0), will one of these PRs fix these issues as well?

@thewtex
Copy link
Member Author

thewtex commented Feb 15, 2021

The notebook tests suddenly fail on this branch, due to an itk import error. A similar failure occurs on the #101 PR. I suppose the errors occur due to an erroneous build on dockerhub (v0.10.0), will one of these PRs fix these issues as well?

These failures appear to be related to a lack of 4D support in the ITK package -- which indicates it is 5.1 instead of 5.2. I will also bump the versions in the Binder requirements.txt to address this.

@thewtex
Copy link
Member Author

thewtex commented Feb 15, 2021

@N-Dekker we are observing a few small changes in the result on Linux:

https://open.cdash.org/test/342115602

Any ideas why?

Since it essentially the same result, I will increase the image comparison. tolerance.

@ViktorvdValk
Copy link
Collaborator

ViktorvdValk commented Feb 15, 2021

The segfault still occurs on this PR, so I think this elastix PR should be changed to the first version made by @thewtex, before this branch should be merged. Because @N-Dekker you changed Matts draft right?

@N-Dekker
Copy link
Collaborator

The segfault still occurs on this PR, so I think this elastix PR should be changed to the first version made by @thewtex, before this branch should be merged. Because @N-Dekker you changed Matts draft right?

I only excluded the dynamic_cast related changes from Matt's draft. Because I assumed that dynamic_cast should work fine if all classes are properly exported,

Now I wonder: are all elastix classes now indeed properly exported?

@thewtex
Copy link
Member Author

thewtex commented Feb 15, 2021

Now I wonder: are all elastix classes now indeed properly exported?

We made progress on the exports, but there are still a lot of missing ITK_TEMPLATE_EXPORT declarations. Quick find:

https://github.com/SuperElastix/elastix/blob/develop/Common/ImageSamplers/itkImageGridSampler.h

While the exports could be addressed in the future, the patch will prevent crashing on macOS for now:

SuperElastix/elastix#419

@N-Dekker
Copy link
Collaborator

@thewtex

@N-Dekker we are observing a few small changes in the result on Linux:
https://open.cdash.org/test/342115602
Any ideas why?

Thanks for asking, Matt. I'm not sure but we started using itk::NumberToString last month, to convert floating point parameter values to string: SuperElastix/elastix@e1f5dae Which might have increased the precision of the elastix registration results (the transform parameters), compared to previous versions of elastix. Could that have caused the changes that you observed?

@thewtex
Copy link
Member Author

thewtex commented Feb 15, 2021

Thanks for asking, Matt. I'm not sure but we started using itk::NumberToString last month, to convert floating point parameter values to string: SuperElastix/elastix@e1f5dae Which might have increased the precision of the elastix registration results (the transform parameters), compared to previous versions of elastix. Could that have caused the changes that you observed?

Thanks for the note, Neils. Yes, that would make sense.

@thewtex
Copy link
Member Author

thewtex commented Feb 15, 2021

@N-Dekker we are getting the build error with the OpenCL builds:

FAILED: _deps/elx-build/Components/ImageSamplers/MultInputRandomCoordinate/CMakeFiles/MultiInputRandomCoordinateSampler.dir/elxMultiInputRandomCoordinateSampler.cxx.o 
/opt/rh/devtoolset-2/root/usr/bin/g++  -DELASTIX_USE_OPENCL -DITK_IO_FACTORY_REGISTER_MANAGER -I_deps/elx-src/Common/OpenCL/Kernels -I_deps/elx-src/Common/OpenCL/Filters -I_deps/elx-src/Common/OpenCL/ITKimprovements -I_deps/elx-src/Common/OpenCL/Factories -I_deps/elx-src/Common/OpenCL -I_deps/elx-build/ITKFactoryRegistration -I../../../ITK-source/ITK/Modules/IO/MeshVTK/include -I../../../ITK-source/ITK/Modules/IO/MeshOFF/include -I../../../ITK-source/ITK/Modules/IO/MeshGifti/include -I../../../ITK-source/ITK/Modules/IO/MeshFreeSurfer/include -I../../../ITK-source/ITK/Modules/IO/MeshBYU/include -I../../../ITK-source/ITK/Modules/IO/Mesh/include -I../../../ITK-source/ITK/Modules/IO/TransformMatlab/include -I../../../ITK-source/ITK/Modules/IO/TransformInsightLegacy/include -I../../../ITK-source/ITK/Modules/IO/TransformHDF5/include -I../../../ITK-source/ITK/Modules/IO/VTK/include -I../../../ITK-source/ITK/Modules/IO/Stimulate/include -I../../../ITK-source/ITK/Modules/IO/PNG/include -I../../../ITK-source/ITK/Modules/IO/NRRD/include -I../../../ITK-source/ITK/Modules/IO/NIFTI/include -I../../../ITK-source/ITK/Modules/IO/MRC/include -I../../../ITK-source/ITK/Modules/IO/MINC/include -I../../../ITK-source/ITK/Modules/IO/TIFF/include -I../../../ITK-source/ITK/Modules/IO/LSM/include -I../../../ITK-source/ITK/Modules/IO/JPEG2000/include -I../../../ITK-source/ITK/Modules/IO/JPEG/include -I../../../ITK-source/ITK/Modules/IO/HDF5/include -I../../../ITK-source/ITK/Modules/IO/GIPL/include -I../../../ITK-source/ITK/Modules/IO/IPL/include -I../../../ITK-source/ITK/Modules/IO/GE/include -I../../../ITK-source/ITK/Modules/IO/GDCM/include -I../../../ITK-source/ITK/Modules/IO/Bruker/include -I../../../ITK-source/ITK/Modules/IO/BioRad/include -I../../../ITK-source/ITK/Modules/IO/BMP/include -I../../../ITK-source/ITK/Modules/Core/GPUCommon/include -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/DoubleConversion/src/double-conversion -I../../../ITK-source/ITK/Modules/ThirdParty/DoubleConversion/src -I../../../ITK-source/ITK/Modules/Core/TestKernel/include -I../../../ITK-source/ITK/Modules/Filtering/ImageSources/include -I../../../ITK-source/ITK/Modules/Filtering/ImageFeature/include -I../../../ITK-source/ITK/Modules/Registration/Common/include -I../../../ITK-source/ITK/Modules/Numerics/Optimizers/include -I../../../ITK-source/ITK/Modules/IO/XML/include -I../../../ITK-source/ITK/Modules/IO/TransformFactory/include -I../../../ITK-source/ITK/Modules/IO/TransformBase/include -I../../../ITK-source/ITK/Modules/IO/Meta/include -I../../../ITK-source/ITK/Modules/IO/MeshOBJ/include -I../../../ITK-source/ITK/Modules/Segmentation/Voronoi/include -I../../../ITK-source/ITK/Modules/Core/QuadEdgeMesh/include -I../../../ITK-source/ITK/Modules/Core/Mesh/include -I../../../ITK-source/ITK/Modules/IO/MeshBase/include -I../../../ITK-source/ITK/Modules/IO/ImageBase/include -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/IO/ImageBase -I../../../ITK-source/ITK/Modules/Filtering/ImageGradient/include -I../../../ITK-source/ITK/Modules/ThirdParty/Expat/src/expat -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/Expat/src/expat -I../../../ITK-source/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/DataStructureAndEncodingDefinition -I../../../ITK-source/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/MessageExchangeDefinition -I../../../ITK-source/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/InformationObjectDefinition -I../../../ITK-source/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/Common -I../../../ITK-source/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/DataDictionary -I../../../ITK-source/ITK/Modules/ThirdParty/GDCM/src/gdcm/Source/MediaStorageAndFileFormat -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/GDCM/src/gdcm/Source/Common -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/GDCM -I../../../ITK-source/ITK/Modules/Core/FiniteDifference/include -I../../../ITK-source/ITK/Modules/Filtering/CurvatureFlow/include -I../../../ITK-source/ITK/Modules/Numerics/NarrowBand/include -I../../../ITK-source/ITK/Modules/Filtering/Thresholding/include -I../../../ITK-source/ITK/Modules/Segmentation/ConnectedComponents/include -I../../../ITK-source/ITK/Modules/Filtering/MathematicalMorphology/include -I../../../ITK-source/ITK/Modules/Filtering/ImageLabel/include -I../../../ITK-source/ITK/Modules/Filtering/LabelMap/include -I../../../ITK-source/ITK/Modules/Filtering/BinaryMathematicalMorphology/include -I../../../ITK-source/ITK/Modules/Filtering/DistanceMap/include -I../../../ITK-source/ITK/Modules/Filtering/Smoothing/include -I../../../ITK-source/ITK/Modules/Filtering/Path/include -I../../../ITK-source/ITK/Modules/ThirdParty/ZLIB/src -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/ZLIB/src -I../../../ITK-source/ITK/Modules/ThirdParty/MetaIO/src/MetaIO/src -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/MetaIO/src/MetaIO/src -I../../../ITK-source/ITK/Modules/Core/SpatialObjects/include -I../../../ITK-source/ITK/Modules/Filtering/ImageCompose/include -I../../../ITK-source/ITK/Modules/Filtering/ImageStatistics/include -I../../../ITK-source/ITK/Modules/Filtering/ImageIntensity/include -I../../../ITK-source/ITK/Modules/Filtering/ImageFilterBase/include -I../../../ITK-source/ITK/Modules/Core/Transform/include -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/Netlib -I../../../ITK-source/ITK/Modules/Numerics/Statistics/include -I../../../ITK-source/ITK/Modules/Core/ImageAdaptors/include -I../../../ITK-source/ITK/Modules/Core/ImageFunction/include -I../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include -I../../../ITK-source/ITK/Modules/Filtering/DisplacementField/include -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/VNL/src/vxl/core -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/VNL/src/vxl/vcl -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/VNL/src/vxl/v3p/netlib -I../../../ITK-source/ITK/Modules/ThirdParty/VNL/src/vxl/core -I../../../ITK-source/ITK/Modules/ThirdParty/KWIML/src -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/KWIML/src -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/Eigen3/src -I../../../ITK-source/ITK/Modules/Core/Common/include -I../../../ITK-cp37-cp37m-manylinux1_x64/Modules/Core/Common -I_deps/elx-src/Common -I_deps/elx-src/Common/CostFunctions -I_deps/elx-src/Common/ImageSamplers -I_deps/elx-src/Common/LineSearchOptimizers -I_deps/elx-src/Common/ParameterFileParser -I_deps/elx-src/Common/Transforms -I_deps/elx-src/Common/xout -I_deps/elx-src/Common/MevisDicomTiff -I_deps/elx-src/Core -I_deps/elx-src/Core/Install -I_deps/elx-src/Core/Kernel -I_deps/elx-src/Core/ComponentBaseClasses -I_deps/elx-src/Core/Configuration -I_deps/elx-src/Core/Main -I_deps/elx-src/Components/FixedImagePyramids -I_deps/elx-src/Components/ImageSamplers -I_deps/elx-src/Components/Interpolators -I_deps/elx-src/Components/Metrics -I_deps/elx-src/Components/MovingImagePyramids -I_deps/elx-src/Components/Optimizers -I_deps/elx-src/Components/Registrations -I_deps/elx-src/Components/ResampleInterpolators -I_deps/elx-src/Components/Resamplers -I_deps/elx-src/Components/Transforms -I_deps/elx-build -isystem ../../../ITK-source/ITK/Modules/ThirdParty/VNL/src/vxl/vcl -isystem ../../../ITK-source/ITK/Modules/ThirdParty/VNL/src/vxl/v3p/netlib -isystem ../../../ITK-cp37-cp37m-manylinux1_x64/Modules/ThirdParty/KWSys/src -isystem ../../../ITK-source/ITK/Modules/ThirdParty/Eigen3/src/itkeigen/.. -isystem ../../../ITK-source/ITK/Modules/ThirdParty/VNL/src/vxl/core/vnl/algo -isystem ../../../ITK-source/ITK/Modules/ThirdParty/VNL/src/vxl/core/vnl -Wno-aggressive-loop-optimizations  -Wno-array-bounds -O3 -DNDEBUG -fPIC   -std=gnu++11 -MD -MT _deps/elx-build/Components/ImageSamplers/MultInputRandomCoordinate/CMakeFiles/MultiInputRandomCoordinateSampler.dir/elxMultiInputRandomCoordinateSampler.cxx.o -MF _deps/elx-build/Components/ImageSamplers/MultInputRandomCoordinate/CMakeFiles/MultiInputRandomCoordinateSampler.dir/elxMultiInputRandomCoordinateSampler.cxx.o.d -o _deps/elx-build/Components/ImageSamplers/MultInputRandomCoordinate/CMakeFiles/MultiInputRandomCoordinateSampler.dir/elxMultiInputRandomCoordinateSampler.cxx.o -c _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx
In file included from ../../../ITK-source/ITK/Modules/Core/Common/include/itkSliceIterator.h:23:0,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhood.h:24,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageBoundaryCondition.h:22,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhoodAccessorFunctor.h:21,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImage.h:28,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageSource.h:32,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageToImageFilter.h:31,
                 from ../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include/itkChangeInformationImageFilter.h:21,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:38,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray: In instantiation of ‘class std::valarray<xoutlibrary::xoutbase>’:
_deps/elx-src/Common/CostFunctions/itkAdvancedImageToImageMetric.hxx:273:20:   required from here
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray:926:5: error: cannot allocate an object of abstract type ‘xoutlibrary::xoutbase’
     valarray<_Tp>::sum() const
     ^
In file included from _deps/elx-src/Common/xout/xoutmain.h:22:0,
                 from _deps/elx-src/Core/Configuration/elxConfiguration.h:27,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:33,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
_deps/elx-src/Common/xout/xoutbase.h:40:7: note:   because the following virtual functions are pure within ‘xoutlibrary::xoutbase’:
 class xoutbase
       ^
_deps/elx-src/Common/xout/xoutbase.h:52:11: note: 	virtual xoutlibrary::xoutbase::~xoutbase()
   virtual ~xoutbase() = 0;
           ^
In file included from ../../../ITK-source/ITK/Modules/Core/Common/include/itkSliceIterator.h:23:0,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhood.h:24,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageBoundaryCondition.h:22,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhoodAccessorFunctor.h:21,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImage.h:28,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageSource.h:32,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageToImageFilter.h:31,
                 from ../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include/itkChangeInformationImageFilter.h:21,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:38,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray:1033:5: error: cannot allocate an object of abstract type ‘xoutlibrary::xoutbase’
     valarray<_Tp>::min() const
     ^
In file included from _deps/elx-src/Common/xout/xoutmain.h:22:0,
                 from _deps/elx-src/Core/Configuration/elxConfiguration.h:27,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:33,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
_deps/elx-src/Common/xout/xoutbase.h:40:7: note:   since type ‘xoutlibrary::xoutbase’ has pure virtual functions
 class xoutbase
       ^
In file included from ../../../ITK-source/ITK/Modules/Core/Common/include/itkSliceIterator.h:23:0,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhood.h:24,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageBoundaryCondition.h:22,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhoodAccessorFunctor.h:21,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImage.h:28,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageSource.h:32,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageToImageFilter.h:31,
                 from ../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include/itkChangeInformationImageFilter.h:21,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:38,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray:1041:5: error: cannot allocate an object of abstract type ‘xoutlibrary::xoutbase’
     valarray<_Tp>::max() const
     ^
In file included from _deps/elx-src/Common/xout/xoutmain.h:22:0,
                 from _deps/elx-src/Core/Configuration/elxConfiguration.h:27,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:33,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
_deps/elx-src/Common/xout/xoutbase.h:40:7: note:   since type ‘xoutlibrary::xoutbase’ has pure virtual functions
 class xoutbase
       ^
In file included from ../../../ITK-source/ITK/Modules/Core/Common/include/itkSliceIterator.h:23:0,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhood.h:24,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageBoundaryCondition.h:22,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhoodAccessorFunctor.h:21,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImage.h:28,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageSource.h:32,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageToImageFilter.h:31,
                 from ../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include/itkChangeInformationImageFilter.h:21,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:38,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray:1049:5: error: cannot allocate an object of abstract type ‘xoutlibrary::xoutbase’
     valarray<_Tp>::apply(_Tp func(_Tp)) const
     ^
In file included from _deps/elx-src/Common/xout/xoutmain.h:22:0,
                 from _deps/elx-src/Core/Configuration/elxConfiguration.h:27,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:33,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
_deps/elx-src/Common/xout/xoutbase.h:40:7: note:   since type ‘xoutlibrary::xoutbase’ has pure virtual functions
 class xoutbase
       ^
In file included from ../../../ITK-source/ITK/Modules/Core/Common/include/itkSliceIterator.h:23:0,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhood.h:24,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageBoundaryCondition.h:22,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhoodAccessorFunctor.h:21,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImage.h:28,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageSource.h:32,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageToImageFilter.h:31,
                 from ../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include/itkChangeInformationImageFilter.h:21,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:38,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray:1057:5: error: cannot allocate an object of abstract type ‘xoutlibrary::xoutbase’
     valarray<_Tp>::apply(_Tp func(const _Tp &)) const
     ^
In file included from _deps/elx-src/Common/xout/xoutmain.h:22:0,
                 from _deps/elx-src/Core/Configuration/elxConfiguration.h:27,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:33,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
_deps/elx-src/Common/xout/xoutbase.h:40:7: note:   since type ‘xoutlibrary::xoutbase’ has pure virtual functions
 class xoutbase
       ^
In file included from ../../../ITK-source/ITK/Modules/Core/Common/include/itkSliceIterator.h:23:0,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhood.h:24,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageBoundaryCondition.h:22,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkNeighborhoodAccessorFunctor.h:21,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImage.h:28,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageSource.h:32,
                 from ../../../ITK-source/ITK/Modules/Core/Common/include/itkImageToImageFilter.h:31,
                 from ../../../ITK-source/ITK/Modules/Filtering/ImageGrid/include/itkChangeInformationImageFilter.h:21,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:38,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
/opt/rh/devtoolset-2/root/usr/include/c++/4.8.2/valarray:1016:5: error: cannot allocate an object of abstract type ‘xoutlibrary::xoutbase’
     valarray<_Tp>::resize(size_t __n, _Tp __c)
     ^
In file included from _deps/elx-src/Common/xout/xoutmain.h:22:0,
                 from _deps/elx-src/Core/Configuration/elxConfiguration.h:27,
                 from _deps/elx-src/Core/Kernel/elxElastixBase.h:33,
                 from _deps/elx-src/Core/Kernel/elxElastixTemplate.h:21,
                 from _deps/elx-src/Core/Install/elxIncludes.h:39,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.h:21,
                 from _deps/elx-src/Components/ImageSamplers/MultInputRandomCoordinate/elxMultiInputRandomCoordinateSampler.cxx:19:
_deps/elx-src/Common/xout/xoutbase.h:40:7: note:   since type ‘xoutlibrary::xoutbase’ has pure virtual functions
 class xoutbase

Does this ring a bell?

@ViktorvdValk
Copy link
Collaborator

If this branch can point to the most recent elastix update . The MacOS issue will at least be fixed wrt the segfault and issue #52 can finally be closed :).
And I'll then update the import statements in the example notebooks accordingly.
Great effort @thewtex and @N-Dekker!

@thewtex thewtex force-pushed the elastix-bump branch 2 times, most recently from 7c24311 to f6714e2 Compare February 19, 2021 16:25
@N-Dekker
Copy link
Collaborator

@thewtex

we are getting the build error with the OpenCL builds:
FAILED: _deps/elx-build/Components/ImageSamplers/MultInputRandomCoordinate/CMakeFiles/MultiI
...
Does this ring a bell?

Honestly no. Can you give me another clue, please? So the compilation of various valarray<_Tp> member function calls appears to fail, just because xoutbase has become an abstract base class?

@thewtex
Copy link
Member Author

thewtex commented Feb 20, 2021

@N-Dekker with the update to ITK 5.2, the manylinux2014 compiler we no longer have the error.

@thewtex thewtex merged commit 314df2f into master Feb 20, 2021
@thewtex thewtex deleted the elastix-bump branch February 20, 2021 02:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants