---
myst:
html_meta:
"description": "Detailed release notes for eOn v2.10.2, covering Windows MSVC fixes, Eigen row-major mapping, and version harmonization."
"keywords": "eOn release notes, Windows, MSVC, VLA, INIFile, xtb, libtorch, metatensor, Eigen row-major"
---
# Release notes
## [v2.10.2] - 2026-02-22
### Fixed
#### Eigen row-major storage for atom data mapping
`Eigen::Map` calls that wrap raw `double*` atom data now specify
`Eigen::RowMajor` explicitly, ensuring consistent `[x0, y0, z0, x1, ...]`
layout regardless of compile-time defaults. This completes the storage-order
cleanup started in v2.10.1.
#### Windows MSVC compatibility (conda-forge upstream absorption)
Several fixes originally carried as conda-forge recipe patches have been
absorbed into the source tree:
- **XTBPot VLA removal**: replaced the C99 variable-length array in
`XTBPot.cpp` with `std::vector`, since MSVC does not support VLAs.
- **INIFile empty-string guard**: added a bounds check before indexing the
last character of a string, preventing undefined behavior on empty lines
under MSVC.
- **POSIX header guards**: wrapped `` and `` includes
in `#ifdef` guards and replaced `system()` shell calls in IMD with
`std::filesystem` equivalents.
- **Meson build-system fixes**: decoupled xtb from the Fortran requirement,
added Windows library search paths for libtorch, metatensor, and vesin.
### Changed
#### Version handling harmonization
All version consumers (C++ client, Python package, Sphinx docs) now derive
from `pyproject.toml` as the single source of truth.
### Developer
#### Benchmark CI improvements
The benchmark comparison step was moved into the commenter workflow and now
uses `uvx --quiet` for cleaner PR comment output.