InsightSoftwareConsortium / ITK

Insight Toolkit (ITK) -- Official Repository. ITK builds on a proven, spatially-oriented architecture for processing, segmentation, and registration of scientific images in two, three, or more dimensions.
https://itk.org
Apache License 2.0
1.38k stars 661 forks source link

Upgrade SWIG from version 4.0.2 to version 4.1.0 or higher, please! #4536

Closed N-Dekker closed 3 months ago

N-Dekker commented 3 months ago

https://github.com/InsightSoftwareConsortium/ITK/blob/ac1ebe6dcf02f022f02cc8748fd14f9b9dc9266c/Wrapping/Generators/SwigInterface/CMakeLists.txt#L17-L18

std::unique_ptr is an essential utility to prevent memory leaks, as well as multiple delete's on one pointer (which would cause undefined behavior, possibly leading to crashes). It is also useful as function parameter type, to indicate that the function takes ownership of the object that is passed as argument.

SWIG 4.1.0 (released in 2022) appears to be the first version to support std::unique_ptr: https://sourceforge.net/p/swig/news/2022/10/swig-410-released/

The most recent release is version 4.2.1. That version appears to have even more modern C++ support: https://swig.org

Can you please upgrade SWIG? At least to version 4.1.0, but the latest version appears even better 😃


For the record, SimpleITK is currently at SWIG version 4.1.1: https://github.com/SimpleITK/SimpleITK/blob/8e29d4902cdbc91b03578fa654b06d868b08f03c/SuperBuild/External_Swig.cmake#L22

github-actions[bot] commented 3 months ago

Thank you for contributing an issue! 🙏

Welcome to the ITK community! 🤗👋☀️

We are glad you are here and appreciate your contribution. Please keep in mind our community participation guidelines. 📜 Also, please check existing open issues and consider discussion on the ITK Discourse. 📖

This is an automatic message. Allow for time for the ITK community to be able to read the issue and comment on it.