Merge pull request #1324 from RosettaCommons/vmullig/std_random_begone
Remove other instances of std::random_shuffle() from the code.
There are one or two places where std::rand() and std::random_shuffle() are used with good reason. In all other instances, Rosetta's random number generating system should be used (which means random_permutation() instead of std::random_shuffle()). This pull request is a complement to #1323, removing other instances of std::random_shuffle().
It would be very interesting if this resolves the current integration test instabilities on the test server.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1318 from RosettaCommons/vmullig/rosettascripts_include
Add inclusion to RosettaScipts
Users want to be able to do something like the following:
<ROSETTASCRIPTS>
<xi:include href="my_common_residueselectors.xml" />
<xi:include href="my_common_taskoperations.xml" />
<xi:include href="my_common_filters_and_movers.xml" />
<PROTOCOLS>
<Add mover="fastrelax" />
</PROTOCOLS>
</ROSETTASCRIPTS>
Where the included files might be something like:
<RESIDUE_SELECTORS>
<... selector definition 1 ... />
<... selector definition 2 ... />
<... selector definition 3 ... />
</RESIDUE_SELECTORS>
<TASKOPERATIONS>
<... taskoperation definition 1 ... />
</TASKOPERATIONS>
<FILTERS>
<... filter definition 1 ... />
<... filter definition 2 ... />
</FILTERS>
<MOVERS>
<... mover definition 1 ... />
<... mover definition 2 ... />
</MOVERS>
All of this would automatically and naïvely (i.e. saving error-checking and interpretation for later) be concatenated, with the included files inserted in place of the INCLUDE statements, to give:
<ROSETTASCRIPTS>
<RESIDUE_SELECTORS>
<... selector definition 1 ... />
<... selector definition 2 ... />
<... selector definition 3 ... />
</RESIDUE_SELECTORS>
<TASKOPERATIONS>
<... taskoperation definition 1 ... />
</TASKOPERATIONS>
<FILTERS>
<... filter definition 1 ... />
<... filter definition 2 ... />
</FILTERS>
<MOVERS>
<... mover definition 1 ... />
<... mover definition 2 ... />
</MOVERS>
<PROTOCOLS>
<Add mover="fastrelax" />
</PROTOCOLS>
</ROSETTASCRIPTS>
This pull request aims to implement this. Note that there is existing <INCLUDES> block functionality, but this only allows users to append XML to a script, which isn't very useful -- it doesn't let them insert XML at the point of inclusion, which would be far more useful.
Tasks:
- Add <xi:include href="" /> parsing prior to the rest of script interpretation.
- Debug.
- Unit test.
- Improve circular inclusion detection logic.
- Unit test for detecting circular inclusion.
- Integration test.
- DOCUMENTATION.
- Beauty.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1317 from RosettaCommons/vmullig/tweak_bettercluster2
Tweaking a pilot app
Enclosing bettercluster.cc pilot app's main() function in a try/catch block. Will merge without testing.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1316 from RosettaCommons/vmullig/rosetta_bluegene2
Fixing the Blue Gene build now that libxml2 has been added
Since this only affects a build that's not tested on the test server, I'm merging without testing.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1230 from RosettaCommons/aleaverfay/libxml2_to_master
Adding a new external library to Rosetta: libxml2. This allows for the automatic validation of an XML file against an XML Schema, so that we can detect badly formatted input files.
Improving the API for the definition of XML Schemas. It is now substantially easier to define schemas for elements that themselves contain subelements.
Defining XML Schemas for TaskOperations, ResFilters, and ResLvlTaskOperations in addition to ResidueSelectors. In addition, the factories for each of these four kinds of classes now have unit tests to ensure that each class that is registered with the factories needs to define a valid XML schema. (Note: for a schema to be valid is not the same thing as for the schema to be correct. A valid schema is merely recognizable to something that parses xml schema; a correct schema accurately describes the language read by those classes trying to parse the input XML files).
Thanks, Andy @everyday847 for all your help in writing these schemas.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1276 from RosettaCommons/JWLabonte/sugars/docking
Carbohydrates: Bug fixes for sugar docking
This fixes a miscellany of bugs related to docking that affected sugar-docking, some mine, some other people's.
All tests pass; sugar-related integration tests expected. 2 other tests show changes because of high tracer volume.
notify author
notify list [rosetta-logs@googlegroups.com]
Merge pull request #1306 from RosettaCommons/roccomoretti/external_build_flags2
Compile & Link flags settings for external libraries
Per a request by Andrew, update the new external build scheme to allow you to specify external-library specific compiler and linker flags.
Just add them to the appropriate section of the *.external.settings file. (Should work with both scons and CMake, although mixed C/C++ libraries under CMake only get a single set of flags.)
notify author
notify list [rosetta-logs@googlegroups.com]
Unit tests should produce output only when they fail.The first commit in this pull request makes it possible to trap on debug_assert failures. It also makes it possible to trap an expected exception in unit tests coming from utility_exit WITHOUT noise being piped through std::cerr. Many commits here preface the calling of functions that are expected to fail with calls to utility_exit_with_message(...) with a call to The remaining unit tests replace usage of TS_TRACE with sending output to basic::Tracer objects (that can be muted).
Unit tests should produce output only when they fail.
The first commit in this pull request makes it possible to trap on debug_assert failures. Specifically, it adds a function "throw_on_next_debug_assert_failure" so that instead of printing the backtrace to std::cerr and triggering a trap in assert( fail ), instead the debug_assert macro will throw an exception, which can be caught in a unit test without making any noise. The second or third commit also makes it possible to trap an expected exception in unit tests coming from utility_exit WITHOUT noise being piped through std::cerr. Many commits here preface the calling of functions that are expected to fail with calls to utility_exit_with_message(...) with a call to throw_on_next_assertion_failure so that they too avoid a message ending up printed. Several unit test changes replace usage of TS_TRACE with sending output to basic::Tracer objects (that can be muted). A small number of source changes print output to Tracers instead of to cout. These changes are responsible for the cosmetic integration test changes.
Thank you Rocco, Vikram, and Steven for pitching in. @roccomoretti @vmullig @smlewis
Please do not print directly to cout. Please do not use TS_TRACE. From here on out, if you see a message while running the unit tests, that means that something bad has happened.
(It would be nice in the future to have test/run.py print very little -- it currently tells you about all the tests that it has launched, which is verbose for my tastes. Perhaps it could do that nifty thing where it overwrites the last line of a terminal the way ninja does?)
notify author
notify list [rosetta-logs@googlegroups.com]