[claude] Param phase 1-5: remove entire Param infrastructure (#1369)

[claude] Param phase 1–5: remove entire Param infrastructure (#1369 (closed))

Summary

Removes the Param component in five phases, eliminating all infrastructure that was only needed to support the GUI and C++ fit engine (both already removed):

  • Phase 1: Remove dead parDefs/ParaMeta/pythonConstructor machinery
  • Phase 2: Remove nodeChildren/NodeVec/NodeUtil tree-traversal infrastructure
  • Phase 3: Remove m_P/PValues/pars() from Node and all ~80 concrete classes; remove Formfactor::isEqualTo()
  • Phase 4: Dissolve Node and CloneableNode base classes — distribute className()/validate()/m_validated to individual hierarchy abstract bases; all former CloneableNode subclasses now inherit directly from Cloneable
  • Phase 5: Move Distrib/ (ParameterSample, Distributions, ParameterDistribution, DistributionHandler) from Param/ into Base/; dissolve libBornAgainParam SWIG module into libBornAgainBase; delete fromParam.i, Param/CMakeLists.txt, and auto-generated Param wrappers; move ParameterDistributionTest to Tests/Unit/Base/

Net result

The Param/ source directory is gone. The component count drops from Base/Param/Sample/Resample/Device/Sim to Base/Sample/Resample/Device/Sim. The Python API for ParameterDistribution and Distributions is now exposed through libBornAgainBase (no user-visible change — import bornagain still works).

All 487/488 tests pass (1 pre-existing TestWheel failure unrelated to this MR).

This resolves #1369 (closed).

Merge request reports

Loading