src/spatialgeometry/core/Eigen/ vendors Eigen 3.4.0 for scene_nb.cpp (nanobind port of the scene-graph module, part of the Coal migration, 2026-07). Already trimmed from the full upstream 337 files down to 175 -- kept only Eigen/Core + src/Core/ + src/plugins/, since this code only uses Matrix4d/Vector4d/Map/basic multiply (verified no cross-references from Core into the removed modules -- Cholesky/LU/QR/SVD/Eigenvalues/Geometry/Sparse* -- before deleting).
Latest Eigen is 5.0.0 (Sept 2025) -- a major version gap already, and it'll only grow. Not upgraded during the migration; deliberately deferred as its own task.
Proposed fix: a dedicated version-bump pass, not bundled with unrelated work -- real risk involved: Eigen 5 tightens const-correctness on Map objects (this code leans on Map<Matrix4d>/Map<Vector4d> wrapping caller-owned numpy buffers in Node), modernizes its CMake, and makes some previously-tolerated internal-header inclusions a hard error. Needs the full scene_nb test suite as a regression net before/after.
Same situation exists in roboticstoolbox-python's vendored Eigen copy (still at the full untrimmed 337 files) and in swift's (jhavl/swift#84, also 337, untrimmed) -- worth checking those before doing this one in isolation, in case a shared trim/upgrade approach makes sense across all three.
src/spatialgeometry/core/Eigen/vendors Eigen 3.4.0 forscene_nb.cpp(nanobind port of the scene-graph module, part of the Coal migration, 2026-07). Already trimmed from the full upstream 337 files down to 175 -- kept onlyEigen/Core+src/Core/+src/plugins/, since this code only usesMatrix4d/Vector4d/Map/basic multiply (verified no cross-references from Core into the removed modules -- Cholesky/LU/QR/SVD/Eigenvalues/Geometry/Sparse* -- before deleting).Latest Eigen is 5.0.0 (Sept 2025) -- a major version gap already, and it'll only grow. Not upgraded during the migration; deliberately deferred as its own task.
Proposed fix: a dedicated version-bump pass, not bundled with unrelated work -- real risk involved: Eigen 5 tightens const-correctness on
Mapobjects (this code leans onMap<Matrix4d>/Map<Vector4d>wrapping caller-owned numpy buffers inNode), modernizes its CMake, and makes some previously-tolerated internal-header inclusions a hard error. Needs the fullscene_nbtest suite as a regression net before/after.Same situation exists in
roboticstoolbox-python's vendored Eigen copy (still at the full untrimmed 337 files) and inswift's (jhavl/swift#84, also 337, untrimmed) -- worth checking those before doing this one in isolation, in case a shared trim/upgrade approach makes sense across all three.