[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/pythonConstructormachinery -
Phase 2: Remove
nodeChildren/NodeVec/NodeUtiltree-traversal infrastructure -
Phase 3: Remove
m_P/PValues/pars()fromNodeand all ~80 concrete classes; removeFormfactor::isEqualTo() -
Phase 4: Dissolve
NodeandCloneableNodebase classes — distributeclassName()/validate()/m_validatedto individual hierarchy abstract bases; all formerCloneableNodesubclasses now inherit directly fromCloneable -
Phase 5: Move
Distrib/(ParameterSample, Distributions, ParameterDistribution, DistributionHandler) fromParam/intoBase/; dissolvelibBornAgainParamSWIG module intolibBornAgainBase; deletefromParam.i,Param/CMakeLists.txt, and auto-generated Param wrappers; moveParameterDistributionTesttoTests/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).