ENH: Update vendored VNL to for/itk-vxl-master-7829892 (vnl_math:: deprecation + sqrteps fix)#6431
Conversation
1a0e902 to
7e780e9
Compare
|
Repointed the pin fd75e8b → 7829892: same content plus a |
This comment was marked as low quality.
This comment was marked as low quality.
|
@hjmjohnson What you are doing in ITK's forks is not following the documentation in the welcome. The documentation does not mention creating a tag. Also the SHA using in the branch name per the the documentation is suppose to be from the upstream. I don't know if what is documented is the best procedure. I did have an issue trying to follow a the documentation in a fork where there was both a tag and a branch. Please review the documentation, and refine the procedure we should do in ITK forks. |
7e780e9 to
a55ea13
Compare
I caught this in an earlier iteration, and I thought I had implemented a durable fix :(. Working through the entire tree looking for what I did wrong and trying a different, more aggressive durable fix. See |
a55ea13 to
206dba2
Compare
Advance the VNL overlay pin from 272c3f1 to 7829892 (vnl_math:: deprecation campaign + sqrteps 0x1p-26). The subtree update follows in the merge produced by UpdateFromUpstream.sh.
Code extracted from:
https://github.com/InsightSoftwareConsortium/vxl.git
at commit 7829892c34f6b9cf3a85be8c2a4b5a1afbe1f99b (for/itk-vxl-master-7829892).
* upstream-VXL: VXL 2026-06-10 (7829892c)
206dba2 to
574c34b
Compare
|
Downstream build verification — built this exact PR head ( ITK, elastix, SimpleITK, RTK, Cleaver, PerformanceBenchmarking, SimpleITKFilters, TractographyTRX, VkFFTBackend, ANTs, BRAINSTools. |
|
I thought that VNL would be put into ITK, and maintained there, without referencing any external repository. I now see it has to be this way, as VNL has very different style from ITK. |
|
@dzenanz We may someday choose to put VXL directly in ITK (keep it in the Third party so it does not need to be formatted like itk) but for the moment I wanted to keep some git tracking so that as I uncover bugs/failures that should be on VXL/VXL that I can cherry-pick as a good citizen (not that ITK will be using VXL any more). It was also a lot easier to the 100+ commits in vxl with tests and rollback capabilities rather than have 100 ITK prs :). This was an easy way to "bundle" 100+ commits into 2 ITK PR's (and only 2 merges). ======== |
57ff6c6
into
InsightSoftwareConsortium:main
Repoint ITK's vendored VNL to the protected isc/vxl branch
for/itk-vxl-master-7829892, advancing the pin fromfor/itk-vxl-master-272c3f1. This brings in thevnl_math::deprecation campaign, thesqrtepsprecision fix, and avnl_error.hwarning fix from the ITK fork of VXL.Rebuilt on current
main. The two prerequisites are now merged and present in the base: #6427 (decoupleitk::Mathfromvnl_math) and #6430 (remove the default-Wno-deprecated). This PR no longer stacks on either — it is a clean re-vendor on top of them.What's in this re-vendor (272c3f1 → 7829892)
vnl_math::deprecation campaign — the publicvnl_math::surface is now[[deprecated]]for external consumers, with the real implementations relocated to undeprecated internal namespaces (vnl_math::detail,vnl_math::numeric_predicates) that vnl uses internally. Macro-gated (default on) so consumers can opt out per-category. Covers:pi,e,sqrt2, …)angle_0_to_2pi,rnd,floor,ceil,sgn,sqr,cube,remainder_*,squared_magnitude, …)std::re-exports (max/min/cbrt/hypot) andvnl_huge_valabs— nudges ITK users towarditk::Math::Absolute()sqrtepsprecision fix —1.490116119384766e-08→ the exact power-of-two0x1p-26.vnl_huge_valdeprecation message correction — advisesstd::numeric_limits<T>::infinity()for floating-point T andstd::numeric_limits<T>::max()for integral T (integral types have no infinity).vnl_error.h-Wunused-parameterfix —vnl_error_assert_int_range's parameter is unused underNDEBUG; now[[maybe_unused]]. This warning appeared in every TU that includes vnl_vector.h in Release CI builds.Downstream validation
Built against a pixi/ccache testbed of open-source ITK consumers (ITK @ this vendored vnl). 11/11 buildable consumers compiled clean with no vnl-related breakage: elastix, SimpleITK, RTK, Cleaver, PerformanceBenchmarking, SimpleITKFilters, TractographyTRX, VkFFTBackend, ANTs, BRAINSTools (+ ITK itself). Slicer/SlicerExtensions are not buildable in that conda testbed for environment reasons orthogonal to vnl.
With #6427 merged, ITK's own headers no longer route through the now-deprecated
vnl_math::surface, so this vendored update does not reintroduce internal deprecation warnings.Fork provenance
The pin targets the branch anchor
for/itk-vxl-master-7829892on InsightSoftwareConsortium/vxl — a protected branch, not a tag. The fork's overlay commits are anchored by branches only (a same-named branch and tag would make the ref ambiguous and breakupdate-third-party.bash). See the fork-convention clarifications in #6432.