Skip to content

Vendored Eigen (3.4.0, Aug 2021) will drift stale over time #18

Description

@petercorke

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtKnown technical debt / deferred cleanup, not a live bug

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions