Patches for ITK 4.13.2

Hi folks,

The next patch (bugfix) release, ITK 4.13.2, is planned for February 19th.

Patches currently staged on the Git release-4.13 branch are:

Bai Shi (1):
      COMP: To fix compilation error of "cannot dynamic_cast 'x'

Bradley Lowekamp (8):
      BUG: Support ITK transform files with corrected group names
      BUG: Update SCIOFIO to ITKv4.13 branch
      BUG: Handle boundary case with max metric
      BUG: Remove static member function variable
      BUG: Synchronize BSpline MeshDomain parameters from fixed params
      COMP: Address CMake policy warnings in ThirdParty libraries
      ENH: Update AzurePipelines configuration from master
      ENH: Explicitly set the XCode version used in Azure

Dženan Zukić (2):
      STYLE: fixing 'No new line at the end of file'
      ENH: ITKv5_CONST macro for VerifyPreconditions() and VerifyInputInformation()

Isaiah Norton (2):
      BUG: prevent segfault when transform reader fails to load .mat
      BUG: don't quote argument to URL_HASH for FFTW

Matthew McCormick (4):
      BUG: Use manylinux to build CastXML linux executable
      COMP: Address empty _FILE_OFFSET_BITS in tif_config.h with MinGW64
      BUG: Remove duplicate ITK version number
      ENH: Add Azure Pipelines configuration

Niels Dekker (2):
      COMP: Fixed GDCM OpenJPEG name mangling
      PERF: Remove SystemInformation data from ResourceProbe, fix issue #350

Are there other patches that are missing? Patches should be critical bugfixes, improved support for compilers, and documentation fixes.

2 Likes

Thanks, @matt.mccormick! I’m especially happy about “_PERF: Remove SystemInformation data from ResourceProbe”, of course, as it will yield a huge performance improvement for elastix.

You might still consider the following commit, as it involves just two lines of code, and yields quite a large performance improvement for N4BiasFieldCorrectionImageFilter:

The original pull request:

There are a couple outstayed compilation issue on the CI for the release-4.13 branch for MacOSX:
https://open.cdash.org/buildSummary.php?buildid=5742718

  1. There is a CMake Warning:
CMake Warning (dev):
  Policy CMP0042 is not set: MACOSX_RPATH is enabled by default.  Run "cmake
  --help-policy CMP0042" for policy details.  Use the cmake_policy command to
  set the policy and suppress this warning.

  MACOSX_RPATH is not specified for the following targets:

   gdcmcharls
   gdcmjpeg12
   gdcmjpeg16
   gdcmjpeg8
   gdcmsocketxx
   gdcmuuid

This warning is for project developers.  Use -Wno-dev to suppress it.
-- Generating done

I recently had some linking issues with one of these libraries with SimpleITK against 4.13.1 on OsX, so there may be a really issue here.

Additionally there are a bunch of compilation warning of the following form:

Modules/Core/Common/test/itkNumericTraitsTest.cxx:129:108: warning: instantiation of variable 'itk::NumericTraits<itk::CovariantVector<char, 1> >::Zero' required here, but no definition is available [-Wundefined-var-template]

This may be related to C++11 I believe the Xcode compiler is defaulting to C++11 in Xcode 9.

Beyond OSX there is the following wrapping CMake warnings:

CMake Warning (dev) at Wrapping/CMakeLists.txt:30 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The following variable(s) would be set to empty:

    PROJECT_VERSION
    PROJECT_VERSION_MAJOR
    PROJECT_VERSION_MINOR
    PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

CMake Warning (dev) at Modules/Remote/BridgeNumPy/CMakeLists.txt:2 (project):
  Policy CMP0048 is not set: project() command manages VERSION variables.
  Run "cmake --help-policy CMP0048" for policy details.  Use the cmake_policy
  command to set the policy and suppress this warning.

  The following variable(s) would be set to empty:

    PROJECT_VERSION
    PROJECT_VERSION_MAJOR
    PROJECT_VERSION_MINOR
    PROJECT_VERSION_PATCH
This warning is for project developers.  Use -Wno-dev to suppress it.

And there is the Windows Python build:
https://open.cdash.org/buildSummary.php?buildid=5742715

I am going to investigate my share libraries on OSX. If anyone has additional information on these warning and how they have been resolved in master please chime in.

It’s not fixed in master yet, but it would be good to have this fixed in 4.x branch too:

https://github.com/InsightSoftwareConsortium/ITK/issues/424

Sean

Does anyone think it would be nice to have this in ITK 4.13? I leave it up to you.

I’m especially happy about “_PERF: Remove SystemInformation data from ResourceProbe” ,

Yes, that fix was quite important! Thanks again!

You might still consider the following commit, as it involves just two lines of code, and yields quite a large performance improvement for N4BiasFieldCorrectionImageFilter :

Our bug-fix releases are limited in scope to bug fixes, and in general we do not add performance related patches to bug-fix releases. This is standard practice for semantic versioning, matching expectations for the release content and avoiding bugs that may come along with the performance improvement. The previously mentioned patch is an exception since it passes into the bug-fix category.

The referenced performance patches (along with many other awesome performance improvements) are available in ITK 5.0 RC 1 – everyone is encourage to try it, if they have not already!

1 Like

I have one more patch to address the CMP0048 warnings in ITK wrapping and external modules:

I created this issue to track this.

Given that VXL has moved on with a major refactoring and C++11, this is a warning for a maintenance-mode branch, I do not think these are worth fixing.

I created this issue to track this.

I created this issue to track this.

1 Like

Yes, if a patch is ready for this issue in time for 4.13.2, we will certainly include it.