Cyclus 0.3 Release Notes¶
- Author:
Cyclus Developers
- Website:
- Contact:
The Cyclus core team is excited to announce the latest stable version after over a year of development! This includes nearly 340 commits by 6 developers. Major features include,
Implementation of the Cyclus Enhancment Proposal (CEP) system.
Merged Cyclopts into cyclus, CEP2
Resource Tracking and Interfaces Re-Re-Redo, CEP17.
Google C++ Style Guide compliance.
Since v0.2, 477 files have changed encompassing 52028 line insertions(+) and 51749 deletions(-).
Changes from 0.2 to 0.3¶
New features¶
removed supply_demand and action_building namespace. closes #248.
record agent that creates each resource in output db
changed resource creation to take this ptr instead of context ptr. Removed context arg from Material::CreateUntracked. Made untracked resources have an id of zero instead of an id of garbage. fixed mat doc comments to use new res_buf method names.
cleaned up resource buf interface. Added some basic templating to eliminate need for separate mat_buff
added timestamp to resource table.
sorted lists of files/includes alphabetically
added header_impl file
fixed logger macro issue from namespace removal and added a test to catch it at compile time in the future
alphabetized cyclus.h
moved all symfunctionptr to symfunction::ptr
solverptr to solver::ptr
moved function type pointers to function::ptr
moved VariablePtr to Variable::Ptr
removed additional cyclus:: prepends from implementation files
removed extraneous cyclus namespace from fac_agent impl
removed extraneous cyclus namespace from comp_math impl
removed extraneous cyclus namespace from hdf_back impl
moved solver interface impl under cyclus namespace
removed extraneous cyclus namespace from commodity_producer impl
put solver impl under cyclus namespace
put cbc solver impl in cyclus namespace
put variable implementation file in cyclus namespace
removed explicit namespace usage in implementation files for function and building manager
removed cyclus:: prefix from optim header files
removed cylus:: prefix from non-optim files
removed cyclus:: from building manager
Update copyright years in license
removed reference to include.h
move symbolic functions into a different class name
moved all files out of optim dirs into their respective top levels
renamed cyclopts to optim
change module install dir to not be split into separate fac, reg, inst subdirs. Still need to fix schema building and env class and dynamic_loading class correspondingly. made Env::ListModules more robust and include CYCLUS_MODULE_PATH env var dirs in search. Made BuildMasterSchema not care about agent type namespacing subdirs.
fixed some gcsg issues and a typo
made timer init method not reset previous timer config (e.g. listeners) - this caused confusion and debugging for me in the past
made timer ticker registering more robust. Search env var dirs before install dirs for dyn modules. change default dyn module install dir to lib/cyclus instead of lib/Agents
added hard coded version and more robust –tags flag to git describe for version.
this should make CI pass… not sure if its what we want, though.
updated install script with new structure
made agent test files install to share dir, fixes #559
docs now in the top level directory, and a little clean up. fixes #602
docs currently build
removed cyclus namespace from stubs
moved stub directory to top level, made stubs a separate library, incorporated stub tests into cyclus unit tests
a little cleaning before stubbing
enabled testing in new build environment. simplified test module directory structure and building.
gtest library builds
added cli to at the top of the directory structure
actually adds top level cmake file..
currently builds cycluscore from top-level directory
encapsulated stubs namespace in cyclus namespace per gcsg
redisabled facility tests as that ‘s a larger issue than this PR
added include guards
added stub market
added stub inst and region. updated stub facility.
removed any stubs that aren’t facs, regions, insts, or agents
updated namespace name to reflect directory name
made mock fac/inst/region/market classes to be used with testing. added the stub facility in a new stub namespace and related tests.
added initial stub directory and adjusted cmake files to include their tests.
moved all dynamic loading into xml_file_loader. Added a method for listing installed/discoverable dynamic modules to env class. added rng schema methods to test agents and removed rng files from them. removed rng installation from cmake module macro. added master and module schema dumping to cyclus binary. added schema agent test (that schema parses). moved heavy stuff out of xml-file-loader constructor. renamed LoadAll to LoadSim.
i think moving loglevel and the macros into the same namespace encapsulation is more promising… still unable to confirm.
finishes remaining doxygen warnings
I believe that this will fix the warning stemming from logger.h, but I do not see the warning on my machine, so I can’t be sure
fixed begincode error
removed verbose linking flag
fixes build error for macs, moves mac linker flag to top of cmake file to set the flag for all compiled libraries in the build
added cli flag for printing cyclus include dir
down-selected includes in cyclus.h. Removed remaining vestiges of converter agents
create cyclus.h. added missing header install
as @gonuke suggested, adding a preprocessor directive was the right way to go. tested with coin-2.3 on insam
removed coin include prefix which causes problems on utk’s darwin system
removed unnecessary Config dir. Deleted duplicate (and outdated) LICENSE and README files.
moved Core source files into base src/ directory.
moved Testing dir to tests dir. Moved test modules into tests dir. Moved app.cc into new cli dir
removed disabled tests from being found by the find test script. closes #591.
removed pesky cout
removed extraneous string var
adjusted env var setting to append the current var if it was set
added robustness in the environmental tests by resetting the environment variable and the dynamic loading tests by making sure to delete and close opened library modules.
test driver now adds the build directory to the cyclus module path. fixes #592. note that this overwrites the global module variable only for the test driver’s environment.
Remove indirect dependencies
main now returns 0
updated readline to use the decode method. the script is now python2/3 compliant. note that I tested with python3.3.
renamed id, parentid member vars and accessors
initfrom to CapCase
made clone methods CapCase
added from future import
made print function python3-compliant
fixed remaining coin and init issues
doc improvement
added python as a dependency
adds a script to generate test names and adjust build system to add those tests to the make test target appropriately. fixes #176.
improved clone and initfrom doc comments
fixed resource table name
have a working version of a ctest fix. need to clean it up and add python as a dependency before sending a PR
fixed inst agent tests and fixed duplicate id bug in agent class if implicit copy-constructor is used
constructor initializer list
removed cruft from agent class. fixed to not record on undeployed decommission. improved var/accessor names
removed unnecessary externed Destruct funcs
fixed inst class tests
fixed dynamic loading tests - removed redundant test with env class tests. Simplified dynamicModule further. Trying to fix inst class tests - still broken.
updated test agents. 2 tests still failing
updated tests to compile with new cloning and deploy semantics
move clone method into agent class. Killed Clone[stuff] methods into single virtual clonefrom method. Change EnterSimulation[bla] methods into a single, virtual, Deploy method. Moved DynamicModule Init method into constructor. Removed redundant info from facility class (build date, etc.).
Combiined cyclopts dependency list into cyclus dependency list.
added file and cli flag for retrieving cyclus core and dependency versions. Fixes #578.
Simplifying names and correcting some rst grammar.
Add links to get sample input files. Updated dependency list.
Update README.rst with additional information about dependencies and correct call of installation.
removed singleton references in documentation
undisabled building manager bug
removed build dead code and mistakenly commited cyclus.rng file
fixed seg fault due to double delete in tear down
added tests for the optional query interface
added cyclus namespace qualifier to new function usage
moved the optional element query into its own nonmember, nonfriend templated function for easier, one-line usage.
added tests for null queries
removed try/catch blocks for fac agent query engine usage
updated market agent tests for context usage
added clarification to recipe add/get usage, closes #568
added clarification to recipe add/get usage
style guide names
style guide name changes.
renamed externed construct/destruct functions to be CapCase
updated facility tests to take the context constructor argument
made a separate test context for easier testing and updated appropriate agent test files
updated facility agent tests and fixed agent tests
updated agent tests
removed unncessary agent registration from context - because markets will soon be superseded by CEP18 anyway.
updated prototype registration and agent creation to use context. recipe library become so small I moved it into xml_file_loader. renamed xml_file_loader methods according to GCSG and added a LoadAll method.
moved control param xml parsing into xml_file_loader out of timer. Added timer init method to context.
removed EM macro and simplified recipe library and changed it to recipe namespace
fixed segfault issue. fiddled with includes and forward declarations
everything compiles, but tests segfault
more work converting core to use context - still doesn’t compile
started outline for a simulation context
Moving include files to include/cyclus
changes for making debian packages
moved setup.py to install.py
fixed var name style
unadded redundant neg comp element check. Added test to check for exception throwing
added missing neg quantity check
adds comments about composition decay chaining. Remove leftover recipe_lib constructor from debugging
fixed gcsg names in decay_handler and renamed class to decayer. fixed filename comments in product and improved a couple of guards
fixes var names and comments to not refer/suggest anything ‘vector’ ish w.r.t. CompMap code. Change nextId to next_id
re-disabled test… need more time to investigate
added disabled building manager test
readded disabled tests, which now pass
removed variable bound introspection from the cbc solver. CI should build without issue now.
moved variable bound introspection based on a VariablePtr into non member non friend functions in variable.h/cc.
added some more simple tests for the cbc solver. two have been intentionally disabled because the maximization direction for the objective function does not appear to be working. I have double checked that the optimization direction for maximization is correct (it’s 1.0) from the coin documentation. I’ll investigate further.
removed bounded 2 variable test, starting simple with 1 variable
added a 1 variable test that should pass and a test that uses variable bounds. changed test names to better reflect the testing taxonomy
made implicit cast a static cast
changed Composition::Vect to CompMap
added mat_query tests and polished mat_query doc comments
made mat_query a proper implementation file. Removed contains for now and added almostEq to it.
polished doc comments for compmath namespace
fixed var name mistake in res_tracker
polished doc comments on product, material, res_tracker, and composition classes. Added more complete error check to Product::Absorb
polished resource class doc comments
moved resource table all to res_tracker
finished converting compmath tests
doc fix
moves resource-specific param recording into resource class and resource implementations now only record their special state.
fixed comp_math add and sub funcs. material tests all pass
moved unique id and bumping implementation into resource class
fixed absorb and extract errors in material class
finished remaining compile errors - now to fixing failed tests
fixed material and matquery tests
added tests and tried to consolidate iso_vector, comp_map, and material test content into material, composition and comp_math tests.
everything compiles except tests
literal 0 -> 0.0 for fp compares
abs() -> fabs(), types they are a-changing.
fixes doc errors, should clear up @gonuke’s cron job errors
fixes master schema building
updated test files so cycamore can build
ran all files in Core dir through astyle for style guide formatting
updated enrichment function names
fixed implementation issues
fixed all compile errors
fixed compile error and more sed replaces for typedef names
fixed many typedefs to be CapCase
updated macros to install in correct place
flattened all directories, removed extraneous file, renamed all files and updated files regarding name changes
renamed most funcs to CapCase
finished variable-related tests, updated related api, and updated documentation. this last commit closes all code-related issues in cyclus/cyclopts#37.
changed namespace names, closes #531
added tests for objective and constraint functions, updated documentation
made constraint iterator access const as it should have been
added tests for the function base class, updated documentation, and made slight API changes based on documentation
prepended cyclopts to test name for easy regexp selection
updated solver interface documentation
made addconstituent public, removing need for friend class
made variable tests less namespace verbose
renamed integration tests to properly reflect that they are in fact testing the cbc solver. updates cbc solver documentation.
added overarching but simple integration test for cyclopts
resolve rebase compile errors
renamed Error class files and formatted them according to style guide
removed exception silencing from sqliteback
fixed remaining build/run issues
eliminated super-specific crazy exceptions. Created a few basic exception types to be used throughout cyclus core. Shortened exception class names
added a test
hotfix. Anthony’s namespace merging wiped out my schema building invocation in XMLLoader.
fixed header file guards in cyclopts
fixed line lengths in header files in cyclopts
fixed line lengths of cyclopts implementation files
removed using namespace std from cyclopts files
updated line lengths for header files in cyclopts
fixed line length for Utility files touched in this PR
added cyclus namespace on top of cyclopts namespace
fixes a few things anthony missed
test update. tag: move and squash
removed find cyclopts
updated findcyclopts
Fixed some merge conflict
cyclopts testing now exists is subdirectory of Testing
ns updates finished now to mereg
removed blas link, unnecessary.
cyclopts headers now install in cyclopts directory
added blas and lapack dependency for coin. tag: squash
removed cyclus_tools in favor of explicit includes of variable and function. made cyclopts_limits limits.
made cyclopts a subproject whose headers are now called by cyclopts/header.h
updated readme and setup script
cyclopts now builds as part of cyclus
moved cyclopts files into Core directory with history
Many testing fixes
reverted some documentation overwrites and added some compliance
make cyclus up to date with cyclopts google style compliance
made input file recorded after schema validation
added include guards as per style guide
fixes include order, switch indentation, and adds missing map includes to csvback
updated primary files used in this branch/PR to use google styleguide for indent/naming
More namespace updates
fixed Blob.hpp and other formatting. Added tests for each backend for the new blob type.
Added cyclus::Blob type as a supported backend type for all backends. Removed unnecessary streaming operators in any.hpp.
fixed query engine errors
updates cyclus core to reflect cyclopts/cyclopts#33
fixed more error, everything is broken
‘public, protected, private indent one space’
fixes indent errors in DynamicModule.h described in #530.
added ns to roesources.
first cyclus ns changes.
made buildSchema private. Used Agent class module type list instead of custom one.
removed cyclus.rng.in generation - now done dynamically in cyclus core
modified XML loading to dynamically build the master schema by searching for installed modules
created csv backend.
fixed name erro
updated setup with localdir as default for some params
added uninstall target. closes #268.
made ~/.local the default install directory in the setup.py
Actually have them all and they all work.
I think that I got them all..
added hdf5 dep to readme instructions. fixes #520.
fixed enum element style
made eventmanager handle insertion of uuids into all events. backends now need to check for and handle boost::uuids::uuid value type
wrote custom pool allocator new and delete for Event class. Created a producer/consumer type memory reuse vector in EventManager to prevent new/delete calls
changed c cast to static_cast
Added modified warning to any.hpp. added comment about event vals vector reserve
added shortcut to void* in any.hpp. Simplified hdf5 backend fillBuff
speed up event class by reserving capacity for event vals
switched event class to use a tweaked boost::spirit::hold_any allowing non-explicit construction instead of boost::any. 30% performance boost of total inpro_low runtime.
found out that boost has a installed called bjam. bjam has an option –layout which can take the form tagged. tagged adds -mt and -<version_number> to a library. if multithreading is on (which it is by default), it must find a library with the -mt tag. I was able to turn off multi threading for it to find the boost libraries installed in filespace/groups/cnerg/cyclus_dependencies. I’d like to leave the comment there for posterity. this set of commits closes #521.
added a message to determine which libraries were being used
updated readme’s boost version
fixed null-padding on strings issue. changed set to group so Anthony is happy.
changed hdf5 ext to .h5. Hdf5Back constructor takes std::string
adds better doc comment to hdf5back class. Uncomments the db file deleting line.
added hdf5back test
added custom backend specification to App.cp via output file extension
rewrote hdf5 backend to use C API. Made Sqlite destructor virtual
refactored hdf5 back by splitting large code into smaller functions.
created hdf5 backend - seems to be working. Probably could use some performance tweaking.
Deprecations¶
N/A
Known bugs¶
N/A
Contributors¶
The following people contributed to this release of Cyclus. A “*” by their name indicates a first time contributor. Names follow alphabetically,
Robert Carlsen
Royal Elmore
Matthew Gidden
Katy Huff
Olzhas Rakhimov*
Anthony Scopatz
Zach Welch
Paul Wilson