Merge pull request #4275 from RosettaCommons/vmullig/fix_macos_compilation
Comment out unused variable in RollMover.
This was preventing compilation on my Mac with Clang 11.0.0. (Note that Clang 9 is used on the test server for the MacOS compilation test.)
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4265 from RosettaCommons/vmullig/clean_up_parameters_hh
Clean up Parameters.hh and Parameter.hh a bit to reduce transclusions.
This is part of Andrew Leaver-Fay's attempt to improve compilation efficiency by reducing unnecessary inclusions. Some of my parametric code puts too much in header files, necessitating inclusion of headers like Residue.hh (which themselves include a lot of other stuff). I can clean this up.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4256 from RosettaCommons/roccomoretti/Wsuggest_override
Override Overdrive
C++11 added the override keyword for virtual functions which are a re-implementation of a base class's virtual function. This is helpful, because the compiler can check to make sure that the function is actually overriding the base class's function, rather than defining a new function with a different interface. In fact, modern C++ recommended practice is to use virtual only for the original (base class) version of a virtual function, and any reimplementation of the function should be marked with override.
This PR runs the clang-tidy modernize-use-override tool over the codebase to add override and convert virtual to override where warranted.
After this, `virtual` should really only be on functions which are the initial declaration of a virtual function, and `override` should be on all declarations of virtual functions which are in a subsequent child class.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4259 from RosettaCommons/vmullig/fix_antibody_design_mover
Removing an unused, uninitialized variable from AntibodyDesignMover which is causng stochastic failures of integration test.
Note that, at some point, it would be good to switch to header-initialization and a default copy constructor for this mover.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4237 from RosettaCommons/JackMaguire/StrongTypeAliases
Adding Utility To Make C++'s Type System Help Us Catch Bugs
We're having an issue in JD3 right now where we have a lot of Sizes and Reals floating around and we are forced to use variable/parameter names to make sure they line up correctly when calling functions. This is very bug prone because the compiler will not tell you if you pass the wrong arguments if all of them are the same type (`core::Size`, for example).
This PR adds a theoretically zero-overhead way to assign different type names to different Sizes. See below for an example. I'm also adding a few use cases to the MC HBNet data structure to make sure this works and to make sure the HBNet profile test does not get worse.
```c++
//OLD:
void draw_rectangle( int width, int height );
void foo( int h, int w ){
draw_rectangle( h, w ); //logic error, may not be caught at runtime
draw_rectangle( w, h ); //correct
}
//NEW:
using Width = utility::StrongSize< struct Width_ >;
using Height = utility::StrongSize< struct Height_ >;
void draw_rectangle( Width width, Height height );
void foo( Size h, Size w ){
draw_rectangle( h, w ); //compiler error
draw_rectangle( w, h ); //compiler error
draw_rectangle( Width( h ), Height( w ) ); //logic error, but the developer should be able to notice that this is wrong
draw_rectangle( Width( w ), Height( h ) ); //correct
}
```
Here's proof that this abstraction gets compiled away: https://godbolt.org/z/eWM_uJ
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #4252 from RosettaCommons/roccomoretti/fix_d_aa_loading_issues
Make DAAs and CCD components play more nicely together.
There were issues with loading in D-SER while the PDB components files were active. This PR adds a unit test for D-SER loading, as well as a few changes to address warnings/errors which occur during the process. We also adjust the exclude_pdb_components.txt list for the three letter code translation functionality which is currently in -alternate_3_letter_codes default.
notify author
notify list [rosetta-logs@googlegroups.com]