Pull Request №706 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/refactor/core-empty-dtors-rule-of-zero
Merge: 8ebeca78061b79e9fbbc68db33a78b2fd0361428←03c3f888d6d61e013d489f96065d5b403698b12d
Apply Rule of Zero to empty destructors across core/
----------------
Merge commit message:
Apply Rule of Zero to empty destructors across core/
Remove trivially empty (~X() {}) or =default;-bodied destructors, deleting
the declaration outright rather than re-declaring it as =default in the
header, and remove the redundant out-of-line .cc definitions.
Per review: for the derived classes here the base already declares a virtual
destructor, so the destructor is virtual by inheritance whether or not it is
declared -- an explicit ~X() override = default; buys nothing. Omitting it is
the actual Rule of Zero: it keeps the destructor virtual (inherited) and, for
classes with no other user-declared special members, lets the implicit move
operations be generated. A =default destructor would not do the latter: it is
still user-declared and suppresses the implicit moves exactly as a
user-provided one would.
LKHBondInfo and HBondInfo are polymorphic bases that need an explicitly
declared virtual destructor, so they keep 'virtual ~X() = default;'. Also
removes an unused user-defined empty copy ctor on LKHBondInfo.
Pure code-style refactor; no intended behavior change.
Pull Request №730 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/off-by-one-core
Merge: 8ebeca78061b79e9fbbc68db33a78b2fd0361428←5b1e42a376cf85c226292b14278c955744b494f7
Fix off-by-one in 1-indexed loops in core/ (split 1/4 of #707)
----------------
Merge commit message:
Fix off-by-one in 1-indexed loops (core/)
Split from #707 (subsystem: core/). Each loop uses
'for ( Size i = 1; i < container.size(); ++i )' (or < pose.size() /
< nheavyatoms() / < upstream.size()) and the body uses i as a direct
1-indexed accessor, so the last element is silently skipped. Changed
< to <= to include it.
- energy_methods/RNA_LJ_BaseEnergy.cc (RNA neighbor scan)
- io/pose_to_sfr/PoseToStructFileRepConverter.cc (SS-element enumeration; a
1-residue SS element at the C-terminus was dropped)
- pack/interaction_graph/SurfacePotential.cc x3 (neighbor count, surface
energy sum)
- pose/rna/util.cc (heavy-atom contact scan)
- select/residue_selector/JumpUpstreamSelector.cc (subset assignment;
diverged from sibling JumpDownstreamSelector, which already uses <=)
Pull Request №731 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/off-by-one-frag-picker-accounting
Merge: 8ebeca78061b79e9fbbc68db33a78b2fd0361428←773064f05c54ebe6971ddcf7be4336d5b8d23c3e
Fix off-by-one in 1-indexed loops in frag_picker + accounting (split 2/4 of #707)
----------------
Merge commit message:
Fix off-by-one in 1-indexed loops (frag_picker, job & metric accounting)
Split from #707. Enumeration/accounting loops that use
'for ( i = 1; i < container.size(); ++i )' with i as a direct 1-indexed
accessor, silently skipping the last element. Changed < to <=.
- frag_picker/GrabAllCollector.hh (clear)
- frag_picker/VallProvider.cc (find_chunk)
- frag_picker/quota/QuotaCollector.cc x5 (per-position pool enumeration)
- frag_picker/scores/AtomBasedConstraintsScore.cc x2 (constrainable_atoms map
fill, per-row state init)
- jd3/JobGenealogist.cc (newick_tree)
- pose_metric_calculators/DecomposeAndReweightEnergiesCalculator.cc
- pose_metric_calculators/SurfaceCalculator.cc (per-residue summary string)
- canonical_sampling/mc_convergence_checks/HierarchicalLevel.cc (address
match count)
- unfolded_state_energy_calculator/UnfoldedStateEnergyCalculatorMover.cc
(protein-residue count)
Note: the unfolded_state_energy_calc regression test output changes with this
batch (the trailing residue is now counted); the change is intentional and
warrants scientific sign-off before merge.
Pull Request №732 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/off-by-one-sewing-splice-denovo
Merge: 8ebeca78061b79e9fbbc68db33a78b2fd0361428←81e01be06812a7d6aa6e7f52a8513f988c9df389
Fix off-by-one loops + self-distance bug in SEWING/splice/de novo/RNA (split 3/4 of #707)
----------------
Merge commit message:
Fix off-by-one loops + self-distance bug (SEWING / splice / de novo / RNA)
Split from #707. Two related fixes in structural-assembly / design code.
Off-by-one in 1-indexed loops (< -> <=), last element was silently skipped:
- legacy_sewing/conformation/Assembly.cc x2 (pose_loop_anchors,
disconnected_segments -- the last segment, which by definition has no next,
was skipped, exactly the case '!has_next(i)' is meant to catch)
- pose_sewing/movers/BlockwiseAnalysisMover.cc
- pose_sewing/movers/OmnibusDisulfideAnalysisLabelerMover.cc
- splice/SampleRotamersFromPDB.cc x2 (rotamer-deduplication scan)
- splice/SpliceManager.cc (PSSM row check -- 'go over all the PSSM segments')
- stepwise/legacy/modeler/rna/StepWiseRNA_WorkingParametersSetup.cc
- rna/movers/RNAIdealizeMover.cc (CoordinateConstraint application)
- denovo_design/components/FoldGraph.cc
- fldsgn/MatchResidues.cc x2 (RMSD/superimpose atom-id map build)
- features/strand_assembly/StrandBundleFeatures.cc x2 (per-atom distance scan)
Self-distance copy/paste bug in the two pose_sewing movers:
'pose.residue(upstream_res).xyz(2).distance(pose.residue(upstream_res).xyz(2))'
is identically 0, so the '<= crit_dist_' gate was always satisfied and the
distance filter was a no-op. Corrected the second operand to downstream_res.
Note: the pose_sewing regression test output changes with this batch; the
change is intentional and warrants scientific sign-off before merge.
Pull Request №733 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/off-by-one-docking-membrane-misc
Merge: 8ebeca78061b79e9fbbc68db33a78b2fd0361428←09506b6e1960535196ff2b3fae6150b78f9e34e0
Fix off-by-one in 1-indexed loops in docking/membrane/misc (split 4/4 of #707)
----------------
Merge commit message:
Fix off-by-one in 1-indexed loops (docking / membrane / antibody / match / loops / misc)
Split from #707. Off-by-one in 1-indexed loops (< -> <=), last element was
silently skipped:
- docking/DockingEnsemblePrepackProtocol.cc x2 (chain identity validation)
- docking/metrics.cc x2 (cutpoint scan in Fnonnat)
- membrane/MPLipidAccessibility.cc x2 (slice iteration)
- antibody/residue_selector/CDRResidueSelector.cc
- match/output/UpstreamDownstreamCollisionFilter.cc
- loops/util.cc x3 (non-protein-chunk and per-loop accounting)
- cartesian/md.cc x2 (per-atom state save / derivative check)
- cutoutdomain/CutOutDomain.cc (find_nearest_res)
- enzdes/EnzRepackMinimize.cc (movable-residue collection for backrub)
- moves/PyMOLMover.cc (relevant_residues mask init -- last entry left default
false despite the intent of 'all relevant')
membrane/util.cc: comment-only. This documents WHY a nearby loop
intentionally stays '< chains.size()' (the trailing MEM virtual chain must be
excluded); no behavior change.
Note: this batch changes the output of several regression tests -- enzdes,
inverse_rotamer_remodel, ligand_dock_cholesterol, mp_f19_relax,
mpil_load_implicit_lipids. The changes are intentional but results-affecting
and warrant scientific sign-off before merge.
Pull Request №728 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/gcc16-debug-build
Merge: c0fbd1cd0e786b420b817fd4f560a487ab05a307←8808fc76c31e1b1dd495ac557eeac21f3e411fa6
Fix GCC 16 (trunk) debug build: real bug + dead unused-but-set-variable cleanup
----------------
Merge commit message:
Beautify numeric headers with native Rosetta beautifier
This branch carries the same numeric/ template-id ctor/dtor fix as #723;
run tools/python_cc_reader/beautify_changed_files_in_branch.py over the
changed files to restore project-standard formatting the template-id edits
had left off: member-initializer lists in MathVector/MathMatrix re-indented
one level under their constructors, plus incidental namespace/data-member
normalization in OneDHistogram.hh so the beautify check passes.
Whitespace-only; no semantic change.
Pull Request №723 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/numeric-gcc15-template-id-cdtor
Merge: c0fbd1cd0e786b420b817fd4f560a487ab05a307←e87ead52a5b7835fafc479478fa3560cf5e5a878
Drop template-id from ctor/dtor names in numeric/ (GCC 14/15 -Werror=template-id-cdtor)
----------------
Merge commit message:
Beautify numeric headers with native Rosetta beautifier
Running tools/python_cc_reader/beautify_changed_files_in_branch.py over the
files touched by this branch restores project-standard formatting that the
template-id edits had left off: member-initializer lists in MathVector/
MathMatrix are re-indented one level under their constructors (matching the
copy constructors in the same classes). Incidentally normalizes pre-existing
style in OneDHistogram.hh (namespace brace spacing, data-member indentation)
so the beautify check passes on all files in this branch's diff.
Whitespace-only; no semantic change.
Pull Request №728 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/gcc16-debug-build
Merge: c0fbd1cd0e786b420b817fd4f560a487ab05a307←b6d8a8e1850c3b5c3e90ec93a5c969f39ae98036
Fix GCC 16 (trunk) debug build: real bug + dead unused-but-set-variable cleanup
----------------
Merge commit message:
Fix GCC 16 debug build: real bug fix plus dead unused-but-set-variable cleanup
GCC 16 (experimental trunk) enables -Werror=unused-but-set-variable more
aggressively and flags a genuine correctness issue in
CacheableResidueTypeSets's copy constructor.
- core/chemical/CacheableResidueTypeSets.cc: the copy constructor passed
*this (the not-yet-constructed destination object) to the base class
CacheableData's constructor instead of other (the fully-constructed
source). Harmless in practice today since CacheableData has no data
members of its own, but reads from an object mid-construction and is
the pattern GCC 16 correctly flags as -Wmaybe-uninitialized.
- protocols/simple_moves/MissingDensityToJumpMover.cc: the default
constructor called MissingDensityToJumpMover::get_name() (a qualified,
non-virtual call, but still a call through *this) from its own
mem-initializer-list to build the Mover base class's name argument.
get_name() just returns a string literal, so this is passed directly
instead, sidestepping the call-through-a-mid-construction-object
pattern GCC 16 flags.
- core/scoring/EnergyGraph.hh, core/pose/PDBInfo.cc,
core/io/mmtf/mmtf_writer.cc, protocols/cartesian/md.cc,
protocols/denovo_design/components/StructureDataFactory.cc,
protocols/denovo_design/movers/FoldArchitectMover.cc,
protocols/forge/methods/pose_mod.hh,
protocols/noesy_assign/DistanceScoreMover.cc,
protocols/noesy_assign/StructureDependentPeakCalibrator.cc: remove
loop counters (iilag, idx, chainIndex, modelIndex, imap, cur_chain,
count, current_pos, ct_peaks, pose_ct) that are incremented alongside
a real iterator but never read anywhere in their function. No
behavior change.
- core/pack/guidance_scoreterms/sap/SapConstraintHelper.cc: offset is
deliberately tracked "for symmetry" per an existing comment even
though never read; add an explicit (void) cast rather than removing
it, preserving that intent while satisfying the warning.
Pull Request №723 RosettaCommons/rosetta/main ← lyskov-ai/rosetta/fix/numeric-gcc15-template-id-cdtor
Merge: c0fbd1cd0e786b420b817fd4f560a487ab05a307←631830c677818d763d4788d0e97bb4fa1c3b4e67
Drop template-id from ctor/dtor names in numeric/ (GCC 14/15 -Werror=template-id-cdtor)
----------------
Merge commit message:
Drop template-id from OneDHistogram's constructor name (GCC 14/15)
Same -Werror=template-id-cdtor issue as MathVector/MathMatrix: the
default constructor named itself 'OneDHistogram<key1>()' instead of
using the injected-class-name. This one only surfaces when something
instantiates the ctor (a unit test does), so it slipped past a
library-only build and is what broke CI on the previous version of
this fix.