|
FhSim
3.1.0
Marine systems simulation
|
| ID | 0013 |
| Class | ARCHITECTURE |
| Severity | 1 |
| Status | blocked |
| Models | — |
| Found | 2026-09-15 audit (a7d080d) |
| Decision needed | "delete" the uncompiled NetWithAttractor sources or "keep" them. |
the three commented-out lines (src/fhsim_fishery.h:7 and :19, src/fhsim_fishery.cpp:30) are removed. src/seine/NetWithAttractor.cpp and .h are still in the tree: they are referenced by no CMake list and no other source file, so deleting them is a one-command change, but whether to delete or to move them to an attic is the owner question below and has not been decided.
NetWithAttractor was removed as a SimObject in 3.1.0 (CHANGELOG.md:47) but only by commenting things out:
src/fhsim_fishery.cpp:30 — //ADD_SIMOBJECT_REF(NetWithAttractor, Seine/Net);src/fhsim_fishery.h:19 — //#include "seine/NetWithAttractor.h"src/seine/CMakeLists.txt:5-23 — neither NetWithAttractor.cpp nor NetWithAttractor.h appears in seine_SRC or seine_HDR, so the translation unit is not compiled and the header is not installed.Both files are nevertheless still in the tree: src/seine/NetWithAttractor.cpp (8003 bytes) and src/seine/NetWithAttractor.h (1749 bytes). A second, older leftover in the same file: src/fhsim_fishery.h:7 — //#include "trawl/CTrawlDoorWarpControl.h" — names a file that does not exist anywhere in the repository (‘find . -name 'CTrawlDoorWarpControl*’is empty) and carries the 2.x HungarianC` prefix that 3.1.0 removed everywhere else.
Nothing at runtime. The cost is to readers and to tools: grep NetWithAttractor src/ finds a full SimObject implementation with no indication it is dead, so anyone answering "does this library model a seine net?" from a search gets the wrong answer. The file is also never compiled, so it will silently rot — it still uses the 2.x OdeFcn signature conventions in places and derives from NetStructure, a type this repository no longer includes anywhere.
Two mechanical steps: delete src/seine/NetWithAttractor.cpp and src/seine/NetWithAttractor.h along with the commented-out registration at src/fhsim_fishery.cpp:30 and the commented-out include at src/fhsim_fishery.h:19; and delete src/fhsim_fishery.h:7. The class is gone from the public API as of 3.1.0, the changelog already says so, and the tag 3.1.0 preserves the sources. Nothing else references either symbol outside openwiki/ and CHANGELOG.md, both of which correctly describe the removal and should be left alone (openwiki/ is generated; do not hand-edit, per AGENTS.md). Add a ### Removed line to CHANGELOG.md noting that the NetWithAttractor sources are gone, since 3.1.0's entry claimed the removal that this item actually completes.
Owner question: keep the net model for future revival? If so, the alternative is to move both files to a clearly marked src/seine/attic/ outside every CMake list, with a one-line README saying why. Deleting is cleaner given the tag exists.
Depends on 0001 only in the weak sense that the suite must build. The proof is that the library still builds and the Conan test package still passes: test_package/test_package.cpp loads the module and constructs Seine/Buoy, exercising the registration table in src/fhsim_fishery.cpp. No new case is warranted for deleting dead files. A cheap guard worth adding: extend the Examples-Load_Test from 0009 with a negative case asserting that an input file naming Seine/Net fails to load, pinning the removal.
None. The code is not compiled today, so no binary and no behaviour changes. The only way this breaks anyone is a downstream consumer #include-ing fhsim_fishery/seine/NetWithAttractor.h — impossible, since seine_HDR (src/seine/CMakeLists.txt:15-23) does not install it.
Partially solved. Commit 1c5e8fd in fhsim_fishery removed the three stale commented-out lines (fhsim_fishery.h:7 and :19, fhsim_fishery.cpp:30) and adjusted the OpenWiki bullets. src/seine/NetWithAttractor.{cpp,h} are still in the tree. The fix pass verified they are unreferenced: they are in no src/seine/CMakeLists.txt list, no glob picks them up and no other source file references them; only CHANGELOG.md and the wiki mention their removal. Deleting them is a one-command change, but the item's own owner question, delete or keep as an attic for future revival, is unanswered, so nothing was deleted. Smallest unblocking decision: "delete" or "keep".