From francois.budin at kitware.com Mon Apr 2 14:12:25 2018 From: francois.budin at kitware.com (Francois Budin) Date: Mon, 2 Apr 2018 14:12:25 -0400 Subject: [ITK-dev] [ITK-users] [ANN] ITK 5.0.0 alpha is coming soon! Message-ID: Hello fellow ITK developers, We are planning to tag ITK 5.0.0 alpha later this week (around April 6th). Prior to this, there will be a freeze in the patches that are merged into ITK. This week, we will be careful to only merge patches that solves important bugs and help to clean up the dashboard. More improvements will be integrated into ITK 5.0.0 before the final release is tagged. The alpha tag does not mean that this is a feature freeze for ITK 5.0.0. We will follow the usual ITK release process and create release candidates when the real feature freeze happens. This alpha release is a preview to allow developers to get their code ready for this exciting new ITK version that integrates a large number of great improvements. -------------- next part -------------- An HTML attachment was scrubbed... URL: From matt.mccormick at kitware.com Tue Apr 17 17:13:32 2018 From: matt.mccormick at kitware.com (Matt McCormick) Date: Tue, 17 Apr 2018 17:13:32 -0400 Subject: [ITK-dev] [ANN] ITK 5.0 Alpha 1: Modern C++ Message-ID: *ITK 5.0 Alpha 1 is ready for testing!* * - Source code (zip) - Source code (tar.gz) * ITK 5.0 brings dramatic improvements to ITK's API and performance. At the same time, there are minimal changes that break backwards compatibility. This the first in a series of alpha releases to enable the community to test and improve these major changes. In this first alpha release, we highlight ITK's adoption of and requirement for the *C++11 standard*. Prior to this release, a subset of C++11 functionality was utilized, when available, through backports and macros. ITKv5 deprecates or removes these macros (e.g. ITK_NULLPTR, ITK_DELETED_FUNCTION, ITK_NOEXCEPT, ITK_CONSTEXPR) and directly uses C++11 keywords such as delete , constexpr , nullptr , override , noexcept . The keywords auto and using as well as range-based loops are also now used heavily throughout ITK. ITKv5 includes some API changes. Even though we tried to minimize backward compatibility issues, there will be a few (see below for important changes). These changes were discussed by the community on the ITK Discourse forum [1] [2] [3] [4] . This ITK alpha release is purposefully created with the goal of helping developers to test their current software with this new ITK version, update their code if necessary, and report problems they encountered during this process. ITK now requires CMake 3.9.5 for configuration and a compiler that supports C++11. This means that Visual Studio 2015 or later is required for Windows development with the Microsoft toolchain. Important changes in style have also been integrated in ITK to match the C++11 best practices. This includes replacing typedef calls with the using keyword, the usage of the keyword auto when appropriate, and moving the macro ITK_DISALLOW_COPY_AND_ASSIGN from the private class section to the public class section. The ITK Software Guide has been updated to match these changes. As shown below, toolkit has adopted the application of the using keyword for type aliases , which many developers find easier to read and understand. template< typename TInputImage, typename TOutputImage > class ITK_TEMPLATE_EXPORT BoxImageFilter: public ImageToImageFilter< TInputImage, TOutputImage > { public: ITK_DISALLOW_COPY_AND_ASSIGN(BoxImageFilter); /?? Standard class type alias. ?/ using Self = BoxImageFilter; using Superclass = ImageToImageFilter< TInputImage, TOutputImage >; [...] protected: BoxImageFilter(); ~BoxImageFilter() {} void GenerateInputRequestedRegion() override; void PrintSelf(std::ostream & os, Indent indent) const override; private: RadiusType m_Radius; }; } // end namespace itk For more information on style changes, see the Coding Style Guide found in the ITK Software Guide. To test the 5.0 Alpha 1 Python packages, run python -m pip install --upgrade pip python -m pip install --upgrade --pre itk For a full list of the new features and changes in API, please review the log below. The community has been busy -- there have been *319 commits, 97,794 insertions, 152,791 deletions* since 4.13.0 was released in December! Please discuss your experiences on Discourse . The API is expected to change across alpha releases as we improve the library based on our experiences. Changes from v4.13.0 to v5.0 Alpha1 ------------------------------------------------ Bradley Lowekamp (49): ENH: Adding more swap methods BUG: Respect Visibility Preset for initial template visibility COMP: Use explicit equality for boolean evaluation of real number BUG: Keep the SetSeed# methods in IsolatedConnectedImageFilter ENH: Use direct for loops for implementing image transformations COMP: Use anonymous namespace for internal linkage ENH: Mark 2 template parameter ModulusTransform to be removed COMP: Remove legacy marking on definition of SetSeed methods STYLE: Use itk::v3 nested namespace for Rigid3DTransform BUG: Preserve option to use a "label value" mask and boolean mask ENH: update C+11 headers and try compile for headers ENH: Remove duplicated CMake module from upstream CMake COMP: Explicitly include the fixed width integer header before usage COMP: Update SimpleITKFilters for dependency issues BUG: The CXX language must be enable to check compiler variables PERF: Support move semantics for ITK smart pointers ENH: Remove usage of SmartPointerForward reference ENH: Remove unneeded internal smart pointer type COMP: Require MSVC VS14 2015 for C++11 compatibility ENH: Use C++11 template alias for Image::Rebind STYLE: Use copy-swap idiom for SmartPointer ENH: Use std::unique_ptr over itk::AutoPointer DOC: Document additional MaskValue variable BUG: remove unused cmake CXX try compile file BUG: Remove un-configured and unused CMake configure define BUG: Improve Doxygen extraction with blank line ENH: Remove TEMPLATED_FRIEND macro and try compile ENH: Replace optional tr1 type_traits with c++11 standard ENH: Assume c++11, remove configure defines for optional TR1 features BUG: Add missing extensions to ImageIO ENH: Only use std::atomic implementation for AtomicInt class ENH: Add direct SmartPointer conversions to match raw Pointers PERF: Use emplace when inserting into map for ProcessObject ENH: Create virtual interface for the MultiTheader ENH: Trying out the ThreadPool as a separate MultiThreader BUG: Fix uninitialized cross structuring element buffer BUG: Disable ThreadPools by default COMP: Add forward declaration of ExceptionObject in Macro.h COMP: Add forward declaration of ExceptionObject in Macro.h ENH: Use gtest_discover_tests if available DOC: Watershed filters is not stream-able COMP: Use nullptr over 0 for null pointer STYLE: Use SmartPointer direct conversion constructors Revert "BUG: Disable ThreadPools by default" BUG: Actually disable ThreadPools by default COMP: Suppress warning on CircleCI about itkIndex out of bounds ENH: Update CircleCI external data cache ENH: Address incorrect types with neighborhood iterator base class COMP: Make MirrorPadImageFilter::DelayBase a conventional parameter Bryce A Besler (1): ENH: Move DiscreteGaussianDerivativeImageFilter from Review to ITKImageFeature D?enan Zuki? (27): ENH: updating SphinxExamples and pointing to GitHub COMP: Get rid of warning about registry key STYLE: minor fixes BUG: duplicator crashes if buffered region is smaller than largest region STYLE: reducing code duplication and cleaning up method documentation ENH: adding itkReviewPrintTest to tests. It existed but was not invoked. COMP: turn FEM off by default, as it takes a long time to build COMP: fixing compiler warnings ENH: making ITKBioCell and ITKNeuralNetworks remote modules COMP: fixing configure error COMP: long paths are not yet supported by all the tools in the build chain COMP: using ITK_DELETED_FUNCTION, and more consistent override specifier ENH: simplify code and properly support long long type COMP: fix compile warning STYLE: avoid redirect for repository address in DVMeshNoise ENH: update remote modules to require CMake 3.9.5 BUG: fixing crash in test ENH: Remove ITKFEMRegistration from default configuration ENH: Fixing error and improving examples' test ENH: Use MultiThreaderBase STYLE: reducing duplication and removing commented code in DistanceMap tests STYLE: fixing typo BUG: more reliably detect Windows+DLLs case ENH: enable thread pool by default ENH: adding exponential decay option to MirrorPadImageFilter BUG: Set/GetGlobalDefaultNumberOfThreads was forgotten in legacy #ifdef BUG: fixing Windows+DLL ThreadPool sporadic destructor hanging Francois Budin (17): BUG: Update ITK test files SHA and debug ContentLinkSynchronization.sh ENH: Bump ITK version to 5.0.0. ENH: lifting path length limitation on Windows 10 version 1607+ BUG: Remove bad guards stopping inclusion of necessary hxx file BUG: Remove extern "C" call to include BUG: Initializes CMAKE_DEBUG_POSTFIX to be empty BUG: Initializes CMAKE_DEBUG_POSTFIX to be empty DOC: Remove CMake comments mentioning CMake 3.4 DOC: ITK_CONSTEXPR* and ITK_HAS_CXX11_RVREF are deprecated BUG: DCMTK builds fails with ICU ON on Linux and Mac BUG: LabelErodeDilate remote module repositories are out of sync BUG: Projects could not link to DCMTK on Windows and MacOS DOC: Add missing documentation for `github_compare` option ENH: Update CMake code to use IN_LIST (CMake >= 3.3) BUG: Update LabelErodeDilate ENH: Compile ITK with MKL (FFTW) installed on system BUG: Update ParabolicMorphology remote module Gregory C. Sharp (1): DOC: Fix misspelling of vertices Hans Johnson (86): ENH: Update Wiki examples for latest code changes COMP: Remove override warnings ENH: Cuberille future compilation deprecations ENH: Strain future compilation deprecations COMP: TwoProjectionRegistration Future proof code COMP: LevelSetsv4 used deprecated api COMP: N4 remove testing of deprecated SetMaskLabel BUG: Provide consistent GetOutput behavior BUG: GetModifiableTransformList needs to always be available BUG: Restore backwards compatibility DOC: Remove ITKv3 to ITKv4 migration documentation. COMP: Provide migration documentation old macros STYLE: Remove deprecated code directory contents STYLE: Remove all vestiges of ITKv3 code STYLE: Remove legacy code for ITKv5 starting ENH: Revert to include itkv3::Rigid3DTransform STYLE: Move Future deprecated to deprecated BUG: Restored testing for long HistorgramMatching COMP: Remove unnecessary conditional tests COMP: Force using lower deployment targert for fftw COMP: Use C++ headers over C headers COMP: Set ITK_VERSION_MAJOR to 5 STYLE: Fix header guard format COMP: Remove ITK_USE_STRICT_CONCEPT_CHECKING flag ENH: Set cmake Minimums to 3.9.5 COMP: Change min cmake version to 3.9.5 for circleci COMP: Directly use cmake compiler_detection.h STYLE: Fix typo requireing -> requiring COMP: Consistently set use of CMake 3.9.5 and options COMP: Enforce building ITK with C++11 COMP: Modularize cmake config like VTK. COMP: Use C++ headers over C headers (part 2) ENH: Scripts used during ITKv5 migration STYLE: Remove conditional version 201103L code COMP: Need to match type for different threaders COMP: Preparing for ITKv5 by adding override COMP: Use C++11 override directly STYLE: Use override statements for C++11 COMP: Use C++11 ITK_NULLPTR directly COMP: Use nullptr instead of 0 or NULL STYLE: Prefer nullptr for C++11 COMP: Use C++11 nullptr directly BUG: VXL visibility must match ITK visibility COMP: Use C++11 = delete directly COMP: Use C++11 constexpr directly STYLE: ITK_COMPILER_CXX_CONSTEXPR is always true BUG: Missing external linkage options for float and double. COMP: Remove deprecated C++ 11 features ENH: ReplaceitkGetObjectMacro.sh used during ITKv5 migration ENH: Update SeveralRemotes to latest version. COMP: Suppress invalid warning STYLE: Remove outdated conditional code STYLE: Remove unnecessary old CMakeCode ENH: Remote for SmoothingRecursiveYvvGaussianFilter STYLE: Prefer C++11 type alias over typedef BUG: Type alias errent typo in name BUG: ConceptChecking type matching failed. STYLE: Remove ITK_HAS variables that should not be defined COMP: Allow using cmake 3.9.5 default for RPATH setting STYLE: Replace itkStaticConstMacro with static constexpr BUG: Propagate C++11 requirements to external project STYLE: Prefer constexpr for const numeric literals STYLE: Use range-based loops from C++11 PERF: Allow compiler to choose best way to construct a copy PERF: Replace explicit return calls of constructor STYLE: Use auto for variable creation BUG: Restore ITK.kws.xml preferences ENH: Provide advanced development mode for writing GTests COMP: Use C++11 noexcept directly ENH: Use simplified/natural conversion to const pointer ENH: Use natural ConstPointer conversion STYLE: Use override statements for C++11 COMP: Use C++11 noexcept directly ENH: Add google test for itkIndex.h ENH: Make const operator[] conform to standards STYLE: Change aggregate classes to mirror std::array ENH: Update all remote modules with C++11 conformance BUG: New SmartPointer conversion ambiguity BUG: Error in ITK_VERSION construction ENH: Add introspection into the build process COMP: Silence warning of mismatched signs. ENH: Bring in C++11 updates for ITKBridgeNumPy STYLE: Do not use itkGetStaticConstMacro in ITK COMP: Make member name match kwstyle requirements. BUG: Add ability to construct SmartPointer with NULL BUG: Update NULL pointer patch with final fixes Hastings Greer (1): ENH: Add wrapping for Labeled PointSet to PointSet registration classes Jean-Christophe Fillion-Robin (3): BUG: Prevent gdcm "missing implementation" error on macOS BUG: Prevent gdcm "missing implementation" error on macOS STYLE: MeshIO: Introduce ITKIOMeshBase module. See #3393 Jon Haitz Legarreta (8): STYLE: Fix typo in itk::VariableLengthVector struct name. ENH: Set the InsightSoftwareConsortium repo as the remote. STYLE: Improve itkHoughTransform2DLinesImageFilter style. DOC: Add different GitHub badges to the `README.md` file. DOC: Change the ITK Git tips wiki page reference for Git scm website. DOC: Add commands in a `Review` section to the ITK Git cheat sheet. DOC: Change the `ITKGitCheatSheet.tex` file tittle. DOC: Make references to ITK issue tracking system consistent. Jon Haitz Legarreta Gorro?o (19): BUG: Fix bug in class LaTeX documentation Doxygen link. BUG: Fix unnecessary explicit itk namespace mention in Doxygen link. DOC: Remove redundant ellipsis after "etc." in LaTeX doc. DOC: Remove unnecessary EOF comments. DOC: Make namespace closing bracket comments consistent. DOC: Fix typo: substract to subtract. DOC: Remove unnecessary ifdef and class ending comments in FEM. DOC: Remove non-existing namespace comment. ENH: Add a code of conduct to the ITK project. ENH: Bump latest version of the ITKSplitComponents remote module. DOC: Remove unnecessary Doxygen \ref keyword in module crossrefs. DOC: Remove crossrefs to non-existing classes. DOC: Improve the ISSUE_TEMPLATE.md markdown file contents. DOC: Change the term `mailing list` in README.md. DOC: Fix syntax mistake in `Sharing Data` section of CoC. DOC: Fix typos in class doc. ENH: Add Python wrap file to itk::MultiResolutionPDEDeforableRegistration. STYLE: Update the wrap files to match current CMake syntax. DOC: Fix typo. KWSys Upstream (1): KWSys 2018-01-08 (f7990fc2) Marcus D. Hanwell (1): DOC: Add GitCheatSheet sources Martino Pilia (2): BUG: fix itkFormatWarning in Python wrapping BUG: fix itkFormatWarning in Python wrapping Matthew McCormick (46): BUG: Remove ITKTubeTK remote ENH: Add wrapping for BSplineTransformInitializer ENH: Add PolarTransform remote module COMP: Do not use absolute path to TestBigEndian.cmake in GDCM COMP: Enable pthreads shim with Emscripten COMP: Do not use absolute path to TestBigEndian.cmake in GDCM COMP: Enable pthreads shim with Emscripten BUG: Allow module examples to be enabled when built externally ENH: Ensure external module examples get added to current build tree COMP: Specify OutputImageType for boundary conditions in FFTPadImageFilter COMP: Update DCMTK to 2018.01.16 and support Emscripten COMP: Fix cross compiling DCMTK BUG: Do not set DCMTK_WITH_XML to ON in DCMTK configuration COMP: itk::Math perfect forward return type BUG: Do not segfault when trying to use PDEDeformableRegistrationFilter COMP: Ensure CastXML uses C++11 with GCC or Clang COMP: Remove legacy BackTransform methods from Rigid3DTransform COMP: Explicitly add NumericTraits::max to the API COMP: Address SG line length warnings in DataRepresentation, Filtering DOC: Update README Software Guide link DOC: Update Discussion link in the README ENH: Add banner to the README COMP: Bump KWStyle to 2018-02-22 master COMP: Add missing wrapping for MultiThreaderBase COMP: Do not wrap methods with ?unknown? type COMP: Add missing itkSimpleFastMutexLock headers ENH: Import the ITKBridgeNumPy module BUG: GetArrayFromImage calls UpdateLargestPossibleRegion BUG: Add missing wrapping for PoolMultiThreader BUG: Exclude MultiThreaderBase from GetNameOfClass test COMP: Add SimpleFastMutexLock include to ESMDemonsRegistrationFunction BUG: Cast to correct iterator type in PeriodicBoundaryCondition BUG: Fix casting in PeriodicBoundaryCondition COMP: Work around RegionGrow2DTest compiler error on ppc64le BUG: Bump KWStyle for C++11 brace list initialization support BUG: Fix MeshFileWriter export specification BUG: Wrap long long instead of long ENH: Create ITKIOMeshVTK module COMP: ExceptionObject declaration must come before usage ENH: Migrate BYU IO into ITKIOMeshBYU COMP: Bump ParabolicMorphology for MultiThreaderChanges COMP: Remove SmartPointer NULL initialization compatibility code DOC: Use http for issues.itk.org ENH: Migrate MultiScaleHessianBasedMeasureImageFilter out of ITKReview ENH: Move ContourExtractor2DImageFilter out of ITKReview DOC: Avoid Voronoi term when referring to the pixel center Niels Dekker (18): PERF: Improved speed of copying and resizing NeighborhoodAllocator STYLE: Removed 'char(255)' casts from NumericTraits min() and max() STYLE: Removed assignments from Neighborhood copy constructor BUG: Fixed semantics NeighborhoodAllocator operator== and operator!= BUG: GaussianDerivativeImageFunction should use image spacing consistently PERF: NeighborhoodOperatorImageFunction avoids copy ConstNeighborhoodIterator COMP: Worked around endless VS2015 Release compilation on Math::Floor PERF: Removed blurring from GaussianDerivativeImageFunction ENH: Added GetCenterPoint and SetCenterPoint to EllipseSpatialObject DOC: Explained calling GetCenterPoint() when using Hough filter->GetCircles() ENH: IsInside(point) made easier, especially for HoughTransform circles STYLE: Using C++11 auto in HoughTransform2DCirclesImageFilter PERF: GaussianDerivativeImageFunction now reuses NeighborhoodIterator objects PERF: GaussianDerivativeImageFunction constructor, RecomputeGaussianKernel() COMP: ITK_DISALLOW_COPY_AND_ASSIGN now unconditionally does '= delete' COMP: Moved ITK_DISALLOW_COPY_AND_ASSIGN calls to public section COMP: Manually moved ITK_DISALLOW_COPY_AND_ASSIGN calls to public section COMP: Moved ITK_DISALLOW_COPY_AND_ASSIGN calls in *.cxx to public section Sean McBride (19): STYLE: Fixed up confusion between base 2 and base 10 prefixes STYLE: arranged/alphabetized things to make subsequent changes reviewable COMP: Fixed some missing name mangling of libTIFF symbols BUG: fixed crash on macOS under guardmalloc from RunOSCheck() BUG: don't use double underscore, which is reserved in C++ STYLE: fixed some spelling, spacing, and comments DOC: Fixed comment about LegacyAnalyze75Mode default value BUG: Some minor cleanup and improvement after itkNiftiImageIO code review STYLE: arranged/alphabetized things to make subsequent changes reviewable COMP: Fixed some missing name mangling of libTIFF symbols BUG: Analyze 7.5 fixes/improvements COMP: Mangle HDF5 symbol names COMP: Fixed clang Wrange-loop-analysis warnings DOC: fixed minor typo in comment BUG: fixed crash on macOS under guardmalloc from RunOSCheck() COMP: Mangle HDF5 symbol names BUG: Revert part of f38b1dd4, which caused a regression ENH: Added new DetermineFileType() API to NiftiImageIO COMP: fixed clang warning about unnecessary copy in for loop Simon Rit (1): BUG: fix deadlock in FFTW for windows shared libs Taylor Braun-Jones (1): BUG: Handle single-component PLANARCONFIG_SEPARATE TIFF images (#ITK-3518) VXL Maintainers (3): VNL 2018-01-25 (ed159d55) VNL 2018-01-31 (39559d06) VNL 2018-03-04 (09a097e6) Ziv Yaniv (1): ENH: Adding user set min and max values for noise. -------------- next part -------------- An HTML attachment was scrubbed... URL: